The three authors of Go are Robert Giresemer, Rob Pike and Ken Thompson
- Robert was a major contributor to Google V8, Chubby, and HotSpot JVMS before developing Go;
- Rob is primarily the author of Unix, UTF-8, plan 9;
- Ken is primarily the author of B, C and the father of Unix.
The main development process of Go
- Rob Pike was officially named Go in September 2007
- In May 2008, Google gave the project its full backing;
- In November 2009, Go made its code entirely open source, and it won the language of the Year award.
- The first official stable release of Go was released on March 28, 2012
Go language features
1. The Go language was designed to solve a problem faced by Google developers at the time
- A lot of C++ code, along with Java and Python
- Thousands of lines of code
- A distributed compilation system
- Millions of servers
2. Pain points in Google development:
- Compile the slow
- Runaway dependence
- Each engineer uses only part of a language
- The program is difficult to maintain
- Cross compilation difficulty
3. How to solve the problems and pain points at that time
- Go wants to be the C language of the Internet age, so Go is simple enough
- The Go language was designed to eliminate slowness and clunkiness, improve inefficiencies and extensibility
4. The characteristics of Go language
- Object orientation without inherited polymorphism
- Strong consistency type
- Interface does not need to display a declaration
- No exception handling
- Initial-based accessibility features
- An unused import or variable causes a compilation error
- Perfect and excellent standard library package
Advantages of Go
1. The learning curve is easy
The syntax of Go language is simple, including c-like syntax. So Go is easy to learn
2. Fast compilation time, high development efficiency and high operation efficiency
Go is close to C and close to PHP
3. Pedigree and pure blood
Google, the company behind Go, is taking its new darling seriously
4. Free and efficient: combination of ideas, non-invasive interface
Go language can be said to be the perfect combination of development efficiency and operational efficiency. With natural support for concurrent programming, Go supports all programming paradigms, including procedural, object-oriented, interface, and functional programming
5. A strong standard library
Including Internet applications, system programming and network programming, its standard library is basically very stable
6. Easy deployment: binary file and copy deployment
7. Simple concurrency
Go is a very efficient language with high support for concurrency. Go is a programming language for big data, microservices, and concurrency.
Go as a language tries to keep things simple. It doesn’t introduce a lot of new concepts. Instead, it focuses on building a simple language that is incredibly fast and easy to use. Goroutines are a lightweight thread-oriented approach to Go, and channels are the preferred means of communication between Goroutines.
Goroutines can be created cheaply, requiring only a few thousand bytes of extra memory, which makes it possible to run hundreds or even thousands of Goroutines simultaneously. You can use channels to communicate between Gotoutines. Gotoutines and the channel-based concurrency approach make it very easy to use all CPU cores and handle concurrent IO.
Stability of 8.
Go has a strong compile check, strict coding specification and complete software lifecycle tools, with strong stability. Go provides tools for all parts of the software life cycle (development, testing, deployment, maintenance, etc.), such as Go Tool, Gofmt, And Go Test.
Core features and advantages of the Go language
Go is mainly characterized by static language, natural concurrency, built-in GC, high security, simple syntax, and fast compilation. These characteristics determine the three advantages of Go: fast running, fast development, and fast deployment.
What can Go develop
- Go is a great way to do server programming that used to be done in C or C++, such as logging, data packaging, virtual machine processing, file systems, etc.
- Distributed systems, database agents, etc., such as Etcd.
- Network programming, including Web applications, API applications, download applications and so on
- Database operations
- Developing the cloud Platform
Welcome to follow my official account ~ search my official account: Turn over code nongba singing or scan the qr code below: