How serious is Google about Dart?

Developing applications in JavaScript is not overly productive. You can use CoffeeScript or TypeScript to write code that will be converted into JavaScript for deployment. We are also closely watching the progress with Google’s new programming language called Dart.

It’s a compiled language with an elegant and terse syntax, which is easy to understand to anyone who knows Java or C#. Although compiled version of the Dart code requires Dartium VM, which is currently available only in the Chromium browser, Google created dart2js compiler that turns your application code into JavaScript in seconds, so it can run in all Web browsers today. Google also offers Dart Editor – an IDE with debugger and autocomplete. You can event debug the Dart code in Dart Editor while running generated JavaScript in the browser.

Dart’s VM can communicate with JavaScript’s VM, so if you have a portion of your application written in JavaScript, it can peacefully coexist with the Dart code. You can literally have two buttons on the Web page: one written in JavaScript and the other in Dart.

W3C published a document called “Introduction to Web Components”, which among other things defines recommendations on how to create custom HTML components. Existing implementation of Web UI package includes a number of UI components and defining a new custom HTML element can be done in a declarative way. The following code sample I borrowed from the Dart Web site:


This code extends the Web UI element `div` and includes a template, which uses binding – the value of the variable count is bound to HTML span, so as soon as counter’s value increases, the Web page immediately reflects its new value. I remember those powerful curly braces from programming with Flex framework. The Web UI package will be replaced soon with the Polymer Stack built on top of Web components. In 2014, the popularity of Dart should increase if Google will remain committed to this project. Will it?

Yesterday, we had a meeting at Farata Systems discussing the possibility of developing new functionality to our insurance stack in Dart. During the meeting one person said that about 15% of our users are still working with older browsers and we don’t want to lose them if Dart-generated JavaScript won’t work in Internet Explorer 7 or 8. I immediately answered that this wouldn’t be an issue, because several years ago Google created a smart way to automatically download Chrome’s JavaScript VM if the application runs inside IE. The name of this smart solution is Google Frame.

The meeting went on, and I decided to see what’s happening with this really useful plugin for IE. A quick googling for Google Frame revealed the page that started with a message “We’re winding down Chrome Frame, and plan to cease support and updates in January 2014”. WAT? Google did it again. Remember Google Reader? Forget it. Millions of people were using it and now it’s discontinued. “All subscription data will be permanently, and irrevocably deleted”. Google became bored with this toy too.

Unless Google will seriously reconsider their policies of decommissioning software, Dart won’t fly in the enterprise world. I hope Google will provide some iron clad guarantees that their Dart project will be around for the next 5 years. If this will happen, I’m all for it, and will prepare a new proposal to O’Reilly Media for a book titled “Enterprise Web Development with Dart”, where Farata’s engineers will share their experience in developing enterprise-grade applications with this promising language.

