What? DART is evolving

Google updates Dart language spec


The team behind Google’s Dart programming language has released version 0.08 of the language’s official specification

The team behind Google’s Dart programming language, which aims to rival JavaScript as “the lingua franca of web development”, has released version 0.08 of the language’s official specification. Published on Friday, the update includes changes to Dart’s handling of the ‘equals’ operator and various modifications to do with initialising variables.

Dart’s rapidly evolving spec underlines its status as the scrappy young challenger to JavaScript’s established presence, with the language’s engineers attempting to outflank and improve upon JS’s weak points with every new release. But this rapid iteration may not be enough to topple the reigning king — as Mozilla’s Allen Wirfs-Brock pointed out at QCon London earlier this month, JavaScript already has such a huge foothold in browser support and practical implementation that it is difficult to imagine any competitor gaining serious ground in the next five or so years.

The full changelog from the 0.08 spec update is below:

5:  Static variables are lazily initialized, but need not be constants. Orthogonal notion of constant variable introduced.

7.1.2: Added equals operator as part of revised == treatment.

7.5.1: Initializing formals have the same type as the field they correspond to.

7.7: Static variable getter rules revised to deal with lazy initialization.

10: Modified syntax to support cascaded method invocations.

10.1: Removed support for + operator on Strings. Extended string constants to support certain cases of string interpolation. Revised constants to deal with constant variables

10.5: Corrected definition of HEX_DIGIT_SEQUENCE. Support implicit concatenation of adjacent single line strings.

10.13.2: Centralized and corrected type rules for function invocation.

10.14: Moved rules for checking function/method invocations to Added definition of cascaded method invocations.

10.15, 10.16: Updated noSuchMethod() call for getters and setters to conform to planned API.

10.17: Modified syntax to support cascaded method invocations.

10:20: Revised semantics for ==.

10:28: Removed import, library and source from list of built-in identifiers. Revised rules for evaluating identifiers to deal with lazy static variable initialization.

11.13: Fixed bug that allowed continue labeled on non-loops.

12: Revised syntax so no space is permitted between # and directives. Introduced show: combinator. Describe prefix: as a combinator. Added initial discussion of namespaces. Preclude string interpolation in arguments to directives.

Head over to the Dart blog to read the official release announcement, or download the specification in PDF or HTML format from its own dedicated page. While the Dart team is working to introduce all the new changes as soon as possible, they emphasise that “[n]ot everything is implemented by both the Dart VM and the Dart to JavaScript compiler yet.”

Inline Feedbacks
View all comments