Google’s Dart programming language returns to the spotlight
Image Credits: timlewisnm
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.
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.