Go en el mundo real

Go en el mundo real

En Sevilla Developers Conf 2 comenté algunos ejemplos de quién utiliza y para que Go.

Entre otros estos me han parecido interesantes, y crearé una lista un poco más grande que nos servirá para ver casos de uso reales y casos de éxito a la hora de escoger Go para determinadas soluciones.

Ejemplos de Compañías

Iron.io How We Went from 30 Servers to 2: Go

After we rolled out our Go version, we reduced our server count to two and we really only had two for redundancy. They were barely utilized, it was almost as if nothing was running on them. Our CPU utilization was less than 5% and the entire process started up with only a few hundred KB’s of memory (on startup) vs our Rails apps which were ~50MB (on startup).

Cloudflare: Go at CloudFlare

We chose to use Go for Railgun because Railgun is inherently highly concurrent. A single instance of the Railgun client should be able to handle large numbers of requests from the CloudFlare data center for content and then multiplex them across an Internet connection to be handled. Go’s concurrency makes writing software that must scale up and down very easy.

Heroku: Go at Heroku

This critical data includes locks, configuration data, and so on, and it must be consistent and available even during data store failures, so we need a data store with solid consistency guarantees. Our solution to this problem is Doozer, a new, consistent, highly-available data store written in Go.

Novartis: Go at Novartis

I thought some folks would be interested to learn about a Go application I’ve developed and deployed into production at Novartis. It is a web application that allows scientists to order cell lines from an existing inventory system.

Iron.io: Go After 2 Years in Production

I can confidently say that after two years working with Go, we made the right choice. If we had started Iron.io today, it would have been a no brainer to choose it. A lot of other companies are using it now too including Heroku and Google and the people I talk to about it all have similar opinions

Upguard: Our Experience with Golang

It is easier to write a clean, fast, parallel program in go than in most other languages, and the crucial thing that Go does well is to allow a team to write a clean, fast, parallel program with relative ease.

SoundCloud: Go at SoundCloud

All together, SoundCloud maintains about half a dozen services and over a dozen repositories written entirely in Go. And we’re increasingly turning to Go when spinning up new backend projects.

Ejemplos de Progradores

Jordan Orelli: Why I went from Python to Go and not Node.js

So, to reiterate: concurrency is possible in Python, but it is an awkward affair that often feels bolted on, fractures the experienced Python programmers into different factions (Twisted is better! No, Tornado is better! Wait, you’re both dumb, use Brubeck!), and confuses the inexperienced Python programmers. To say that concurrency is possible in Python, but it is not idiomatic in Python, would be an understatement.