What is Golang?

What is Golang?
What is Golang?

Have you ever wondered what would be the next-gen “C” language after some years? Well, that’s becoming pretty simple by the trend of “GOLANG” these days.

According to PPYL and GitHub, it is the fastest-growing language.  Let us have a quick overview to know why developers are inclined towards this language.

History of Golang

In 2007 three google employees Robert Griesemer, Rob Pike, Ken Thompson started sketching the goal to create a new programming language, easy to use but still cover the main challenges while working with the company’s intricate systems. The developers praised the simplicity of Go by keeping in mind the best features of C, Pascal and Oberon programming languages. It was designed to make the working environment more productive, high readability and useability, high networking and multiprocessing.

Go was publicly announced in 2009 and with version 1.0 it was released in March 2012 making it an open-source programming language. The initial name of this language is “Go” but because of its official website(golang.org), the name “Golang” is trendy.  The current version of golang is 1.13. 

Ancestors of Golang

Go mostly belongs to the C family (basic syntax), inputs from the Pascal/Modula/Oberon family (declarations, packages), some ideas from languages inspired by Tony Hoare’s CSP, such as Newsqueak and Limbo (concurrency). In total, the language was designed by thinking about what programmers do and how to make programming, at least the kind of programming we do, more effective, which means more fun.

Features of Golang

  • Fast, high performance and open source: Golang is compiled to machine code hence it will outperform that are interpreted to have virtual runtimes. After compilation the binary file of golang is very small, making it a high-performance language. It is not restricted hence anyone can contribute to this language.
  • Easy to learn: It is immaculate, and even if you are familiar with C language, it can be learned at ease. Syntaxes get fit into mind very easily. The syntaxes are small hence you can fit them into the head very easily. 
  • Easy concurrence model: While concurrent programming is never easy, Go makes it easier than other languages. It is almost easier to create a lightweight thread called a ‘goroutine’  and communicate it via a ‘channel’. It is easy to progress with multiple tasks as it is made for concurrency.
  • Security: It is statically typed which implies you need to be explicit in the type of data you are passing. The current version introduced a new security feature known as the checksum database. This database store checksums that verifies that go module collection files haven’t changed.
  • Explicitly designed for the cloud: It is specially built for the cloud because of its built-in concurrency. It also garbage collection to simplify memory management for concurrent operations. It has a light framework for testing that can run with a simple ‘go test’ command.
  • Powerful standard library: Go does not need third party support for any external feature. Go has packages for standing up a web server, cryptography and so on. It has built-in maps and slices. It has the inbuilt test framework that supports parallel testing and benchmarks easy to test network clients and servers. 
  • Microservice architecture: A microservice architecture divides the entire application into a set of multiple manageable services. Therefore, specialised support services in the Go-kit makes it easy to adopt microservices and enjoy its cool benefits.

Applications currently running Golang Script

  • Uber uses Golang for handling high volumes of geofence based queries.
  • Soundcloud uses Go for a dozen of systems.
  • Netflix uses Go for two portions of their server architecture. 
  • MongoDB uses Go for administering MongoDB instances.
  • Dropbox migrated some of their critical component from python to Go,
  • Twitch migrated from an IRC based chat system based on python to Go.
  • Heroku uses Go for lock service.
  • Cacoo uses Golang for the rendering of the user dashboard page and microservices.

Installation & Filenames of Golang

  • Go can be installed from the official website(Download and install) for Mac, Windows and Linux.
  • To run a go program using the command line – go run filename.go.
  • Filenames are stored in small letters and separated by ‘_’ or ‘-’.
  • If you want to build the binary file of the code the command is – go buildc.
  • We can also execute the binary file by ./filename.
  • The official playground of golang is available at – The Go Playground

The IDE’s that support Golang are Eclipse, VSCode, Atom, Emacs, Vim and IntelliJ.

Example Code:

The following is the basic code written in Golang. 

package main // line 1

import ( 
	"fmt"  // line 2

func main() {  // line 3
	fmt.Println("Hello, playground") // line 4 


Line 1:
package main
When we develop executable programs we import the main package. It tells Go compiler that it is an executable program instead of a shared library. The line 3 function main() is there in the “main” package.

Line 2
This deals with the input-output function like scanf() and printf() in C language. This package allows to format basic strings, values, or anything and print them, collect user input from the console, or write into a file using a writer or even print customized fancy error messages. This package controls all the formatting of input and output.

Line 3
func main()
This is the entry-level function of Golang aslike c/c++ have int main().
The func keyword is used to indicate the function in golang. The execution of our program starts with this function. It does not return anything, unlike the other languages.

Line 4
fmt,println(“Hello playground”)
Println() is the function defined in the fmt package. It prints to the standard output. This is how the statements are printed in golang. If not a new line the Printf() function is used. It also formats the input and outputs.

Here’s a quick comparison between Golang and C++

                        Go                        C++
Procedural and concurrent programming language.Object-oriented programming language.
Uses panic and recover for error handling.Uses try, catch and throw for error handling.
Provides automatic garbage collection for allocating memory.No automatic garbage collection for allocating memory.
Has pointer but does not support pointer arithmetic.Supports pointer and pointer arithmetic.
The map is passed by reference.The map is passed by value.
Contains goroutines and channels.Contains threads.

According to Burning Glass, which collects and analyses different blog postings from across the country, jobs that utilise Go could grow at an eye-popping 49.8 per cent over the next decade, outpacing many other tech skills. It is also used by top tech companies like Netflix, Dropbox, Twitch, Uber and more.

Right now, the median salary for Go-related positions is $112,000, which is above average, and hints that it’s a language utilised by skilled specialists. Thus, we should start learning golang to get better opportunities in the coming years.

Want to know more about Golang? Check out why it is so famous among engineers.

By Mansi Agarwal