14 thoughts on “How serious is Google about Dart?

  1. Dart supports older browsers, as it’s just JavaScript.

    WebUI went as far back as IE8, I think.

    Polymer, the JS project, supports only IE10 and modern browsers.

    Polymer.dart that was recently released? No idea😉

    Try the TodoMVC projects for each in different browsers maybe.

    Dart is going to have breaking changes at least until later this year or 2014. And libraries may continue with breaking changes past that — Dartlang isn’t Golang, and that might be a good thing.

    I recommend following Seth Ladd and the Dartlang community on Google+ or Dart Weekly which gathers material from there and elsewhere.

    Google is serious about its programming languages and they’re open about them, they’re not experiments, they’re not for compatibility like ChromeFrame, they’re used internally at Google. And if Dart is too immature for you, try Closure, which feels like Google’s version of Microsoft’s TypeScript sometimes.

    1. It’s not better or worse, it’s different. See this post for why Dart isn’t Java:

      GWT has a built-in binding mechanism, and a widget system. Dart relies on the Web Components and MDV family of features for the same kinds of features. Web Components and MDV are on a standards track, and are being implemented in browsers.

      GWT is quite mature, Dart is still pre-1.0.

      Dart is designed to work inside a browser, and also compiles to JavaScript. GWT is only designed to compile to JavaScript.

  2. GWT is not abandoned, it moved to a steering committee. GWT evolved to a community run project, outside of Google. This is a good thing. And plenty of projects inside of Google use GWT.

    Chrome Frame accomplished its mission, helping to usher out legacy browsers. Also, Google Chrome can install without admin privileges, thus providing an option for users that need to have an old browser and a new browser.

    Dart is being used for internal-to-Google high priority projects. Dart can’t simply go away now. Look at the talent on the team, the scope of the project (VM, editor, dart2js, libraries, language, pub, testing, etc), the fact that we’re working on the Oilpan project inside of Blink to better enable the VM to get inside of Chrome, and the fact that Dart is part of the Chrome project. These are all signs of commitment.

    In fact, in my Google I/O 2013 talk (What’s new in Dart) I stated at the end that Google is committed to Dart.

    Hope that helps!

    [disclaimer: I work on the Dart team.]

    1. I’m working on a project for a super large Wall Street firm. They are on IE8. Upgrading a browser is a huge project for them due to the large number of applications that would need to go through regression tests. To put it simple, such an upgrade is expensive.

      Our company also creates software for automating work of insurance agents. We already have more than 100,000 users, and this number keeps growing. Our main product runs inside the Flash Player so the number of support calls caused by the wrong version of this VM is manageable. Our new products are going to target consumers and will be HTML5-based. That’s why we really hope that Google will be able to pull it off. There is no way we can request the users to get rid of older browsers. We may simply loose them. I’d prefer Google to keep this Frame project for another five years or so.

      I have no doubts that Google has the largest concentration of the best IT talent per project than any other firm, but I’m not sure if there is a culture to respect enterprise customers who continue running outdated software.

      Seth, last week I’ve enjoyed your session on Dart at Google in Manhattan’s office!

      1. I understand some firms are stuck in the past, and having worked for firms of that type before, I’ve seen it first hand.

        Dart is playing the long game here. We are looking 5 years out, when IE8 won’t matter and most consumers will be on a mobile device without a Flash VM. We are building for the future world that all trends are pointing to.

        For consumers, hopefully asking to install Chrome as non-admin is about the same trouble as asking to install Chrome Frame as non-admin. As consumers organically move to mobile, this becomes less and less of an issue in the future.

    2. Seth,

      Readers of Yakovs blog have been burned before, hence higher level of pessimism here. In fact, Adobe announced they are using AIR for all new products/cloud services a year before they abandoned the platform.
      What Dart needs in this [Yakov’s blog readers] circle is few high profile projects and vibrant group of evangelist providing integration samples with source code to generate interest. You really need to lure enterprise developers, and not necessarily web designers into the new application platform. Given the current landscape (typeScript for Microsoft shops, PHP for Web Designers) your low hanging fruit would be Dart/Java/Android/Chromium tooling.
      Samples, forums and books on cross integrating these technologies are going to accelerate interest and adoption of Dart in enterprise. You really want to leave outer layers of Web (SEO, site navigation and deep linking, content management, etc) to Web developers as is till Dart gets comparable tooling and enough of developers to spare.

      Anatole Tartakovsky
      [disclaimer: I have been working with Yakov too long]

      PS: and of course thank you for all the work on Dart, its really is going to be a life saver if stays around long enough.

  3. randomlouis: The dart2js compiler generates JavaScript conforming to ECMAScript version 5. That is IE version 9 and above. If your Dart code runs in IE 8, it’s more of an accident than anything else.

    Tadas Šubonis: There is no interpreter for Dart. In the Dart VM, every single line of Dart code is compiled to machine code before running, always.

  4. There are so many technologies that Microsoft discontinued and so many orphans projects made from the Open source community,Whats wrong about discontinuing a product that wont fit the modern world.
    Whats different from Delphi,VIsual Basic(The actual VIsual Basic has nothing to do with the older one),Ingress.
    Sencha Extjs was discontinued and Released again with the Same name,no backward compatibility at all.
    SO If we follow your logic We wont use nothing that comes from Microsoft,Oracle,CA,Sencha and almost any tool provider of the world.
    For me no other software in the world has suffered so much FAD as Dart is receiving right now.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s