Home > Article > Backend Development > what is golang
Golang is a statically strongly typed, compiled, concurrent programming language with garbage collection function; it can greatly reduce the complexity of the code without losing application performance, and also It can take advantage of the simultaneous multi-tasking of multi-core processors, solve the troubles of object-oriented programming, and help programmers deal with trivial but important memory management issues.
The operating environment of this tutorial: windows10 system, GO 1.11.2, thinkpad t480 computer.
Go language is a statically strongly typed, compiled language developed by Google in 2007 and officially released to the outside world in 2009 release.
Golang (also known as go language) is a statically strongly typed, compiled, concurrent programming language with garbage collection capabilities developed by Google. It is a simple open source programming language that makes it easy to build simple, reliable, and efficient software.
The Go language can greatly reduce the complexity of the code without losing application performance. It can also take advantage of the simultaneous multi-tasking of multi-core processors, and can solve the troubles of object-oriented programming, and It helps programmers deal with trivial but important memory management issues. Compared with other programming languages, it is simple, fast, safe, parallel, interesting, open source, memory management, array safety, and fast compilation.
The Go language has become popular all over the world with its near-C execution performance, near-analytic language development efficiency, and near-perfect compilation speed. Many people call the Go language the C language of the 21st century, because Go not only has the simplicity and performance of C, but is also optimized for the programming of multi-processor system applications, and provides a good solution for server-side development in the Internet environment of the 21st century. various practical features.
The event originated in September 2007 At that time, the C committee was giving a sharing speech at Google on the 35 new features added to the C language.
Google’s technical masters are also listening carefully to the lecture. Among them are the three creators of the Go language, namely: Robert Griesemer and Rob Pike. , Ken Thompson (Ken. Thompson).
As the meeting came to an intermission, everyone began to complain about whether these
- ##Rob Pike (Rob. Pike)Rob Pike is the pioneer of Unix and is
- Ken Thompson (Ken. Thompson) Ken Thompson, the author of the B language, the predecessor of C language, and Dennis Ritchie are the original creators of Unix. Winner of the Turing Award in 1983 and the National Medal of Technology in 1998.
- Robert Griesemer (Robert Griesemer) participated in the production of Java's HotSpot compiler and Chrome browser's javascript search engine V8.
C language new featuresbring more value. Rob Pike believes that:The achievement of simplifying the language is far greater than adding functionality. As a result, a new language, Go, emerged based on this idea.
On September 25, 2007, Rob Pike got inspiration for a new language name on his way home, so he sent an email to two other people: The main text of the email is:I got some inspiration while driving home. 1. Name this programming language "go". It is short and easy to write. Tool classes can be named: goc, gol, goa. The interactive debugging tool can also be directly named "go". The suffix of the language file is .go, etc.This is the origin of the name of the Go language. From then on, Robert, Rob and Ken began to conduct research and development within Google. Until 2009, Go Officially open source, the Go project team regards November 10, 2009, the day when the language was officially open sourced, as its official birthday. The source code was initially hosted at http://code.google.com and was gradually moved to GitHub over the next few years.
Go 1.0 — March 2012: The first version of Go, with a compatibility document to ensure compatibility with future releases without breaking existing programs.
Go 1.1 — May 2013: This version of Go focuses on optimizing the language (compiler, gc, map, go scheduler) and improving its performance.
Go 1.3 — June 2014: This version makes important improvements to stack management. The stack can apply for [continuous memory segments, improving the efficiency of allocation
Go 1.4 - December 2014: This version brings official support for Android, allowing us to write only Go code Simple Android program.
Go 1.7 — August 2016: This version releases the context package, which provides users with methods to handle timeouts and task cancellations.
Go 1.11 — August 2018: Go 1.11 brings an important new feature: Go modules.
Application fields of Go language
Large Internet companies using Go
The strength of the Go language is that it is suitable for developing network concurrency services, such as message push, monitoring, containers, etc., so most companies will use it on high-concurrency projects. Golang is preferred as the development language. Another application is to refactor some python, php or java projects. [Related recommendations: Go video tutorial]
Programming language is a series of instructions (Instruction) used to control the computer. It has a fixed format and vocabulary (the format and vocabulary of different programming languages are different). Just like we Chinese need Chinese to communicate with each other, and British people need English to communicate with each other, communication between people and computers requires a language as a medium, that is, a programming language.
The development of programming languages has gone through machine language (instruction system) => assembly language => high-level language (C, java, Go
, etc.).
010010101001-》ADD
Compiled language and interpreted language
Computers cannot understand high-level languages, let alone Directly executing a high-level language can only directly understand machine language. Therefore, if a program written in any high-level language wants to be run by a computer, it must be converted into computer language, that is, machine code. This conversion method is divided into two types: compilation and interpretation. Therefore, high-level languages are also divided into compiled languages and interpreted languages.
Use a specialized compiler to convert the high-level language source code once for a specific platform Compiled into machine code that can be executed by the platform hardware, and packaged into an executable program format that can be recognized by the platform.
Before executing a program written in a compiled language, a special compilation process is required to compile the source code into a machine language file, such as a file in the exe
format. When it is run in the future, Just use the compilation result directly, such as running the exe
file directly. Because it only needs to be compiled once and does not need to be compiled when running later, compiled languages have high execution efficiency.
1. One-time compilation into platform-related machine language files, which are separated from the development environment during runtime and have high operating efficiency;
2. It is related to a specific platform and generally cannot be transplanted to Other platforms;
Use a specialized interpreter to interpret the source program line by line into machine code for a specific platform and execute it immediately. The code is dynamically translated and executed line by line by the interpreter when it is executed, rather than being translated before execution.
1. Every time an interpreted language is run, the source code needs to be interpreted into machine code and executed, which has low execution efficiency;
2. As long as the platform provides the corresponding interpreter, The source code can be run, so source program transplantation can be facilitated;
For more programming-related knowledge, please visit: Programming Video! !
The above is the detailed content of what is golang. For more information, please follow other related articles on the PHP Chinese website!