This is a creation in Article, where the information may have evolved or changed.
[edit this paragraph]
Go language Brief:
Go is the second Google 2009 release programming language. In July 2009, Google released the simple language, a basic language used to develop Android apps.
Beijing time January 10, 2010, go language picked Tiobe released the 2009 annual award. The award was awarded to the programming language with the largest increase in market share in 2009.
"Go gives me the experience I've never had before," said Rob Pike, Google's senior software engineer, Rob Paik. Parker says, like today's C + + or C, go is a system language. "Using it for rapid development, and it's a real compilation language, we're now opening it up because we think it's very useful and powerful," he explains.
In 2007, Google began research and development of go as a 20% project, which allowed employees to devote 20% of their jobs to the project. In addition to Parker, members of the project are other Google engineers.
Parker says that after compiling the go code, the run speed is very close to the C language, and the compilation speed is very fast, as if using an interactive language.
None of the existing programming languages have been specifically optimized for multicore processors. Parker says go is a language that Google engineers write for such programs. It's not designed for beginners, but learning to use it is not very difficult. Go supports object-oriented, with features such as true encapsulation (closures) and reflection (reflection).
In terms of learning curve, Parker thinks go is similar to Java, and it should be easy for Java developers to learn go.
The reason to publish go as an open source project is to give the open source community the opportunity to create better tools to use the language, such as plugins in the Eclipse IDE. There is currently no IDE to support go.
Go is not used in all of the web apps that Google has publicly released, but Google has developed several internal projects using the language.
Parker says that whether go will have an impact on Google's upcoming Chrome OS is too early early, but go does work with native Client. "Go lets apps run perfectly in the browser," he says. For example, you can use go to more efficiently implement wave, whether in the front-end or in the background.
Go also has two compilers, one based on GCC, and one for 64-bit x86 and 32-bit x86 computers (6g and 8g). Google is currently developing its support for ARM chips and Android devices. Parker said, " The problem with Android phones is that we never have a digital coprocessor. "
[edit this paragraph]
Go team members:
thompson,1983 (Turing Award) and winner of the 1998 National Technology Awards (Nationally Medal of Technology). He and Dennis Ritchie are the creators of UNIX. Thompson also invented the B programming language, which later derived from the C language.
Pike, formerly a UNIX team at Bell Labs, and a member of the Plan 9 operating system program. He has worked with Thompson for many years and has been creating a widely used UTF-8 character encoding.
Robert Griesemer, who helped make Java's hotspot compiler, and the Chrome browser's JavaScript engine V8.
There are also Plan 9 developer Russ Cox, and Ian Taylor, who has improved the Kaiyuan code compiler, GCC, which is now widely used.
[edit this paragraph]
What can go do?
Google has great expectations for go. Its design is to let the software fully play multi-core processor synchronous multi-work advantages, and can solve a number of object-oriented programming trouble. It has modern programming language features, such as garbage collection, to help programmers handle trivial but important memory management issues. Go is also very fast, almost as fast as C or C + + programs, and can be quickly produced.
Go's website is built with go, but Google has bigger ambitions. The software is designed for building server software (such as Google's Gmail). Google believes that go can also be applied to other areas, including executing software within the browser, instead of the current JavaScript role.
"It's at least a level higher in intensity than JavaScript," says Pike. Google has built its own Chrome browser, partly to speed up JavaScript and Web performance, and Google has fused its own technology, such as native Client and gears.
Pike said that another network-related feature of Go is that servers and user-side devices, such as PCs or mobile phones, can share work. As a result, the Go service makes it easy to adapt to different user-side processing performance. Go also solves one of the biggest challenges: multi-core processors. General computer programs are usually executed sequentially, one at a time, but multi-core processors are more suitable for multitasking. "We think we have enough support to improve the problem," Pike said.
The Go team is looking for help. One important area is to improve the runtime library that go can use. This kind of library can provide many tools and functions to speed up the process of programming. The Go Library also includes many important design elements and supplies resources to handle the same work, garbage collection and other low-level chores.
The go team also needs compiler assistance. Thompson has written some compilers for the 32-bit and 64-bit x86 processors, and ARM processors, and Taylor has written a go frontend for the GCC compiler.
Despite Google's ambitions for go, the company understands that the plan is not a complete replacement for existing technology. "I don't think we can replace anything," Pike said. We're just creating another role in this field.
[edit this paragraph]
Features of the Go language:
Simple fast security parallel fun open source support generic programming, memory management, array security, compile quickly