Google’s Dart Programming Language Is Coming To The Server

A few days ago at its I/O developer conference, Google quietly announced that it is working on bringing its Dart programming language to App Engine soon.

This implementation will use the company’s recently launched managed virtual machines and the service’s custom runtime support. Because custom runtime support is still in private beta, however, the Dart team isn’t able to release this to the public just yet, but Google provided a sneak peek to Dart developers at I/O of what this would look like.

Most developers look at Dart as a JavaScript competitor. In many ways, that’s fair, given that it is clearly geared toward similar use cases and that Google offers a version of its Chrome browser with the Dart virtual machine built-in. Google also offers a Dart-to-JavaScript compiler and plenty of tools for web developers. The ambition behind Dart is much bigger, though, so it maybe shouldn’t have been a surprise that the team is bringing its runtime to App Engine and other servers, as well.

I was able to sit down with Lars Bak and Kasper Lund, the two Danes who together invented Dart (Bak also developed Google’s V8 JavaScript engine), to chat about the news and the state of Dart — and its future — in general.

They noted that the original idea behind Dart was always to create a general purpose programming language. When they started the project, they didn’t just want to create some variant of JavaScript. The idea was to create a dynamically typed language that developers could pick up pretty easily and that would increase developer productivity.

Because of this, the team always focused not just on making the language accessible, but also on the other tools that developer need to be productive in a language. These include the Dart Editor, the main IDE for Dart and a large number libraries that extend the language. In addition, the team also recently launched a developer version of the Chrome browser for Android that has built-in Dart support. Lund also noted that the Dart Editor comes with a number of tools that help developers monitor their programs during runtime. At I/O, the team also showed how Dart can play nicely with Google’s Polymer web components project and its new Material Design user interface language.

At I/O, Google announced that developers can now also deploy Dart on its Compute Engine infrastructure using Docker, but by also soon supporting it on App Engine, developers get easier access to Google’s Data Store, cloud monitoring services and caching services.

The other thing Dart developers have long been asking for is built-in Dart support in Chrome. When I asked Bak about this, he gave me a knowing smile and said that the team would have more to announce about this soon. Built-in support in Chrome would obviously give Dart a major boost. While the Dart-to-JavaScript compiler works very well, the Dart VM can execute the code significantly faster. It would also give developers a bigger incentive to pick up Dart, given that Google isn’t likely to remove Dart support from its browser once it has included it.

Looking ahead, Bak told me that the team is also looking at how it can bring asynchronous code to Dart through concepts similar to JavaScript’s asyn/await.

Since the team launched Dart 1.0, it has also worked on creating an Ecma standard for Dart (just like JavaScript is based on the EcmaScript standard). As Bak argued, no good programming language has ever been created by committee, so it was important for Google to get Dart to the 1.0 milestone before it started this process. Now, however, it wants to involve other industry players, too, and the team hopes that other browser will integrate it.

Being able to write both the front-end and back-end code in the same language is something the Dart team believes will make for more stable code and will make it easier for developer teams to work together.