Is Google's Go language worth teaching or learning?

Whether they are teaching the languages themselves or are using the languages to teach CS concepts, many secondary and post-secondary schools teach everything from Java to C to Python to Perl to Ruby. Does Go add anything to the mix that our students can use if they don't plan to develop apps for the Google App Store?

I can't deny that I'm a fan of basically all things Google. Apps, Gmail, search, you name it...it's good stuff, especially in education where the benefits of their free services are manifold. Now, however, they've invented a new programming language called Go and I have to wonder if it makes sense to teach our students this language, even as an implementation language for algorithms or various computer science courses. Don't we have a wide variety of useful (and user-friendly) higher-order languages already?

Whether they are teaching the languages themselves or are using the languages to teach CS concepts, many secondary and post-secondary schools teach everything from Java to C to Python to Perl to Ruby. Does Go add anything to the mix that our students can use if they don't plan to develop apps for the Google App Store?

As it turns out, it does. According to The Register, although still very much experimental, the language provides a lot of flexibility, as well as speed in the areas of development.

"Want to write a server with thousands of communicating threads? Want to spend less time reading blogs while waiting for builds? Feel like whipping up a prototype of your latest idea? Go is the way to go!"

The language is also optimized for multicore processors, with many features automatically taking advantage of multithreading.

And thus, it becomes a great classroom tool for teaching programming concepts. Not only can programs be developed intuitively, easily, and quickly, but they can be used to address a real deficiency in many computer science programs (especially at the introductory level). Because of the explosion in tasks that can benefit from multiprocessing, an easy to use and learn language is a real advantage and a great starting point in education.

There are some big names behind the development, as well, adding a bit more credibility than even Google can offer if we actually want to teach using this language. According to eWeek,

The project's developers include Unix founding father Ken Thompson and fellow Bell Labs Unix developer Rob Pike with Robert Griesemer, known for his work on the Java HotSpot compiler.

The language is still experimental; talk back if you have ideas for how to run a class using Go.