Go in the real world
3 min read

Go in the real world

510 words

At Sevilla Developers Conf 2 I commented on some examples of who uses Go and for what.

Among others, these seemed interesting to me, and I’ll create a somewhat larger list that will serve us to see real use cases and success stories when choosing Go for certain solutions.

Company Examples

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.

Programmer Examples

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.

Comments

Latest Posts

5 min

863 words

goimg1910I’ve always liked to see and try different technologies, and within these, of course, programming languages.

An example of this was the intensive use I gave at the time, at Arrakis, to Rebol, an interpreted cross-platform language, with everything you could need to perform great data cleaning scripts, in a “strange” syntax, but beautiful in its approach.

The case of Go was a bit different, because just like what happened to me with Angular, at the time (several years ago) I tried to give it a chance, but all the information and examples I found were “very small” blocks of code, I didn’t see in that (at a bird’s eye view) that it was finished, it seemed like a more academic/conceptual language than something for real use.