Technology Back to Blog

All Systems Golang!

3 minuteminutos readde lectura
Jason Bott
ByPor Jason Bott

Jason has been working as a consultant and project manager with enterprises of all sizes for over 20 years. His expertise lies in utilizing technology to solve problems that reduce costs and increase profits. He has been instrumental in implementing successful software projects for Shell, NOV, C&J, Nabors, Total, Halliburton, Baker Hughes, Noble, American Tower, AIG, NASA, Nike as well as many smaller firms.

44

The Creation of Golang – A Less Cluttered Way to Code

Go, also known as Golang, was first created by Google in 2009 as an alternative to other more cumbersome coding predecessors, such as JS and particularly C. Its creators envisioned a system with parallels to more dynamic languages, namely a concurrent, garbage-collected language that facilitates rapid compilation and dependency management. Go was created with an emphasis on productivity and flexibility, as evidenced by features such as static typing, parallel computation, scalability, and both multiprocessing as well as networking support.

Key Features – What Sets Go Apart?

In view of the above aims, Go’s creators strapped many features associated with more cumbersome type systems like C (although Go is largely modeled on the C family of language), opting instead for a more dynamic build that ultimately compiles off a self-contained binary system. Some key features that set Go apart include a reduction of type volume, with no need for forward declarations or header files; a simplistic, streamlined syntax that shuns repetition; simple and automatic initialization; and, perhaps most significantly, a lack of type hierarchy, meaning that relationships between various types do not need to be declared but can simply coexist as is. Golang also provides higher concurrency than other alternatives, thanks to its use of channels, goroutines, and the “select” command, which lets a goroutine wait on multiple channel operations simultaneously.

Standard Applications – Where Is Golang Used?

Golang is an excellent choice wherever networking, concurrency and standards compliance are key. It has been largely employed with success in back-end servers, where its http handlers and ability to field concurrent web requests shine. However, Go was designed to bridge the gap between languages like C++ and Python, offering a combination of an intuitive and user-friendly concurrency model on the one hand, and a comprehensive, robust and well-written standard library on the other. Thus, apart from server applications, Go, with its multi-threading ability in mind, has been successfully applied by companies like Webcreek Technology in areas as diverse as distributed/grid computing, structured storage and large database creation, caching, virtual machining, online gaming, and even web based music-players.

Looking Ahead – What’s Next for Go?

Go’s first stable release came out in November 2009, with its last release (Version 1.6) unleashed just recently on February 17, 2016. As the language continues to evolve and its user base grows, Go’s developers have added some key features to enable new applications and expand existing ones. Some key additions are expanded support for Linux and Android systems, enabled memory sharing between Go and C, default-enabled vendoring support (rather than experimental support, as offered in Version 1.5), transparent support for the HTTP/2 protocol, and heightened concurrent map misuse detection.