Why Golang became the way for many companies?
Let’s start answering to this question through an imagination exercise. Did you ever confront with that kind of frustration of dealing with complexity generated by very large teams of people working on very large pieces of software written languages with large feature sets? Well, as you might know already, Golang was created to solve that kind of frustration. Then, why not using it to increase your business?
In the end, Golang is your friend, but not your friend at a party asking you to take a taxi back home, it is your friend at an intervention telling you that he’s thrown all the alcohol out of the window. BBC Worldwide enjoyed such a friend when it implemented Golang in different areas, as a backend for different games (mobile and social) in production and development, Social Media crawlers and scrapers for an internal analytics product and web services that front various object stories.
But how exactly will that kind of friend help your business? Let’s find out from other small and middle businesses that grew with Golang.
A faster development process
Golang has the speed of a compiled language, but the feel of an interpreted language. Moreover, has clean syntax with text-based workflow, minimalistic design, and clear language specification. Thus, you can learn a language and become productive real fast. You can write the code fast, and even faster compilation speeds allow for a rapid feedback style. And speedy development means saving time and money for your company.
For example, Dnsimple found operation Golang processes in production to be relatively painless. They used their own flavor of continuous delivery. Actually, deployment was a breeze, and they had the application running in production shortly after deciding to do so. Both memory and CPU usage are at least an order of magnitude lower than the Ruby application they used before Golang.
Another business that chooses to grow with Golang was Toggl. They decided to re-implement some part of their backend with it. So far, it has paid off, as the development process was fast, and deployment surprisingly simple. The resulting code was a big improvement in terms of speed.
Mender also discovered that Golang has more core languages features and libraries that allows much faster development of applications. This means that more Mender features had been developed for the community and users much faster than if C was chosen as the main language. As it is a compiled language, Golang runs natively and very efficiently on embedded devices. Moreover, it provides wide platform coverage from cross-compilation to support different architectures.
And one of Heroku favorite productivity gains was provided by Golang’s source formatter: gofmt. Deploying Doozer was satisfying simple. Golang builds statically linked binaries which means Doozer has no external dependencies.
In the end, you’ll have a product much more performant in terms of CPU load, memory usage and more. The reason is that Golang is focused on fast compiling and faster runtunes. For Digg, their average response time from their service was almost cut in half, their timeouts were happening on time and their traffic spikes had minimal effects on the service.
Minimum maintenance costs
Even if switching to Golang will cost your business in terms of initial development time, you’ll recoup that time in maintenance costs. Which is usually way more than the time to develop a feature.
Golang is lighting fast, and it’s perfect for serving up your applications. In fact, it’s so efficient that Moovweb not only built some small part of their platform in Golang, but now it is the heart of their tech. Their SDK is a compiled binary that they pack and send out to their clients and integration partners. Their production system is handling millions of pages a day and millions of dollars of e-commerce a month. And as Digg was having difficulty with handle fast their requests for their platform, they moved to Golang as well. With their Golang upgrade, they’ve been able to handle 200 requests per minute and 1,5 million S3 item fetches per day.
Another powerful aspect of Golang is the way to which it hands object orientation. Golang has a notion of an interface used to identify a capability of an object and where it can be used. CloudFlare explored its advantage in their own work. Moreover, at CloudFlare, goroutines are now handling both the multiplexed Internet connections (of which there could be many between a single CloudFlare data center and their client) and the connections needed to get content from origin web servers and provide the content back to the nginx server that sends it on to the web browsers.
Golang and an easier HR process
When it comes to HR in a business focused on web development or depends on this activity, using a functional language make hiring and training new people more difficult. But not anymore, thanks to Golang because it’s concurrency makes writing software that must scale up and down very easy.
While the pool of Golang developers is definitely smaller from what we’ve seen, the people who are excited/knowledgeable about Golang tend to be developers who are truly interested in learning new things and pushing the envelope.
Because of the simple fact that is open-sourced and much more simpler than other languages, Golang makes developers feel that is in more control over the product that he is creating or maintaining. Golang has libraries for HTTP, raw network connections, URL manipulation, TLS, many different types of serialization systems, cryptographic hashing, compression, and the more mundane string manipulation, date/time, and logging. He will feel like in case of problems, he doesn’t depend on the creator to fix his issues.
For example, Movio discovered for the first time ever, that they actually can read the language spec when they were unsure of how something works. That’s how simple it is; the spec is readable. An approachable and complete guide to the language strengths developer confidence in making assumptions while following a piece of code and in justifying their decision-making rationale.
It the end, your business will gain in terms of time, reputation and money if your developers aren’t fighting the language they have to use in developing products. Take a look at Moovweb. They remote all their internal software in Golang and they saw how fast new users/employees have learned it.
In conclusion, Golang code tends to look ready for the public much sooner than most other languages, it provides a much stronger feeling of comfort to the developer, and the community embraces small-simple solution over big-sophisticated ones.