Go is a programming language designed by Google engineers Robert Griesemer, Rob Pike, and Ken Thompson. Go was conceived in 2007 to improve programming productivity at Google, in an era of multicore processors, computer networks, and large codebases. The designers cited their shared dislike of C++ (and desire for an alternative) as a primary motivation for designing a new language.
Among the major characteristics of the Go programming language are:
- Statically typed (like C and Java)
- Compiled (with fast comppilation times)
- Fast execution speed
- High-performance networking and multiprocessing
- Memory safety andgarbage collection
- Remote package management
Go intentionally leaves out many features of modern OOP languages.
- No classes. Go uses packages and structs
- No inheritance
- No constructors
- No annotations
Go was named Programming Language of the Yearby the TIOBE Programming Community Index in 2009 and 2016. The compiler, tools, and source code are all free and open source. Among projects written in Go include:
- MongoDB, tools for administering MongoDB instances
- Netflix, for two portions of their server architecture
- Dropbox, who migrated some of their critical components from Python to Go
Bruce Eckel has stated:
"The complexity of C++ (even more complexity has been added in the new C++), and the resulting impact on productivity, is no longer justified. All the hoops that the C++ programmer had to jump through in order to use a C-compatible language make no sense anymore -- they're just a waste of time and effort. Go makes much more sense for the class of problems that C++ was originally intended to solve."