If you want to have a say in the design of Go, Google's lower-level programming language, you'd better act fast.
That's because Google plans to finalize the language in coming months and bake it into its Google App Engine service. The company released Go along with programming tools and other open-source assets almost exactly two years ago.
"The plan is to launch Go 1 in early 2012. We hope to bring the Go App Engine runtime out of 'experimental' status at the same time," said Andrew Gerrand, Google's Go developer advocate, in a blog post last week.
It's very hard to get new languages to catch on. Programmers must learn the new language, develop tools to ease the languages' use, and build libraries of supporting code that can be dropped into projects. Even comparatively ancient languages such as Cobol and Fortran remain in significant use decades after their introduction.
A successful language, though, can help programmers work faster and use hardware better--and of course establish bragging rights for the language's inventor.
Go is designed to modernize the sort of low-level programming that's typically done today with C or C++. Google hopes it'll be better when it comes to tapping into the power of multicore processors and, through the use of "garbage collection" popularized by Java, will scrub a computer's memory to free up resources that a program no longer needs.
When Google launched Go, it asked for outside suggestions and help. It got them, and discussion continues on the very active Go mailing list.
Moving from experimental to final is an important, irreversible phase. Once it's done, programmers can assume it's safe to use in the real world. "Code that compiles in Go version 1 should, with few exceptions, continue to compile throughout the lifetime of that version," Google said in an earlier blog post.
That means that now, not later, is the time to make some changes. In an October document, Google warned about a collection of Go changes that it planned to adopt before the release of Go 1.0.
"If Go 1 is to be long-lasting, it is important that we plan, announce, implement, and test these changes as part of the preparation of Go 1, rather than delay them until after it is released and thereby introduce divergence that contradicts our goals," the document stated. Google welecomed feedback, but it's clear who's the boss: "We are explicitly resisting any efforts to design new language features 'by committee,'" Google said.
When it comes to getting languages to catch on, Google has some advantages over some other efforts. It can give new languages a big head start by using them in its own colossal infrastructure and, in the case of Dart, building them into its browser as well. It's also got its App Engine service for cloud computing, which has Python and Java support today but will get Go support in 2012. That could help programmers employ Go for larger-scale projects.
In other news, Google is now selling a plastic version of the gopher that serves as the Go mascot.