{"id":3117,"date":"2018-01-17T08:55:19","date_gmt":"2018-01-17T08:55:19","guid":{"rendered":"https:\/\/intelligentbee.com\/blog\/?p=3117"},"modified":"2025-03-06T08:03:53","modified_gmt":"2025-03-06T08:03:53","slug":"reasons-grow-golang","status":"publish","type":"post","link":"https:\/\/intelligentbee.com\/blog\/reasons-grow-golang\/","title":{"rendered":"3 reasons why you should grow with Golang"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Why Golang became <\/span><span style=\"font-weight: 400;\">the way<\/span><span style=\"font-weight: 400;\"> for many companies? <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Let\u2019s 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?<\/span><\/p>\n<p><span style=\"font-weight: 400;\">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\u2019s thrown all the alcohol out of the window. <\/span>BBC Worldwide<span style=\"font-weight: 400;\"> 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.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">But how exactly will that kind of friend help your business?<\/span><span style=\"font-weight: 400;\"> Let\u2019s find out from other small and middle businesses that grew with Golang.<\/span><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_68_1 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title \" >Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/intelligentbee.com\/blog\/reasons-grow-golang\/#A_faster_development_process\" title=\"A faster development process\">A faster development process<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/intelligentbee.com\/blog\/reasons-grow-golang\/#Minimum_maintenance_costs\" title=\"Minimum maintenance costs\">Minimum maintenance costs<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/intelligentbee.com\/blog\/reasons-grow-golang\/#Golang_and_an_easier_HR_process\" title=\"Golang and an easier HR process\">Golang and an easier HR process<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"A_faster_development_process\"><\/span><span style=\"font-weight: 400;\">A faster development process<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">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.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For example, <\/span><a href=\"https:\/\/blog.dnsimple.com\/2013\/03\/golang-redirector\/\"><b>Dnsimple<\/b><\/a><span style=\"font-weight: 400;\"> found operation Golang processes in production to be relatively painless. They used their own flavor of continuous delivery. Actually, <\/span><span style=\"font-weight: 400;\">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.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Another business that chooses to grow with Golang was <\/span><b>Toggl<\/b><span style=\"font-weight: 400;\">. 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.<\/span><\/p>\n<p><a href=\"https:\/\/mender.io\/blog\/why-did-we-choose-golang-over-c\"><b>Mender<\/b><\/a><span style=\"font-weight: 400;\"> also discovered that Golang has more core languages features and libraries that allows much faster development of applications. This means that more <\/span><b>Mender <\/b><span style=\"font-weight: 400;\">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.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">And one of <\/span><a href=\"https:\/\/blog.golang.org\/go-at-heroku\"><b>Heroku<\/b><\/a><span style=\"font-weight: 400;\"> favorite productivity gains was provided by Golang\u2019s source formatter: gofmt. Deploying Doozer was satisfying simple. Golang builds statically linked binaries which means Doozer has no external dependencies.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In the end, you\u2019ll 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 <\/span><b>Digg<\/b><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">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.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Minimum_maintenance_costs\"><\/span><span style=\"font-weight: 400;\">Minimum maintenance costs<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Even if switching to Golang will cost your business in terms of initial development time, you\u2019ll recoup that time in maintenance costs. Which is usually way more than the time to develop a feature.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Golang is lighting fast, and it\u2019s perfect for serving up your applications. In fact, it\u2019s so efficient that <\/span><a href=\"https:\/\/groups.google.com\/forum\/#!topic\/golang-nuts\/MeiTNnGhLg8\/discussion\"><b>Moovweb<\/b><\/a><span style=\"font-weight: 400;\"> not only built some small part of their platform in Golang, but now it is the heart of their tech. <\/span><span style=\"font-weight: 400;\">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. \u00a0<\/span><span style=\"font-weight: 400;\">And as <\/span><b>Digg<\/b><span style=\"font-weight: 400;\"> was having difficulty with handle fast their requests for their platform, they moved to Golang as well. <\/span><span style=\"font-weight: 400;\">With their Golang upgrade, they\u2019ve been able to handle 200 requests per minute and 1,5 million S3 item fetches per day. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">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. <\/span><a href=\"https:\/\/arstechnica.com\/information-technology\/2013\/02\/cloudflare-blows-hole-in-laws-of-web-physics-with-go-and-railgun\/\"><b>CloudFlare<\/b><\/a><span style=\"font-weight: 400;\"> explored its advantage in their own work. Moreover, <\/span><span style=\"font-weight: 400;\">at <\/span><a href=\"https:\/\/blog.cloudflare.com\/go-at-cloudflare\/\"><b>CloudFlare<\/b><\/a><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">goroutines are now handling both the multiplexed Internet connections (of which there could be many between a single <\/span><b>CloudFlare<\/b><span style=\"font-weight: 400;\"> 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.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Golang_and_an_easier_HR_process\"><\/span><span style=\"font-weight: 400;\">Golang and an easier HR process<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">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\u2019s <\/span><span style=\"font-weight: 400;\">concurrency makes writing software that must scale up and down very easy. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">While the pool of Golang developers is definitely smaller from what we\u2019ve 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.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">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. <\/span><span style=\"font-weight: 400;\">Golang has libraries for <\/span><span style=\"font-weight: 400;\">HTTP<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">raw network connections<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">URL manipulation<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">TLS<\/span><span style=\"font-weight: 400;\">, many different types of <\/span><span style=\"font-weight: 400;\">serialization<\/span><span style=\"font-weight: 400;\"> systems, <\/span><span style=\"font-weight: 400;\">cryptographic hashing<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">compression<\/span><span style=\"font-weight: 400;\">, and the more mundane <\/span><span style=\"font-weight: 400;\">string manipulation<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">date\/time<\/span><span style=\"font-weight: 400;\">, and <\/span><span style=\"font-weight: 400;\">logging<\/span><span style=\"font-weight: 400;\">. <\/span><span style=\"font-weight: 400;\">He will feel like in case of problems, he doesn\u2019t depend on the creator to fix his issues. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">For example, <\/span><b>Movio<\/b><span style=\"font-weight: 400;\"> discovered <\/span><span style=\"font-weight: 400;\">for the first time ever, that they actually can read the language spec when they were unsure of how something works. That\u2019s 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. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">It the end, your business will gain in terms of time, reputation and money if your developers aren\u2019t fighting the language they have to use in developing products. Take a look at <\/span><b>Moovweb. <\/b><span style=\"font-weight: 400;\">They <\/span><span style=\"font-weight: 400;\">remote all their internal software in Golang and they saw how fast new users\/employees have learned it. <\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">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.<\/span><\/p>\n<p><strong>So, how about giving it a Go?<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Why Golang became the way for many companies? Let\u2019s start answering to this question through an imagination exercise. Did you [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":3120,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13,73,78],"tags":[],"yst_prominent_words":[533,916,914,913,912,911,910,909,675,665,271,453,394,369,355,330,320,311,308,281],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/intelligentbee.com\/blog\/wp-json\/wp\/v2\/posts\/3117"}],"collection":[{"href":"https:\/\/intelligentbee.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/intelligentbee.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/intelligentbee.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/intelligentbee.com\/blog\/wp-json\/wp\/v2\/comments?post=3117"}],"version-history":[{"count":4,"href":"https:\/\/intelligentbee.com\/blog\/wp-json\/wp\/v2\/posts\/3117\/revisions"}],"predecessor-version":[{"id":133387,"href":"https:\/\/intelligentbee.com\/blog\/wp-json\/wp\/v2\/posts\/3117\/revisions\/133387"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/intelligentbee.com\/blog\/wp-json\/wp\/v2\/media\/3120"}],"wp:attachment":[{"href":"https:\/\/intelligentbee.com\/blog\/wp-json\/wp\/v2\/media?parent=3117"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/intelligentbee.com\/blog\/wp-json\/wp\/v2\/categories?post=3117"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/intelligentbee.com\/blog\/wp-json\/wp\/v2\/tags?post=3117"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/intelligentbee.com\/blog\/wp-json\/wp\/v2\/yst_prominent_words?post=3117"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}