Recently Google announced an experimental new computer programming language called “Go”. It combines the speed of dynamic languages as Python with the performance and safety of standard but fast compiled languages like C or C++. The Big G said that Go is still in the experimental and they’re still working on it.It’s time for a new language because of the tremendous changes in the computing landscape over the past decade for one thing, computers have sped up greatly, while the speed of software development hasn’t changed.
Also, dependency management is a big part of software development today, but the header files used in C-type languages don’t make for clean dependency analysis or fast compilation.
Further, popular systems languages do not offer good support of concepts such as garbage collection and parallel computation, according to Google. Garbage collection is a form of automatic memory management in which a program called a “garbage collector” tries to reclaim memory occupied by objects that are not being used by an application.
Java, C# and most scripting languages require garbage collection as part of the language specification, while C and C++ were designed for use with manual memory management but have garbage collection implementations available. However, automatic garbage collection can lead to a performance slowdown for various reasons and may make performance tuning difficult.
Go is a lower-level language that is trying to bring some of the advantages of dynamic languages, such as flexible typing and pointer safety, to a hard-core compiled language like C++ with its higher levels of optimization and performance, Hilwa said.
Go has been designed to be easy to analyze and can be parsed without a symbol table. This makes it easier to build tools such as debuggers, dependency analyzers and automated documentation extractors in Go. “C and its descendants are notoriously difficult in this regard,” Google said.
Programmers may have to learn a whole new set of rules when they use Go. Its GC compiler implementation can be linked with C programs, provided programmers use Go’s calling convention and linker, which are different from those of standard C.
For now, Go is merely an experiment, Google said. “We hope adventurous users will give it a try and see if they enjoy it. Not every programmer will, but we hope enough will find satisfaction in the approach it offers to justify further development.”
Developers will need lots of play time with Go — while the Go project was conceived to make it easier to write the kind of servers and other software Google uses internally, the implementation isn’t quite mature enough yet for large-scale production use. Google’s Go team is working on the language.
Go still faces an uphill battle. “It is hard to imagine that this is going to be the next big thing in programming,” IDC’s Hilwa said. “It’s likely Go will become one more thing in the ever-diversifying landscape of programming languages.”
Popularity: 27% [?]