X

Google reworks Go for 1.0 debut in early 2012

Go, a lower-level programming language that Google hopes will improve upon C, should be finished in a few months. Some changes are arriving now.

Stephen Shankland Former Principal Writer
Stephen Shankland worked at CNET from 1998 to 2024 and wrote about processors, digital photography, AI, quantum computing, computer science, materials science, supercomputers, drones, browsers, 3D printing, USB, and new computing technology in general. He has a soft spot in his heart for standards groups and I/O interfaces. His first big scoop was about radioactive cat poop.
Expertise Processors, semiconductors, web browsers, quantum computing, supercomputers, AI, 3D printing, drones, computer science, physics, programming, materials science, USB, UWB, Android, digital photography, science. Credentials
  • Shankland covered the tech industry for more than 25 years and was a science writer for five years before that. He has deep expertise in microprocessors, digital photography, computer hardware and software, internet standards, web technology, and more.
Stephen Shankland
3 min read
A vinyl version of the gopher that serves as Google's Go mascot, now on sale at Google's store.
A vinyl version of the gopher that serves as Google's Go mascot, now on sale at Google's store. Google

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.

Google also is working on Dart, a language for the Web that Google hopes will improve upon JavaScript.

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.