This month we got a look at Dart, a new web programming language, from two Google engineers. Seth Ladd is a web engineer, father, husband and is currently a Developer Advocate at Google. He produced Aloha on Rails, the Hawaii Ruby on Rails and Web Development Conference and New Game, the conference for HTML5 game developers. Way back, he wrote Expert Spring MVC book. Seth was lucky enough to help release Angry Birds for the web. He is current on the board for the Academy of Interactive Arts and Sciences. Steve Messick works on the Dart Editor at Google.
Think of Dart as web programming with "batteries included." It's a new language, with new libraries, even its own VM, but it's based on a simple and familiar OOP model that takes almost no time to learn. It's in an early stage, open source technology preview so you can still provide feedback and affect the direction as it develops.
Dart is a simple, unsurprising OO language with typical classes, single inheritance, and interfaces -- everything you've seen before. The most unique feature is its optional typing. Developers can check types at compile time or runtime through an assertion-like method. It also has optional static typing, lexical scoping, and is single-threaded.
Wait, single threaded? Not to worry, it uses isolates similar to Erlang. Each isolate is conceptually a process and they can communicate through a mailbox system. With isolates, you can support concurrent execution with a single-threaded language. In the browser, UI elements are lightweight isolates and heavyweight isolates manifest themselves as HTML5 web workers.
There is a much-needed DOM overhaul loosely based on HTML5 DOM, but with lots of cleanup. Gone is the XML legacy. It supports type-checking and is built using Dart lists, which makes it terse.
|Seth Ladd and Steve Messick|
The Dart Web site (www.dartlang.org) contains the language spec, tutorials, and prebuilt binaries.
The Dart Project site (dart.googlecode.com) is where you can get source code, libraries, and sample apps.
You can watch the talk here
Update: Seth Ladd has provided the slides at http://www.dartlang.org/