What is Golang all about?

What is Golang all about?

Official definition found on Golang website is: “Go is an open source programming language that makes it easy to build simple, reliable, and efficient software”. All clear to you? If not – in this post we will take a better look what Golang actually is.


Originally Go was designed and developed by three, quite famous, engineers: Ken Thompson, Rub Pike, Robert Griesemer in Google. First public announcement took place in 2009. More than ten years passed since then and community is still thriving and growing today. Go is even in top 3 languages to learn in 2019 according to Hakernoon: “The top three programming trends to watch in 2019 are the rise of Python, TypeScript, and Go. All three are great choices if you’re looking for a new language to learn”. Full timeline of Go evolution can be seen in a diagram below.

Go evolution timeline.

Why Go was created?

Programming languages at the time were usually performing well at two out of three aspects. – Efficient Compilation, Efficient Execution, Ease of Programming, as presented in diagram below. Like C++ has really Efficient Execution, but not that good Efficient Compilation and Ease of Programming. Java is a bit better with Efficient Compilation, but not that easy for new developers to adopt. On the other hand there is JavaScript which is easy to learn and has really fast compilation time, but Efficient Execution is not perfect. Similarly Python – easy to learn, good compilation time, but there is some loopholes when it comes to execution. So the decision was made to create new language which would solve all of three problems and that language is Go.

Efficient Compilation, Efficient Execution, Ease of Programming.

Language Characteristics

  • Strongly typed. Emphasis is on compiler to tell the types instead of the programer specifying them.
  • C – inspired syntax. It looks similar from a first glance, but it was not blindly adopted from C.
  • Multi-paradigm programming language: you can mix Procedural and Object Oriented programming technics in Go.
  • Garbage collected – you don’t need to manage memory on your own. It is made like this to make Go as robust as possible. This also benefits Go language scalability.
  • Fully compiled language – unlike scripting languages which is interpreted at runtime or languages as Java which is compiled to some intermittent code which is interpreted at runtime. Go applications are fully compiled to an executable binary. Which gives the best opportunity to achieve the best performance possible.
  • Rapid compilation – problem with languages which do not have rapid compilation is that it’s hard for engineers to stay focused and write tests if you need to wait every time you want to change your code. That’s not a problem in Go – since usually Golang applications compile in almost no time.
  • Single binary output – when you compile Go application you will get one output file by default, it won’t include you assets, but all your Go code will be bundled into single binary file. That allows really simple deployments. If intended application can be compiled into multiple files as plugins and extensions.

Who is using Go?

Go programming language is used and supported by the biggest technology companies such as: IBM, Amazon, DigitalOcean, Facebook, docker, Netfilx, Cloudfare, Elasticsearch. Docker and Kubernetes are written in Go! Also you can check the list of all companies using Golang today on Github. So it you are afraid that Golang might lack support. That’s not the case.

I hope that after reading this article you got basic knowledge about Go and are motivated to learn more about it.

Add Comment

Your email address will not be published. Required fields are marked *