Google's Go Language: Yet Another Programming Language?
Added by Rick Robinson on Apr 6, 2012
Topic:
Cloud Computing
Google has released version 1.0 of its Go language, intended as a stable, portable general purpose programming language. But Go is not the only language that Google is launching into the world. It is also pushing Dart as an alternative to JavaScript.
The question is, is the world ready for another programming language? Does it need one? According to one report, neither of Google's language offerings is gaining much traction. But the larger underlying issue is how many languages the development community needs, wants, or can use. The answer is not a simple one.
As reported by Paul Krill at InfoWorld, Google officially took its Go language out of beta by releasing version 1.0, or simply Go 1. An open source download, this is the first release of the language to support binary distributions. These are available for Linux, FreeBSD, Mac OS X, and Windows, and the language is designed to integrate with App Engine, Google's cloud platform.
Go is positioned as a general-purpose programming language, suited to either systems programming or application development. Features include concurrency and garbage collection, and the language is intended to be easy to work in. Says team member Andrew Gerrand, posting on the Go blog, "The driving motivation for Go 1 is stability for users."
But reporter Krill has previously noted at JavaWorld that neither of the new Google languages, Go and (JavaScript alternative) Dart, are winning much support among programmers. The Tiobe Programming Community Index shows Dart slowly gaining ground, but ranked only 78th. Meanwhile Go, which had broken into the top 50, lost ground.
A Language for Every Purpose?
As points of comparison, Java ranks first in the Tiobe index, while good old plain vanilla C ranks second. And for IT managers, the fate of a particular vendor's languages matters less than the question of how many languages are needed and which ones they should use.
Since the conceptual maturation of programming, which perhaps corresponds to release the original Kernighan and Ritchie C, two contrary forces have acted to shape the landscape--generalization and specialization.
On one hand, we would like to make all tasks (and especially new tasks) reasonably simple and consistent. On the other hand, we have particular tasks that we must perform frequently and on particular architectures.
No one now expects one language to rule them all. And the competition among languages will be driven not just by their abstract merits but by the "installed base" of users and toolkits and a host of other local factors. Which is one more reason why--inconveniently for managers--programming remains so much a craft trade.
This post was written as part of the IBM for Midsize Business program, which provides midsize businesses with the tools, expertise and solutions they need to become engines of a smarter planet.
