Smartphones optimize

Google's Dart: An object-oriented JavaScript alternative

Todd Fluhr looks at Google's web-programming language Dart, which even at its unfinished stage, says a lot about Google's plans to dominate the mobile consumer market.

Dart is Google's much-anticipated web programming language to solve current JavaScript limitations and problems. Dart promises easier development for cross-platform applications for the web as well as Androids and other mobile platforms. Google has set its sights on the future of web browsers and applications. But will it deliver more than just another new coding language to an already fragmented market?

Dart goals and features overview

  • Create a structured yet flexible language for Web programming.
  • Make Dart feel familiar and natural to programmers and thus easy to learn.
  • Ensure that Dart delivers high performance on all modern Web browsers and environments ranging from small handheld devices to server-side execution.
  • Object oriented programming language for the web
  • Class-based single inheritance with interfaces
  • Optional static types
  • Real lexical scoping
  • Single-threaded
  • Familiar syntax

Google is quick to point out that they don't intend to replace JavaScript but it's clear they hope to at least displace it as a "more modern alternative."

Notice the emphasis on "modern". Dart (as it is now) is not compatible with older browsers (I.E. 6, etc). Dart isn't concerned with older browsers and backwards-compatibility, but instead is aiming to target such platforms as the Android OS Ice Cream Sandwich and Samsung's newest devices. Google promises future Dart features such as Brightly, a cloud-based IDE, a cross compiler that compiles Dart for compatibility with non-Dart browsers, and a native Virtual Machine that will integrate with Chrome. Of course these things are for the future once the current version of Dart is stabilized, debugged, and expanded

There's an old joke about beta release software that one should wait for Version 2.0 rather than be a bug-tester. It doesn't help that stability, essential features, and amazing functions aren't currently delivered but only promised for some future version. Dart (in its current form) appears more like an open-source beta release begging for crowd-sourced development than the rock-solid development tool depicted in its promotion. As is, the current version of Dart is not done. It's incomplete but promises future greatness.

Converge and conquer

This all begs the question of whether one should embrace Dart or dismiss it as just another coding language with ambitions of grandeur.

To answer this question one must ask what target Google really hopes to hit with its Dart. What would prompt developers to learn a new but incomplete coding language that's not backwards compatible? Is Google crazy or what? As Hamlet said, "I am but mad north-northwest: when the wind is southerly I know a hawk from a handsaw." The answer, my friend, is blowing in the wind.

The answer is as simple as which way the economic wind is blowing. Dart is Google's attempt to position itself for market control of the emerging convergence of web, tablet, and mobile devices. By creating a "unified" coding language aimed squarely at mobile platforms, Google is revealing  a long-term strategy to dominate the mobile consumer market.

This is Google's target and Dart is but a part of a cross-platform attack. Consider that some Google products such as Chromebooks rely entirely on web applications. Also consider that one of Dart's targets, the Android OS Ice Cream Sandwich, is set to unify phone and tablet operating systems. Ice Cream Sandwich is Google's first volley at making a unified mobile OS for smartphones and tablets, and Dart the hoped-for Rosetta Stone of all future iOS applications and browsers. The convergence of these markets seems to demand such a coding- lingua franca. Google intends that language to be theirs.

But why should developers embrace Dart? Obviously Google has big plans for the future of Dart as the primary development tool for web and mobile platforms. Developers who ignore the marketing powers aligning behind Dart are advised to do so only at their own risk.

Currently Dart is available as an open-source product. Google hopes to promote and propagate the development of Dart as widely as possible. This isn't to create a coding language better than sliced bread, but to lay the groundwork where all future bread is buttered by Google apps on iOS and other closed platforms.

But of course, as Google's marketing insists, Dart is meant as an altruistic solution to overcome the flaws and limitations of traditional JavaScript. Whether Dart will succeed in delivering that solution isn't just a question of developer's embracing the new language on its own merits, but also how Google's long-term strategy and marketing goals will affect the demand for new applications compiled with Dart.

While the limitations of JavaScript have grown more apparent and troubling with the evolution of new web browser capabilities, whether Dart will replace it is a question more likely to be answered by economic factors rather than technological.

Web Developers will find much to admire in the anticipated functionality of Dart. It is designed to assist with both small projects and large complicated projects. Google's open-source community page provides code samples, extensive tutorials, resource libraries, language specifications, and a community forum. Google intends to do everything in its power to make Dart a standard coding language even if the partners and market for it aren't yet in place. But Google believes they will be.

A few things are certain about Dart. Its features and language will change with future releases. There will be new functions, new behavior modifications, and new add-ons. It currently will run on Androids but it's not backwards compatible with older browsers. The most important thing is that Dart isn't finished. Not by a long shot, if Google has anything to say about it.

About

Todd Fluhr is a freelance writer and multimedia designer. A self-described "Shockwave Rider" of technology, culture, and creativity, he has been involved in the interactive entertainment industry since the early 90's. He hopes to find time to sleep ...

6 comments
belli_bettens
belli_bettens

For me, what's really missing at the moment is some kind of library for UI design (something like jQuery UI). I was really eager to jump on the bandwagon and to start converting some of the javascript apps I already developed. But since there is no way to make Dart interact with javascript (or vice versa), I would be forced to build a complete UI library from scratch. Not really something I want to spend my time on. At the moment: not useful at all...

santeewelding
santeewelding

Righteous piece of writing, Todd; smartly done. My compliments.

toddfluhr
toddfluhr

Thank you. If it ultimately performs as promised, yeah, it will be great. But is it worth investing your time in now in this beta-development stage? The thing that kept hitting me about dart is how fast it's being pushed, and how unfinished it is. Add to that Google's insistence that it's an amazing fix (read replacement) for doing things in javascript, and its target platforms, and I think it's obvious what the real goal is. Whether Google will succeed in pushing Dart via marketing will (in my humble opinion) determine whether programmers will want to take the time to add it to their coding-languages.

toddfluhr
toddfluhr

... just ask my ex-wives, :) My repetitiveness may be one of the reasons they are now ex's, and the fact there are two.