Google Dart hits a bull's-eye for Web developers

Google's new client-side Web language melds the best of JavaScript with familiar structured programming techniques

When we first heard rumors of Dart, the new client-side Web programming language from Google, it was described as a "JavaScript killer," aimed at replacing a language seen as "fundamentally flawed." Those early reports spurred various reactions from the Web development community, ranging from unabashed excitement to bemused skepticism to worry that Google was trying to usurp the open JavaScript standard in true Microsoft fashion.

Google officially unveiled Dart this week, during a keynote address at the annual GoTo conference in Aarhus, Denmark. Thankfully, it seems to live up to much (though not all) of the hype, while falling far short of the worst fears. In fact, based on the documentation and tools released so far, Dart may be exactly what many client-side Web developers have been waiting for.

[ Get software development news and insights from InfoWorld's Developer World newsletter. | Sharpen your Java skills with the JavaWorld Enterprise Java newsletter. ]

Yet another Google language?
Some will doubtless say we've been here, done that. Not long ago, Google debuted a new language called Go, which was widely hailed as a "Java killer." But aside from a few presentations at Google's developer conference, we haven't heard much about Go since it was first unveiled. Is Dart likely to fare any better?

Maybe. It's important to realize that Go and Dart are parallel efforts, each with different goals. Go is a classic compiled language that outputs binaries as processor-native machine code. In that sense, it's closer to C and C++ than to Java or dynamic languages such as JavaScript. Go is intended as a general-purpose and systems programming language with some modern features, such as garbage collection and baked-in support for parallelism.

Dart, on the other hand, is a VM-based language that seems to have much more in common with JavaScript than the initial reports would have us believe. One revelation from this week's announcement was that Dart is intended to run not only in the browser but also on servers via a stand-alone VM, much like how Node.js enables JavaScript on servers. Still, most Dart code will probably be client-side, and for the time being, the way to run it is to compile it into JavaScript code that can be executed by modern Web browsers (including Chrome, Firefox, and Safari for now, with more to come).

So what's the point? If Dart applications end up being executed as JavaScript code anyway, why not just code in JavaScript and cut out the middleman?

The answer lies in Google's description of Dart as "a language for structured Web programming." If you think about it, we've never had that before. Sure, there are plenty of server-side languages that allow you to build Web applications, but on the client we're limited to JavaScript (or Flash with ActionScript, which is essentially the same thing). JavaScript began as a means of adding simple interactivity to Web pages and has mostly grown organically over the years. It was never designed for building modern, large-scale Web applications such as Google Docs. Dart aims to address some of JavaScript's more troubling aspects in a way that preserves those aspects that have made it a success.

1 2 Page
Recommended
Join the discussion
Be the first to comment on this article. Our Commenting Policies