Go (programming language)
Go, also known as Golang, is an open-source programming language developed by engineers at Google, officially announced in 2009. Designed for systems programming, Go aims to address challenges faced with established languages like C while maintaining their useful features. The language was created by Robert Griesemer, Rob Pike, and Ken Thompson, influenced by concepts from communicating sequential processes and the C programming language. Go emphasizes efficiency, memory safety, and readability, taking inspiration from dynamic languages such as JavaScript and Python.
Particularly suited for networking and multiprocessing tasks, Go is utilized by various companies, including Dropbox, Netflix, SoundCloud, and Uber. Notable applications written in Go include Docker, Kubernetes, and the CoreOS operating system. In recent developments, the introduction of generics in 2022 has enhanced Go's flexibility, allowing for the creation of type-independent code. The programming language has garnered recognition for its rapid rise in popularity, being named programming language of the year by TIOBE shortly after its introduction. Overall, Go is characterized as a modern, efficient tool for developers seeking to build robust systems and applications.
On this Page
Subject Terms
Go (programming language)
Go, also known as golang or Google Go, is an open source programming language created by engineers of the technology company Google. Go is a systems programming language, the class of programming languages used for writing operating systems, game engines, and other systems, as opposed to languages writing application software run on those systems. Google’s development of Go addressed some of the issues engineers had with leading systems programming languages such as C, while attempting to retain the elements that make such languages valuable.
![The Go gopher: mascot of the Go programming language (sometimes dubbed Gordon). By Renee French. reneefrench.blogspot.com [CC BY 3.0 (http://creativecommons.org/licenses/by/3.0)], via Wikimedia Commons 113931291-115592.jpg](https://imageserver.ebscohost.com/img/embimages/ers/sp/embedded/113931291-115592.jpg?ephost1=dGJyMNHX8kSepq84xNvgOLCmsE2epq5Srqa4SK6WxWXS)
Overview
Go was developed by Robert Griesemer, Rob Pike, and Ken Thompson in 2007 and later announced by Google in 2009 once it was decided to implement the language. It is one of several languages influenced by communicating sequential processes (CSP), a language first described in 1978 for handling patterns of interaction in concurrent systems, and C, a programming language developed in the early 1970s for the Unix operating system. Like C, Go was designed for efficiency. It improves on C (from the perspective of the implementations the design team had in mind) by improving memory safety in most areas, facilitating a functional programming style, and being overall smaller and more lightweight by eschewing those features in C that are the most cumbersome and complex (including pointer arithmetic and generic programming).
Go was intended to have many of the features of dynamic languages such as JavaScript and Python, specifically avoiding the need for repetition and aiming for readability. It also needed to support networking and multiprocessing. At the same time, it was a language clearly conceived in the tradition of C and C++ since, if the experiment went well, it was intended as a potential C replacement.
Go is used in similar circumstances as the Erlang and occam programming languages, but the three languages handle the semantics of interprocess communication in different ways. For instance, Go and occam cannot read messages from channel out of order, while Erlang can use matching to read events from the message queue out of order. While Erlang and occam closely resemble CSP in semantics and syntax, Go differs in syntax and is only somewhat similar in semantics.
The year it was introduced, Go was named programming language of the year by coding standards organization TIOBE for its rapid increase in popularity. Since its introduction, Go has been implemented not only by Google but also by a number of companies, including cloud storage provider Dropbox, video-streaming service Netflix, online audio platform SoundCloud, and ridesharing service Uber. Some specific programs written in Go include the CoreOS open-source operating system; Docker, a Linux system for automating the deployment of applications inside software containers; Kubernetes, a cross-platform container cluster manager Google developed for the Cloud Native Computing Foundation; and Juju, an orchestration management tool for Ubuntu Linux. Juju (then called Ensemble) was originally written in Python, marking one of several notable occasions in which something written in a dynamic programming language was migrated to Go.
Upgrades have been made to the programming language throughout the years. In 2022, generics were added to Go. This enables users to write code that is independent of the types being used in the program. They can type parameters for function and type; define interface types as sets of types, and type inference, which means users can omit type arguments.
An earlier programming language, Go!, is unrelated.
Bibliography
Chang, Sau Sheong. Go Web Programming. Shelter Island: Manning, 2016. Print.
Donovan, Alan A. A., and Brian W. Kernighan. The Go Programming Language. New York: Addison-Wesley, 2015. Print.
Doxsey, Caleb. Introducing Go: Build Reliable, Scalable Programs. Sebastopol: O’Reilly, 2016. Print.
Finnegan, Matthew. "Google Go: Why Google’s Programming Language Can Rival Java in the Enterprise." TechWorld. IDG UK, 25 Sept. 2015. Web. 19 Aug. 2016.
Golang.org. Go Programming Language, 2016. Web. 19 Aug. 2016.
Goriunova, Olga. Fun and Software: Exploring Pleasure, Paradox, and Pain in Computing. New York: Bloomsbury Academic, 2014. Print.
Griesemer, Robert and Ian Lance Taylor. "An Introduction to Generics." The Go Blog, 22 Mar. 2022, go.dev/blog/intro-generics. Accessed 15 Nov. 2024.
Kennedy, William, Brian Ketelsen, and Erik St. Martin. Go in Action. Shelter Island: Manning, 2016. Print.
Kincaid, Jason. "Google’s Go: A New Programming Language That’s Python Meets C++." TechCrunch. AOL, 10 Nov. 2009. Web. 19 Aug. 2016.