A time-value proposition for using Google’s Go Lang
Whether you are an investor with very little or no knowledge of code, or the senior program manager, project manager, developer, or tester, you should be considering Go Lang for building your software. Go is a Google conceived, open source, community supported, fast, consistent, scalable, productive language.
Go is extremely fast in compilation and building
As programs tend to increase in size, current programming languages tend to increase non proportionally with amount of time required for compiling and building. Go, on the other hand, compiles and builds ultra fast (“It is possible to compile a large Go program in a few seconds on a single computer.”) giving your developers much faster results and making individual developers and testers much more time in hand to be more useful in. If your development teams complain of long overheads in compiling, you should consider the blazingly fast Go.
Go is very fast in execution
Speed has been one of the primary goals of Go, and it shows as it is one of the fastest languages in execution. Even after a stable production release optimization of execution, libraries, and algorithms continue in earnest promising both continued stability and increased performance. Go is also a compiled language meaning that the final program exists in machine code format on your computer. Scripting languages and languages that run on virtual machines (like Java) are typically interpreted and have an extra process of conversion to machine language prior to being run causing it to be, often, many times slower. Go responds faster to the user giving a better experience, and also in this age of cloud computing, it could cost you less in terms of CPU time used.
Faster to learn and makes your developers quickly productive
Go has a very lean and simple language specification with powerful features included on absolute must-have requirement. This means that your developers will be able to become proficient in the language in very little time. If you are currently dependent on one or two architects who understand the languages in use much more than the others, or if you have a lengthy training process just to make people understand the language and how its idiosyncrasies specifically affect your development, consider moving to the consistent, orthogonal, simple yet efficient world of Go.
Easy to deploy and maintain
Go compiles and builds into a single executable. You will have less problems with respect to matching libraries and dlls among different deployment environments. This will save your team time beyond the delivery stage.
No OOP – there is less for your team to ramp up on
Go has procedural programming. Most object oriented languages have all the concepts of procedural programming and additionally OOP concepts. Yet Go can do almost anything that the other languages can and then some more. This means that the barriers to becoming proficient in the language is much lower and you can have a technically competent team very quickly. Focus will then be on solving business problems rather than figuring out language complexities.
Go code is typically smaller – less to read and maintain
Go suggests and enforces good programming practices, including a universal code formatting style, that together makes reading code much faster and also quickly understandable. Every developer who will have to go back and read their code or somebody else’s (which I guess is every developer in the world) will thank you profusely for this one. Go also uses a concept called duck typing (if it walks like a duck, swims like a duck, and quacks like a duck then it probably is a duck) which, though not a new concept by itself but a powerful one when combined with Go’s other ideas, decreases typing and improves legibility. Overall it will be a lot of cumulative time saved during the maintenance of the code in later weeks, months, and years.
If you are working in Go already as a startup, a big company, a student, or you are beginning to consider Go, drop in a comment below with details.
If you want to start trying out Go, here are some tutorials.
You can also get a wonderful tour of the language, where you can also edit the examples yourself and compile and run it then and there.
If you would like to see other reasons, mostly technical, expressed by others on why Go is a great choice, here are some links I found.
- A stack exchange exclamation of happiness with go.
- A detailed review of pluses and minuses with Go and other languages.
- Go is all the simple and useful things you know. Just tied together much better (link)
- Nothing beats the sheer, expressive power of good, clean Go (link).
- Things I like about programming in Go (link).
- Go at SoundCloud (link).
[The author, Sathish VJ is an independent technology enthusiast with a keen interest in everything technology. He is currently rediscovering the web, mobile, newer programming languages, and businesses around it. You can discover more about him at sathishvj.com.]