While Go doesn’t have nearly as many users as Java or C — an IEEE Spectrum survey ranked it as the nineteenth most popular language between Scala and Arduino — it’s gained traction among developers. That’s especially true for those building cloud or web services infrastructure. Docker, which has taken the development world like a gale force wind, is written in Go, for example. This slideshow explains why.
Just ask Derek Collison, Founder and CEO of Apcera who called Golang’s rise to fame more than two years ago.
Prediction: Go will become the dominant language for systems work in IaaS, Orchestration, and PaaS in 24 months. #golang
— Derek Collison (@derekcollison) September 11, 2012
Asked if he still holds that opinion, he was unequivocal. “[Go] got quite a bit right with the language for the Get Sh*t Done crowd, it appeals to them and anyone doing distributed systems or cloud platforms … should at least consider it,” he said via email. Apcera, was built on Go and 95 percent of its code-base is Go, he said, adding: “We made this decision over Node.js which has had its struggles as of late on the community side.”
While what we do isn’t rocket science, doing it at a scale of over 500 million messages per day is extremely challenging … One of the most compelling reasons for using Go at SendGrid is having the concept of concurrent asynchronous programming as part of the language. The argument always came up that you can do asynchronous programming in Java, but it isn’t pretty. My argument was always that ‘We can keep doing it in Perl,’ which usually helped people to understand that just because you can do something with a technology doesn’t mean its the best way to do it.
This story was updated at 8:10 a.m. with Derek Collison’s comments.