Software11.11.2009

Google Go: Experimental open source programming language

Google has released their new experimental open source programming language dubbed Go. According to a post by the Go Team on Google’s Open Source Blog, Google believes that “programming should be fast, productive, and most importantly, fun.”

“Go combines the development speed of working in a dynamic language like Python with the performance and safety of a compiled language like C or C++. Typical builds feel instantaneous; even large binaries compile in just a few seconds. And the compiled code runs close to the speed of C. Go lets you move fast.”

“Go is a great language for systems programming with support for multi-processing, a fresh and lightweight take on object-oriented design, plus some cool features like true closures and reflection,” the Go Team concluded.

The problems

Since no major system language has appeared for over a decade, the purpose of the project is to address several trends the Google Go Team has identified:

“Computers are enormously quicker but software development is not faster.”

“Dependency management is a big part of software development today but the “header files” of languages in the C tradition are antithetical to clean dependency analysis—and fast compilation.

“There is a growing rebellion against cumbersome type systems like those of Java and C++, pushing people towards dynamically typed languages such as Python and JavaScript.”

“Some fundamental concepts such as garbage collection and parallel computation are not well supported by popular systems languages.”

“The emergence of multi-core computers has generated worry and confusion.”

The Solutions

To address these problems, the Go Team believes their experimental software will pave the way:

“It is possible to compile a large Go program in a few seconds on a single computer.”

“Go provides a model for software construction that makes dependency analysis easy and avoids much of the overhead of C-style include files and libraries.”

“Go’s type system has no hierarchy, so no time is spent defining the relationships between types. Also, although Go has static types the language attempts to make types feel lighter weight than in typical OO languages.”

“Go is fully garbage-collected and provides fundamental support for concurrent execution and communication.”

“By its design, Go proposes an approach for the construction of system software on multi-core machines.”

To check out the programming language one can visit the official site – http://golang.org/

Google Go discussion

Show comments

Latest news

More news

Trending news

Poll

If you were buying a TV for your living room, which brand would you choose?

View Results

Loading ... Loading ...
Sign up to the MyBroadband newsletter