What is Golang and how to install it

Latest Golang Logo

Golang, also known as “Go” is a procedural programming language. It is is a statically typed, compiled programming language designed at Google.

It was developed in 2007 by Robert Griesemer, Rob Pike, and Ken Thompson.

Creators of Golang at Google

This programming language was open-sourced and launched publicly in 2009. Golang is similar to C but comes with some additional features like memory safety, garbage collection and structural typing. It also supports environment adapting patterns. The latest stable version for this language was released on October 31, 2019. It is supported on multiple operating systems like DragonFly BSD, FreeBSD, Linux, macOS, NetBSD, OpenBSD, Plan 9, Solaris, Windows. It has some important characteristics which are:-

  1. run-time efficiency
  2. readability and usability
  3. high-performance networking and multi-processing

Go language is an effort from Google to combine the ease of programming of an interpreted, dynamically typed language with the efficiency and safety of a statically typed, compiled language. It also aims to be modern, with support for networked and multicore computing.

What is unique about “Go”?

Photo by Ricardo Gomez Angel on Unsplash
  • It reduces the amount of typing of the words and throughout its design, developers tried to reduce clutter and complexity.
  • There are no forward declarations and no header files like in C or C++; everything is declared exactly once.
  • Simple type derivation using the: = declare-and-initialize construct.
  • There is no type hierarchy: so they don’t have to announce their relationships.

Advantages and Disadvantages of Go Language:-

Advantages:

  1. Flexible- It is concise, simple and easy to read.
  2. Concurrency- It allows multiple processes running simultaneously and effectively.
  3. Quick Outcome- Its compilation time is very fast.
  4. Library- It provides a rich standard library.
  5. Garbage collection- It is a key feature of go. Go excels in giving a lot of control over memory allocation and has dramatically reduced latency in the most recent versions of the garbage collector.
  6. It validates for the interface and type embedding.

Disadvantages:

  1. It has no support for generics, even if there are many discussions about it.
  2. The packages distributed with this programming language is quite useful but Go is not so object-oriented in the conventional sense.
  3. There is an absence of some libraries especially a UI tool kit.

Some popular Applications developed in Go Language:-

  • Docker: a set of tools for deploying Linux containers
  • Openshift: a cloud computing platform as a service by Red Hat.
  • Kubernetes: The future of seamlessly automated deployment processes
  • Dropbox: migrated some of their critical components from Python to Go.
  • Netflix: for two-part of their server architecture.
  • InfluxDB: is an open-source time-series database developed by InfluxData.
  • Golang: The language itself was written in Go.
  • Firmware and OS Kernel Development
  • Desktop UI development
  • Web frontend

What are the things to be appreciated in Go?

1) Simplicity

Go is simple and flexible, easy to understand language which does not have many ways to do the same thing, unlike Rust and Javascript. It is extremely valuable for people to understand and write maintainable code when working on a team in building large scale projects. If you have ever worked on a large project you would know that it is relatively hard for a newcomer to understand the code without any help. Go tries to solve this issue to some extent. The features and concepts that this language offers are easy to grasp and so the developer and get to the implementation part as quickly as possible.

2) Code Style

The most important feature of any programming language is that we must not waste time debating about the code style, formatting and setting up the linting features. Go provides opinionated formatting, linting & vet tool as part of the package and the Go compiler even enforces things like unused variable and stuff.

3) Goroutines & Channels

One of the greatest strengths of Go is the native support for concurrency and parallelism. It makes it an ideal candidate for applications that require heavy concurrent and/or parallel processing, networking and so on. Goroutines makes it so easy to start lightweight threads and channels provide a way to communicate between these threads acting like a message bus.

4) Doesn’t need a runtime

Go doesn’t need a runtime like JVM(Java Virtual Machine) or NodeJS, Go applications can be compiled into an executable cross-platform binary using the standard Go tooling. This makes Go applications portable and platform-independent.

Golang is built for those who want the task accomplished effectively and fast without the need to go into the subtleties of the programming language.

How to install Golang?

Step 1: Go to https://golang.org/dl/

Downloads page of Golang

Step 2: Download the Golang according to your system architecture and follow the further instructions for installation of Golang. After downloading, unzip the downloaded archive file. After unzipping you will get a folder named go in the current directory

System Properties of Windows 10

Step 3: Now copy and paste the extracted folder wherever you want to install this. Here we are installing in C drive and set the environment variables. Right-click on My PC and select Properties. Choose the Advanced System Settings from the left side and click on Environment Variables as shown in the below screenshots.

System Properties and their respective sub-menus

Step 4: Click on Path from the system variables and then click Edit. Then Click New and then add the Path with bin directory where you have pasted the Go folder. Here we are editing the path C:\go\bin and click Ok as shown in the below screenshots.

Environment and System variables menu

Step 5: Now create a new user variable which tells Go command where Golang libraries are present. For that click on New on User Variables as shown in the below screenshots.

Save the variable menu and Command Prompt for execution

Step 6: Now fill the Variable name as GOROOT and Variable value is the path of your Golang folder. So here Variable Value is C:\go\. After Filling click OK. After that Click Ok on Environment Variables and your setup are completed. Now Let’s check the Golang version by using the command go version on command prompt. After completing the installation process, any IDE or text editor can be used to write Golang Codes and Run them on the IDE or the Command prompt with the use of command:

go run filename.go