What is Golang?

golang.jpeg

Brief Introduction

Go is a statically typed, compiled programming language designed at Google by Robert Griesemer, Rob Pike, and Ken Thompson. Go is syntactically similar to C, but with memory safety, garbage collection, structural typing, and CSP-style concurrency. The language is often referred to as Golang because of its domain name, golang.org, but the proper name is Go.

There are two major implementations:

  • Google’s self-hosting compiler toolchain targeting multiple operating systems, and WebAssembly.
  • gccgo, a GCC frontend.

A third-party transpiler GopherJS compiles Go to JavaScript for front-end web development.

History

Go was designed at Google in 2007 to improve programming productivity in an era of multicore, networked machines and large codebases. The designers wanted to address criticism of other languages in use at Google, but keep their useful characteristics:

  • static typing and run-time efficiency (like C),
  • readability and usability (like Python or JavaScript),
  • high-performance networking and multiprocessing. The designers were primarily motivated by their shared dislike of C++.

Go was publicly announced in November 2009, and version 1.0 was released in March 2012. Go is widely used in production at Google and in many other organizations and open-source projects.

In November 2016, the Go and Go Mono fonts were released by type designers Charles Bigelow and Kris Holmes specifically for use by the Go project. Go is a humanist sans-serif which resembles Lucida Grande and Go Mono is monospaced. Each of the fonts adhere to the WGL4 character set and were designed to be legible with a large x-height and distinct letterforms. Both Go and Go Mono adhere to the DIN 1450 standard by having a slashed zero, lowercase l with a tail, and an uppercase I with serifs.

In April 2018, the original logo was replaced with a stylized GO slanting right with trailing streamlines. However, the Gopher mascot remained the same.

In August 2018, the Go principal contributors published two “draft designs” for new language features, generics and error handling, and asked Go users to submit feedback on them. Lack of support for generic programming and the verbosity of error handling in Go 1.x had drawn considerable criticism.

Wikipedia CC-BY-SA-3.0

最新发布