Hi folks, it’s been quite a long time, I have been working on interesting scalability challenges recently and couldn’t get enough time to share my learning.
I have been dabbling with this interesting language and thought it’d be great for you to know as well, but here I am, this time with Golang or simply Go.
What’s Go? Let’s start with a quick introduction:
- Go is an open source programming language and was developed in Google by Ken Thompson and Rob Pike
- Go is a statically typed and a compiled language (like C/C++), but feels like a dynamically typed interpreted language (like Python)
- Even though a simple language, Go is used to write efficient programs that scale well – kind of brings in best of both the worlds
- As it is a compiled language – Go programs can be built on a machine like Mac or Ubuntu and can be distributed and run across other operating systems like Windows
- Strangely, Golang is not object oriented but provides methods, interfaces and structures for grouping data and reuse. (So OOP or not? More about this later)
- In the world of internet, where web apps want to use multiple cores to run their programs, Go’s built in concurrency model (with go routines and channels) is a big boon for developers
- Go is 9 years strong (at the time of writing this blog) and v1.11.2 release is available for download, with proposals already for version 2.0 being actively discussed by the community
Enough of introduction, let’s take the first step and install Go in the next blog.