Google’s Dart programming language returns to the spotlight

Once upon a time, Google’s Dart programming language seemed ready to take on JavaScript as the default language of the web. Google was even going to give it equal billing with JavaScript in its Chrome browser. But by the time Dart was ready for prime time, JavaScript — and the massive ecosystem around it — was already miles ahead. About a year and a half ago, Google gave up on the idea of Dart as a direct JavaScript competitor and instead repositioned it as a compile-to-JavaScript language along the lines of TypeScript or CoffeeScript.

screenshot-2016-10-25-at-18-37-54Since then, it got rather quiet around Dart. But that’s about to change. Google is hosting a Dart developer conference in Munich this week that marks Dart’s return into the spotlight. Internally, Dart has also been a major success at Google. Both the AdWords and AdSense teams (which drive most of Google’s revenue), as well as the Google Fiber teams, now rely on it to write their consumer-facing web apps. The AdSense update is already live and the next-gen AdWords interface is currently in testing and will launch more broadly in the near future. The Google teams that use it report that it gives them a 25 to 100 percent increase in development speed. Inside of Google, Dart is also now the fastest growing programming language, and the number of lines of Dart code written by Google developers has increased by 3.5x over the course of the last year (though, to be fair, it’s probably starting from a relatively low base, so I would take that “fastest growing” moniker with a grain of salt).

Outside of Google, companies like Wrike, Workiva, Blossom and others have also been using Dart to develop their products, so there is definitely still a Dart user community outside of Google, too.

As Dart co-founder Kasper Lund admitted when I talked to him about Dart’s comeback attempt, the original idea for Dart “may have been too ambitious a start. It was very hard for us to follow that strategy [of building out a Dart runtime in the browser] and target the entire modern web,” he told me. At the same time, though, the team did experience a lot of success with its language and tools without even having the runtime in Chrome. That’s because the team had already built a Dart-to-JavaScript compiler to make sure that the code Dart developers wrote could also run outside of Chrome (even if it would’ve run faster in Chrome).

Having realized that, the team pivoted away from developing a runtime and instead focused all of its energy on the Dart-to-JavaScript compiler and the toolset around it.

Having both the Dart and JavaScript runtime in Chrome actually made it harder for the two languages to interact, Lund tells me. That’s not an issue anymore and the team was able to get rid of all the dependencies it originally built to make that happen. In return, Dart can now more easily work with third-party tools; the one the team has been especially focused on is Angular, Google’s framework for building web and mobile apps.

By default, Angular 2.0 uses Microsoft’s TypeScript as its preferred language. Unsurprisingly, for AngularDart 2.0, which is launching out of beta today, that language is Dart. At its event in Munich this week, the team is also releasing many of the AngularDart Material Design components it developed for its internal teams (think date-picker widgets, etc.) as a developer preview.

As far as the language itself, Dart is getting an optional strong mode that essentially turns Dart into a strongly typed language, as well as generic methods. Google also promises that the compiler can now compile most code to JavaScript in less than a second.

With Flutter, Google is also launching a new project into preview that allows developers to write both iOS and Android apps from a single Dart codebase. Flutter’s widgets use a functional-reactive framework — if that sounds familiar, that’s probably because the overall idea isn’t that different from Facebook’s React Native (something the team freely admits). React Native does have a significant head start, though, but for Google, the overall idea here is to be able to give developers a full Dart toolkit that addresses the majority of use cases.

Given Dart’s popularity inside of Google, Dart is obviously not going away anytime soon. And that’s really the message the company is trying to send this week. Given its history, the team will have to work hard to get outside developers on board, though.