This is a creation in Article, where the information may have evolved or changed.
The typical characteristics of the times, as the go language of the Internet era, must make this language operation computer clusters as easy as a single machine.
Lightweight processes should be the most important execution unit of language
"Lightweight process Model" for "Asynchronous IO Model"
Cost of implementing a "lightweight process"
Basic level
New IO Library
Synchronization and Mutex
Issues with third-party libraries
Communication
Shared memory model vs Message delivery model
Erlang-style concurrency model
The go language's lightweight process of communication
In software engineering, GO is the second language that enforces code-style unification.
If expression
{
}
In terms of error handling specifications, functions allow multiple values to be returned, error types
List of Go features
Garbage collection
Richer built-in types: Slice, string, map, etc.
function returns a value, a better error handling specification
Anonymous functions and closures
Classes and Interfaces
Lightweight processes and Message Queuing
Reflection
Package
A richer library of standards
Go so far has two compilers, one is written in Plan 9 style, the other is the GCC go, although two compilers compared to other languages of the compiler is very fast, but the Plan 9 style faster than the GCC go also 5 times times.
The go language supports classes, class member methods, class combinations, anti-integration, anti-virtual functions, discarding constructors and destructors, and better interfaces. The go language is the second open source programming language released by Google 2009. The go language is optimized for programming multi-processor system applications, with go-compiled programs that are comparable to C or C + + code, and are more secure and support parallel processes.
From a programming philosophy point of view, the go language is a change faction, not a reformed faction. Process-oriented programming, object-oriented programming, functional coding, message-oriented programming, and so on, go language integration of the long, and strive to maintain the language features concise. The go language and C + +, Java, C # have a completely different philosophy of design. Since function overloading is a burden, and this feature does not have significant value in solving any problems, go does not provide it.