Introduction to Go Programming Language (GoLang)

Overview of Go and what was the purpose behind its creation.

Sravan Kumar Gottapu
2 min readDec 28, 2022

Go is an open-source programming language developed at Google in 2006. The key strengths of Go are concurrency and performance, both of which are essential components of modern software development. Go was designed to be fast, small, portable and efficient. It has a quick compilation and execution time, with efficient garbage collection to avoid memory issues when handling large amounts of data with concurrent processes.

The advantages of the language

  • Go is a statically typed compiled language.
  • Simplicity of code
  • It supports the built-in concurrency model with the help of GoRoutines.
  • A large number of libraries

The motivation behind the creation of Go

When there are already so many languages why is go even needed in the first place?

Go was invented (in 2007) by Google. Google faces two enormous challenges. Compile time is one of them. In the 2000s, a clean build of a reasonable-sized project could take hours. There were whole server farms dedicated to recompiling.

Google builds things that are so ridiculously huge that it’s still like that in 2017. It takes 5 hours to rebuild Chrome from scratch even on a big fat i7 system. The pain of compile time on these builds is so huge that Google had to invent build tools that separate dependency analysis and compilation. This would help them gain only a few per cent in build time using conventional languages.

At the time of the creation of Go, multicore CPU architectures were common and code can run in parallel on all available cores. But no programming language implies the development of multithreaded applications. The main challenges like thread-locking, race conditions and deadlocks in multi-threaded application development were handled by the developer and it was the developer's responsibility.

Go balances these different expectations of a programming language. Go has good concurrency support, which is essential for a language designed after 2022, and for companies that have a million servers waiting to be spun up.

Please give me a clap if you find this article useful.

--

--

Sravan Kumar Gottapu
0 Followers

Software Engineer || @ Deliveroo, IIT Guwahati