Update für "JavaScript-Killer": Google aktualisiert Dart-Specs

Hartmut Schlosser

Die Spezifikationen für Googles Sprache Dart haben ein Update erfahren. Aktuell ist Version 0.08 von Dart, der Sprache für die strukturierte Webentwicklung, die von Manchen als „JavaScript“-Killer gehandelt wird.

Während Dart bereits eine beachtliche Schar an Anhängern um sich versammeln konnte, dürfte die Ansage, JavaScript langfristig abzulösen, etwas übereilt sein – so sieht es zumindest Allen Wirfs-Brock, Research Fellow von Mozilla. Auf der QCon Anfang März 2012 wagte sich Wirfs-Brock mit der Prophezeihung aus dem Fenster, dass uns JavaScript auch die nächsten Dekaden noch als kanonischer Standard begleiten wird:

JavaScript will be the canonical language for the next 20+ years.

Wirfs-Brock sieht zwar die Ambitionen im Dart-Team, einige der aktuellen Probleme bei der Webentwicklung zu lösen. Dafür sei aber keine eigene Sprache nötig: „[Y]ou don’t need to design a new language to address those issues“. Seinen festen Platz habe Dart indes als Sprache, die – wie viele andere auch – nach JavaScript kompiliert.

Wie dem auch sei, die Dart-Liebhaber werden sich den Blick in die Sprachneuerungen nicht vermießen lassen:

  • 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 10.1.3.2. 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.

Die Spezifikationen sind genauer in der Release-Ankündigung nachzulesen oder auf der Spec-Seite als PDF oder HTML-Dokument herunterzuladen. Allerdings macht Seth Ladd vom Dart-Team darauf aufmerksam, dass noch nicht alle Features in der Dart VM und im Dart-JavaScript-Kompiler umgesetzt sind. Einige Tage Geduld bitte für alle, die gerne mit dem neuen Dart spielen möchten.

Geschrieben von
Hartmut Schlosser
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.