Golang, an Open-source Programming Language
Go or as it’s commonly referred Golang is an open source programming language created by Google in 2007. It became a public open source project in 2009 with the first stable release in 2012. Go design was inspired by such languages as C, Pascal, Algol, Smalltalk, Oberon, Modula, and Newsqueak.
Go was created as an experiment of Google engineers Ken Thompson, Rob Pike, and Robert Griesemer to design a new programming language that could solve common issues with existing environments and languages for systems programming and maintain their positive characteristics. While building programs, developers had to choose either ease of programming, efficient execution or efficient compilation because all three features were not available in the same mainstream language. Go removed all of these obstacles connected with the ease of programming, speed, and safety.
Go appeared as an attempt to combine the efficiency and safety of a statically typed, compiled language with the ease of programming of an interpreted, dynamically typed language. Golang is also modern and supports networking and multicore computing.
Go exists in two implementations:
- Go compiler, "gc" that is developed as an open-source software project and targets different platforms including Windows, OS X, Linux, various Unix and BSD versions, and beginning with 2015 mobile devices, including smartphones.
- The other compiler, gccgo, is a GCC frontend.
Support for Android was added in version 1.4 and now it can also run on iOS.
Go is used by a number of notable companies such as Google, Uber, Lyft, Medium, Heroku, Dropbox, Docker, and others.
Golang has proven to be a good choice for a large variety of tasks such as:
- Web servers and web applications
- As an alternative to parallel script writing in C/C++
- As a standalone script or command-line application
Go has an extensive library that is called runtime and is a part of every Go program. It implements such critical features of the Go language as stack management, concurrency, garbage collection, and others. There is no virtual machine so the Go programs are compiled directly to the machine code that makes the process of programming fast.