Blog Archive

Thursday, February 16, 2012

Tech preview of Chromium with Dart engine now available

An attractive feature of Web programming is a rapid development cycle. Reloading the application after the source code has changed takes a fraction of a second. We want to offer you that same experience when using Dart, and today we’re making Mac and Linux binaries available that integrate the Dart VM into Chromium.

This technology preview allows you to run your Dart programs directly on the Dart VM in Chromium and avoid a separate compilation step. Over time, these programs will take advantage of the VM’s faster performance and lower startup latency.

Dart has been designed from the start to work with the entire modern web, and we’re simultaneously continuing to improve our fast Dart-to-JavaScript compiler. Both the Dart VM and modern JavaScript engines are first-class targets for Dart.

This release of Chromium with Dart VM integration is a technology preview, and should not be used for day-to-day browsing. After more testing and developer feedback, we plan to eventually include the Dart VM in Chrome.

Today’s release of the Chromium + Dart VM integration is another step forward for the open source "batteries included" Dart platform. Our goal is to help you build complex, high performance apps for the modern web, and we encourage you to try Dart and let us know what you think.

Anton Muhin is an engineer at Google Saint Petersburg who recently worked on making V8 VM and DOM bindings faster and now is working on integrating the Dart VM into Chromium. Before that he worked on the Google Calendar backend.

Vijay Menon is a software engineer at Google Seattle working on integrating the Dart language and runtime into the browser. His background is in compilers, runtime systems, and parallel programming.

Pavel Podivilov is a software engineer at Google Saint Petersburg who worked on Chrome Developer Tools prior to joining the Dartium team.

6 comments:

I still think the "counterfeit typing" system is downright dangerous, and the rest the language is "meh" at best. I'd be willing to bet most of the design decisions were as a result of the wanting compile-to-javascript, and without that there's no way Dart would have kept its typing system.

Prototype model is extremely powerful and allows for some really awesome designs, but it makes statically analyzing that code near impossible. That means doing a refractor of a method name is not really possible in Javascript as you do not know everyone who actually uses that method (it could be guessed, but not guaranteed).

Having a more strict object model makes it easier for larger teams of people to work on the same code and have a smaller chance of screwing up the implementation when changing code.

I think it is natural that Javascript gurus feel they are losing something (prototypes and related programming patterns) in Dart. Java folks feel that the weaker type system is a loss. Dart is a pragmatic language. It is purpose built for web programming in the large. I think you really have to use Dart to understand the balance of flexible, rapid development (influences from dynamic languages) and team productivity (influences from Java and the like and the improved tooling).