Dart board

Performance, Productivity, or Flexibility? Pick Two With Dart

Editor's note: This post was originally published in February 2013 and has been updated with new information. 

Last winter, I attended a lecture at CodeMash that discussed Dart by Google, a relatively new, open source web programming language designed for modern desktop and mobile browsers. 

Google created Dart as a language that could replace Javascript with something more structured and object-oriented, similar in spirit to other tools such as Closure or CoffeeScript.

Because it is the standard for client side web development, platform advances usually work to support Javascript, not move away from it. Not that the language is all bad, but large programs written in Javascript can easily become difficult to maintain.

During the presentation, the speaker cautioned that Dart needs “modern browsers” to be effective. Essentially, if your browser doesn’t support HTML5 (IE9+ or recent versions of Firefox/Chrome) it probably won’t work. This is almost certainly a deterrent for many organizations that might want to try Dart.

That said, it certainly seems like an interesting technology if you can dictate which browsers will be used (e.g., for an intranet application) or for future use when HTML5 support is a given.

Essentially, Dart takes everything the Java/C# developer now expects for developing server side code—a nice IDE, classes, libraries, projects for managing source files, familiar syntax—and lets you use that to build client side apps.

These can then be compiled into Javascript, or run natively on the browser in the Dart VM (largely theoretical at this point as no production browser actually has a Dart VM).

Some highlights that I gathered included that the language:

  1. Is very similar in syntax to Java or C#; it’s easy to understand and pick up.
  2. Can be either statically or dynamically typed, or both at the same time. Types are optional.
  3. Has its own IDE (basically a stripped down customized version of eclipse) with all kinds of nice things you would expect in visual studio, but could only dream about in Javascript
  4. Has built in templating support for creating more semantic HTML with data binding—similar to MVVM and XAML in WPF. This looked very cool.


Over the last year, Dart has continued to evolve, hitting version 1.0 last year and on to version 1.2 in February. While the language itself is getting faster and better with each release (Google touts that both the virtual machine and the dart2js generated JavaScript are now faster than typical handwritten JavaScript), public adoption of the language has been slow going. 

Without support for the Dart VM in major browsers, Dart is left competing in the same space as many other “something-else-to-JavaScript” languages (such as CoffeeScript). And honestly, the chances of the major browser vendors adopting the Dart VM are slim to none.

 As Brendon Eich, the creator of JavaScript stated, "I guarantee you that Apple and Microsoft (and Opera and Mozilla, but the first two are enough) will never embed the Dart VM."

While Dart is certainly interesting, it does not seem that Chrome will take over the browser world anytime soon, and with the fact that platforms are trying to accommodate the intricacies of Javascript, a shift to Dart is not necessarily a benefit at this time.

photo credit: Richard_of_England via photopin cc 


Continue Exploring




Our Work Services Commerce Cloud Approach Culture Blog Careers Contact

Grand Rapids:
3344 Grand Ridge Drive NE
Grand Rapids, MI 49525
616 365 1000
Ann Arbor:
8186 Jackson Rd
Ann Arbor, MI 48103
616 365 1000