Quantcast
Channel: techscouting through the java news » Sönke Sothmann
Viewing all articles
Browse latest Browse all 72

TypeScript – Nur ein ECMAScript 6 Lückenbüßer?

$
0
0

Diese berechtigte Frage muss sich TypeScript, das statisch typisierte Superset von JavaScript, gefallen lassen. Schließlich bringt ECMAScript 6, die kommende Version des Standards für JavaScript, viele der in der aktuellen ECMAScript Version 5 vermissten Features mit, welche auch von TypeScript nachgerüstet werden (z.B. klassenbasierte Vererbung und ein Modulsystem). Dabei benötigt ECMAScript 6 keinen Kompilierungsschritt, sondern wird direkt vom Browser verarbeitet.

Auch wenn ECMAScript 6 noch nicht final spezifiziert ist, so rückt dies immer näher. Allmählich tauchen erste Features als Implementierung in den neusten Browserversionen auf – siehe Kompatibilitätsmatrix.

Wird also TypeScript überhaupt gebraucht? Ist es nicht nur eine Übergangslösung?

Tatsächlich soll TypeScript (anders als Ansätze wie beispielsweise Dart) ECMAScript nicht ersetzen. Sich für TypeScript zu entscheiden bedeutet auch, sich für ECMAScript/JavaScript zu entscheiden.

Die Syntax von Modulen und Klassen versucht Microsoft synchron zur ECMAScript 6 Syntax zu halten.
Ziel ist es, dass der TypeScript Compiler – wenn eine ausreichende Browserunterstützung für ECMAScript 6 in den Browsern vorhanden sein wird – die ECMAScript 6 Features nicht mehr (durch Cross-Compilation) nachrüsten muss, sondern den Code einfach als ECMAScript Code unverändert ausgeben kann.
Aber sind wir ehrlich: bis ECMAScript 6 eine ausreichende Browserunterstützung haben wird (je nach Projekt sind natürlich andere Browserversionen spannend), werden noch Jahre vergehen.
TypeScript ist somit in gewissem Maße ein Lückenfüller. Eine eventuelle Migration von TypeScript auf ECMAScript 6 dürfte sich aufgrund der Syntaxähnlichkeit sehr leicht gestalten.

TypeScript hat allerdings auch ein (namensgebendes) Feature zu bieten, welches ECMAScript 6 gänzlich fehlt und auch in Zukunft (bislang) gar nicht zur Diskussion steht: statische Typisierung.
Diese ermöglicht zum einen unmittelbares Feedback bei gängigen Programmierfehlern, zum anderen ist sie die Grundlage für umfassendes Tooling (IDE-Unterstützung, z.B. zuverlässige Autovervollständigung, Refactorings, Code-Navigation) – ein Bereich, in dem JavaScript trotz aller Fortschritte der letzten Jahre große Schwächen hat.
Dieses Feature zahlt sich vor allem für große, komplexe Anwendungen aus – genau diese Entwicklungsprojekte will TypeScript adressieren.

Die Bedenken, dass man durch statische Typisierung die Eleganz von ECMAScript verliert, ist nachvollziehbar. TypeScript schafft es aber, diese Eleganz zu erhalten, u.a. durch den Einsatz eines strukturellen Typsystems statt einem nominellen (wie man es von Sprachen wie Java oder C# kennt).

Ob man auf reines ECMAScript oder auf TypeScript setzen möchte, muss jeder für sich selbst entscheiden. Wer statische Typisierung und das damit verbundene Tooling bisher vermisst hat oder schon heute zukünftige ECMAScript Features auch in älteren Browsern nutzen möchte, für den kann TypeScript ein lohnenswertes Werkzeug sein.

The post TypeScript – Nur ein ECMAScript 6 Lückenbüßer? appeared first on techscouting through the java news.


Viewing all articles
Browse latest Browse all 72

Latest Images

Trending Articles



Latest Images