Computing Atlas

How Computing Was Built
Sign In
Text size
100%
Theme
Programming Language

Go

Also Known As Golang
Concurrent Language

Go is a statically typed, compiled, general-purpose programming language designed at Google by Robert Griesemer, Rob Pike and Ken Thompson, who began sketching its goals on a whiteboard on September 21, 2007, out of frustration with the complexity of building large software projects in the languages then available to them. Go became a public open-source project on November 10, 2009, and reached its first stable release, Go 1.0, in March 2012. It has a syntax broadly similar to C, together with garbage collection, structural typing and CSP-style concurrency built directly into the language. This description is adapted from Wikipedia contributors under CC BY-SA 4.0; changes were made. https://creativecommons.org/licenses/by-sa/4.0/

Facts
First Released
2009 1
Paradigm
Multi-paradigm: imperative, concurrent, functional and structural typing 2
Significance
Go was born out of frustration with existing languages and environments at Google, where a choice had to be made between efficient compilation, efficient execution and ease of programming, with all three rarely available in the same mainstream language at once. Its designers gave concurrency first-class, built-in support, anticipating the rise of multicore hardware, and made garbage collection and fast, tool-friendly compilation central rather than optional; the language went on to become a foundation of modern cloud infrastructure tooling. 3
Classification
Typing Discipline
Statically Typed 1
Typing Discipline
Strongly Typed 1
Typing Discipline
Duck Typed 1
FAQs

Is the language called Go or Golang?

Its name is Go; Golang is a nickname from the old golang.org web address.

The language is called Go. The name Golang arose because the project web site was originally at golang.org, since there was no .dev domain then. Many people still use Golang as a handy label, and the social media tag for the language is #golang, but the Go team says the language name is just plain Go. It is also written Go, not GO, even though the official logo has two capital letters.

Why does Go not have exceptions?

Go reports ordinary errors through multi-value returns because its designers think try-catch-finally leads to convoluted code.

The Go team believes that coupling exceptions to a control structure, as in the try-catch-finally idiom, results in convoluted code. They also say it tends to encourage programmers to label too many ordinary errors, such as failing to open a file, as exceptional. Go takes a different approach: for plain error handling, its multi-value returns make it easy to report an error without overloading the return value, and a canonical error type supports this. Go does have a couple of built-in functions to signal and recover from truly exceptional conditions.
Connections

Follows Typing Discipline

Duck Typing, Concepts

In Field

Source Wikipedia: Go (programming language)

Influenced

Influenced By

Source Wikipedia: Go (programming language)

Invented By

Ken Thompson, Pioneers
Source Wikipedia: Go (programming language)
Rob Pike, Pioneers
Source Wikipedia: Go (programming language)
Source Wikipedia: Go (programming language)

Licensed Under

Source The Go Authors: The Go Programming Language License
Additional Source Wikipedia: Go (programming language)Infobox: license
In the Other Atlases

Developed By

Also in Business Atlas: the developer of this subject.

Sources
1. Wikidata: Go
  • Wikidata Q37227, class allow-list match (w-wdresolver-0926)
  • Wikidata Q37227 P571 (inception)
  • Wikidata Q37227 P7078 (typing discipline)
View the Source
2. Wikipedia: Go (programming language)
Wikimedia Foundation
  • History
    Go was designed at Google in 2007 to improve programming productivity in an era of multicore, networked machines and large codebases.
  • Introduction
  • Invented By: Rob Pike, History section
  • Invented By: Robert Griesemer, History section
  • Invented By: Ken Thompson, History section
  • In Group: Channel-Based and CSP-Inspired Concurrent Languages, Lead section
    Go has a simple syntax similar to C++, as well as garbage collection, structural typing, CSP-style concurrency, and a broad standard library.
  • Licensed Under: BSD 3-Clause License, Infobox: license
View the Source
3. Go FAQ (go.dev)
The Go AuthorsFAQ, Origins sectionView the Source
The Go Authors: The Go Programming Language License
The Go AuthorsLicensed Under: BSD 3-Clause License, License text
Quote, Licensed Under: BSD 3-Clause License, License text
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
View the Source
Comments (0)
No comments yet. Be the first to share a thought.
Reader Challenges (0)
No disputes yet. Spotted an error or a better source? Open the first one.