Ecma International has standardized the first edition of Dart, ECMA-408.
TC52, an Ecma Technical Committee, an effort to standardize Google Dart was formed in December last year. The inaugural meeting of the committee took place in February, discussing the adoption of Dart 1.2 and the possibility to include Enums and Deferred Loading. At the end of June, Ecma has approved the first edition of Dart, known internally as ECMA-408 (PDF).
We have asked Anders Sandholm, Product Management lead for Dart at Google and Chairman of Ecma TC52, to provide us with details on this standardization effort.
InfoQ: What does it mean for you and for the community that Dart is now a standardized language?
AS: The past year, we have been working hard on reaching this major milestone so we’re very pleased and grateful that Dart is now a standardized language. For the broader community, it means that an independent standards organization has approved and ratified the Dart language specification. It also means that there is an open process for the onward evolution of Dart and that anyone can become an Ecma member, join TC52 and have a direct impact on Dart’s future development.
InfoQ: What version of Dart was submitted to Ecma? 1.2? Was it accepted as it is or were performed any changes to it?
AS: Version 1.3 of the Dart specification was first approved by TC52 and then last week ratified by the Ecma General Assembly. Version 1.3 was the result of previous work by Gilad Bracha on versions leading up to 1.2 combined with feedback from TC52 participants.
InfoQ: What is next on Ecma Dart's roadmap?
AS: The next TC52 meeting is on September 16 in Zürich, Switzerland. The language extensions we are currently working on are Enums, Deferred Loading and Async improvements. Let me say a few more words about each of them in turn.
Enums or enumerated types is one of the most requested features from Dart users and will help making code more self-documenting. We look forward to offering Enums to Dart developers.
Deferred Loading will allow the already super fast startup time in the Dart VM to be reduced further. But it is especially useful for a setup where the deployment environment - e.g. a browser - has to rely on the translation to JavaScript, which does not provide the same startup advantages as the native Dart VM.
Having the right set of Async primitives is key to making developers productive in today’s work on server-side programming. We are thrilled to be working on providing truly powerful Async primitives to Dart developers. As we are starting to see more usage of Dart on the server and working towards a Dart offering for Google App Engine’s Managed VMs, the Async work will become extremely valuable.