Wednesday, January 31, 2018

Go Programming Language

After C and Rust, it's time to talk about Go programming language.



What is Go Programming Language

Go programming language is an open source programming language made and developed by Google. This language is designed to build simple, fast and reliable software.

Go is very different than many other other programming language. This language is a statically-typed language derived for C, adding garbage collection, type safety, and a large standard library.

Go was initially created by Robert Griesemer, Rob Pike, and Ken Thompson in 2007. It was release in November 2009.

Why using Go?

In Go, compile times are fast. The best thing in Go is that it doesn't suffer from continuous language changes. Go was initially born from frustrating languages in the environment, so Go is fabulous with its simplicity. In addition, Go support concurrency; in other word it enables any programmer to use the CPU horsepower efficiently. Even if your processor has just 1 core, concurrency's design enables you to use that one core efficiently.

Another feature I really like about Go is interfaces. Interfaces enable loosely coupled or decoupled components. Meaning that a part of your code can just rely on an interface type without caring about who implements the interface. Briefly, Go best works with web servers, caches, and distributed system.

The last feature I want to talk about in Go is its tooling. Gofmt is a tool used to format and indent the code. Go run is another tool used to compile and run the code at the same time. Go get is used by the programmer to download any library for GitHub and copies the path of the library so it can be easily imported inside the project. An important tool is Godoc used to parse the go source code into HTML or plain text format. There are more tools you can check it  here https://golang.org/cmd/go/

Disadvantages of Go

Go still has low level features such as pointer arithmetic. Errors in go aren't that easy to handle and to learn. Additionally, Go doesn't support function overloading. Furthermore, the packages distributed with Go are pretty useful but you'll miss UI toolkit inside.


Future of Go

Go has a really bright future, especially with its popularity. Go is used in all the companies around the world, and is crazy hot in China. With its support of concurrency, the high possibility of using go to develop with mobile, the use of maps and slices, the easy way to learn and master this language, and the supersonic speeds, the number of go's users will certainly increase. If you have some time to learn go in one video please and the video below to your list.



No comments:

Post a Comment