Google Go captures developers' imaginations

SUBSCRIBE
Newsletter & Subscriptions Computerworld is New Zealand's only specialised information systems fortnightly.
Subscribe now for $100 (23 issues) and save more than 37% off the cover price!
SIGN UP
Newsletter & Subscriptions
Get the latest news from Computerworld delivered via email.
Sign up now
The programming language aims to combine the speed of Python with the robustness of C++

Less than four months after its unveiling at an early, experimental stage, Google Go looks promising to developers who say it offers significant improvements over other programming languages.

While Go is still a work in progress, some developers are so encouraged by its features and design that they have started using it to build noncritical applications. They have also praised the Google Go team for improving the language quickly and consistently, while communicating regularly with developers who offer feedback about the project.

Much work remains to be done, and developers interviewed all cautioned against using Go to build applications for critical business functions because it changes quickly and often, and certain key areas are far from mature.

Still, expectations and enthusiasm are running high and Google may be on track to fulfilling its main goal: to reduce the complexity of coding without compromising application performance, by offering the development speed of dynamic languages like Python with the robustnes of compiled languages like C++.

"It's certainly promising. I've learned more and more every day to appreciate certain things about the Go language and the style of programming you do with it," said Roger Voss, software development manager at Seattle-based Tideworks Technology, a subsidiary of marine terminal operator Carrix.

Developers seem enthused about Go's concurrent programming model, which lets it handle multiprocessor work particularly well. This is the feature that most appeals to Voss, who has built distributed enterprise software systems for Tideworks for the past decade.

Go is designed with internal messaging capabilities, intended to simplify the creation of applications running on different nodes, and improve their performance.

"It's a way to try to address how to write concurrent software that's more robust, as opposed to using the old threading model of Java and others," Voss said.

He recently used Go to write an email list server application for his development teams. "I've been able to develop my particular software project without much difficulty," he said.

The concurrency model is also what attracted retired programmer John Gordon, who started a help website about Go.

Gordon, who focused on developing enterprise applications during his 40-year career, said the concurrency capabilities help to set Go apart. "The idea is to allow easy multithreaded, multiprocessor programming. All the other popular languages make this very hard at best," said Gordon, who is based in Thailand, via email.

In this regard, Go offers "a new programming paradigm" that makes it easier to solve a wide variety of programming problems by simplifying many types of parallel processing.

"Many applications do not take advantage of the multiple core [systems] because writing dependable, multi-threaded programs is very difficult," he said. "Go attempts to solve this by making a language that does much of the work of creating, coordinating and communicating between threads and processes for you."

Peter Bourgon, an independent software developer in Johannesburg, wrote "trivial" programs in Go after it was announced, but started on a large-scale application in January.

Pages :
1
Comments
Google Go Mr. Perez has provided a good summary of the state of Go. I am one of the sources quoted (accurately). If anyone would like to see the full text of the interview, it can be found at http://gohelp.wordpress.com/in-the-news/.

John
Posted by John Gordon at 22:27:48 on March 1, 2010

Flag abuse

computerworld
Computerworld NZ has now reached LinkedIn! Join to expand your networks and meet others interested in information systems.