Suche
TypeScript Tutorial - Teil 5: ein Ausblick

Grundkurs TypeScript: Die Zukunft der typisierten Obermenge

Johannes Dienst

©Shutterstock/Nelson Marques

Zum Abschluss der TypeScript-Serie lohnt es sich, einen Ausblick auf die weitere Entwicklung der Sprache zu werfen. Dafür werden neben der offiziellen Roadmap auch Interviews mit dem Projektleiter Anders Hejlsberg herangezogen. Ein Blick auf Visual Studio Code und einige Zitate zu TypeScript sollen ebenfalls nicht fehlen.

Im letzten Teil unseres TypeScript-Kurses wollen wir uns mit der Zukunft der Sprache beschäftigen. Die Roadmap von TypeScript ist der erste Anlaufpunkt für Informationen. Seit der Version 2.5 wird vermehrt Wert darauf gelegt, den Language Server und dessen API zu verbessern. Das vereinfacht die Entwicklung in Editoren, damit diese Quick Fixes und Refactorings vorschlagen können. Es ist also ein klarer Trend zu mehr IDE-Unterstützung zu erkennen – eine Funktionalität, die TypeScript im Moment nur wenig unterstützt, obwohl es eine statisch typisierte Sprache ist.

Auch die Implementierung des neuen Vorschlags zu Decoratos aus ECMAScript sowie einigen neuen Decorators wie Ambient, Deprecated und Conditional steht an. Und das Management von mehreren, voneinander abhängigen TypeScript-Projekten über die Konfigurationsdatei tsconfig.json wird sich auf die Entwicklung von großen TypeScript-Applikationen positiv auswirken. Das Typsystem wird immer weiter verfeinert. Es gibt laufende Diskussionen um nominale Typen (nicht strukturell typisiert) sowie Typsicherheit von berechneten Properties für Konstanten und Symbole.

Die Popularität von TypeScript ist nicht nur seiner guten Integration in das JavaScript-Ökosystem geschuldet. Microsoft hat es zudem geschafft, mit Angular eines der im Moment angesagtesten Webframeworks für sich zu gewinnen. Angular ist vollständig in TypeScript entwickelt. Tatsächlich wurden sogar extra für die Neuimplementierung von Angular 2 Features in TypeScript eingebaut, Decorators zum Beispiel. Die Partnerschaft mit Google befruchtet beide Projekte.

React von Facebook erfährt durch TypeScript ebenfalls eine gute Unterstützung. Es existiert eine typsichere Version von JSX mit TSX. Im Handbuch gibt es ein ausführliches Tutorial zum Start einer React-Applikation mit webpack. Die React-Community hat ein bisschen gebraucht, um die Vorteile von TypeScript anzunehmen. Das lag unter anderem am Konkurrenzprojekt Flow aus dem Hause Facebook, denn React wurde für Flow designt. Inzwischen hat sich der Wind ein wenig gedreht, was sich an Beiträgen auf Reddit, GitHub oder einschlägigen Blogs erkennen lässt.

Nicht unerwähnt bleiben soll das immer beliebter werdende Framework Vue.js. Microsoft hält dafür ein Starter-Template bereit. Deklarationsdateien mit Typinformationen für den TypeScript-Compiler werden ab der Version Vue.js 2 vom Projekt mitgeliefert. Mehrere Blogposts zeigen, dass statische Typisierung eine sinnvolle Ergänzung ist („Vue2 + TypeScript2 – an introductory guide“ / „Integrate TypeScript in your Vue project“).

Zuhause in Visual Studio Code

Viele Programmiersprachen haben ihre eigens für sie entwickelten IDEs. Auch TypeScript besitzt mit Visual Studio Code einen Editor. Dieser erinnert beim ersten Blick an beliebte Editoren wie Atom. Das ist nicht verwunderlich, da er mit dem Framework Electron komplett in TypeScript entwickelt wird. Was als Webeditor mit nativer Unterstützung von TypeScript gestartet ist, mausert sich im Moment zu einer vollständigen IDE. Beim Entwickeln muss sie für die meisten Aufgaben nicht mehr verlassen werden. Für die Architektur zeichnet sich kein Geringerer als Erich Gamma verantwortlich. Der Editor bietet alle Features, die für die moderne Webentwicklung nötig sind. Neben einem Debugger, einem grafischen Git-Client und dem Marktplatz für Extensions gibt es ein konfigurierbares Terminal inklusive. Abgerundet wird die Entwicklererfahrung durch sinnvolles IntelliSense und Quick Fixes (Abb. 1). Die umfangreiche Dokumentation gibt dem Projekt den letzten Schliff. Außerdem wurden die Releasezyklen mit den TypeScript-Releases synchronisiert. So gibt es jeden Monat eine neue Version, die die aktuellen Änderungen an TypeScript enthält.

TypeScript Abb. 1: Visual Studio Code: Inzwischen mehr als nur ein Editor für Webentwicklung

Abb. 1: Visual Studio Code: Inzwischen mehr als nur ein Editor für Webentwicklung

Expertenmeinungen zu TypeScript

Jährlich stellt Anders Hejlsberg auf der Build den aktuellen Stand von TypeScript vor. Auch zukünftige Pläne und Livedemos gehören mit dazu. Die Motivation hinter TypeScript war für ihn, dass er JavaScript mit einem statischen Typsystem ausstatten wollte, um besser toolgestützt entwickeln zu können. Auch die von ihm so genannte Featurelücke zwischen aktuellen JavaScript-Features und den Endgeräten sollte durch Transpilieren umgangen werden. In einem interessanten Satz formuliert er sehr schön, warum TypeScript nicht – wie so viele andere Sprachen – daran scheiterte, in der JavaScript-Community Fuß zu fassen: „You wanna be in the ecosystem! You wanna be of the ecosystem!“

Die Community beteiligt sich rege an der Entwicklung von TypeScript auf GitHub, und mit über 3 000 Deklarationsdateien an Typdefinitionen für alle erdenklichen Bibliotheken. Das Team um Anders ist immer bemüht, aktuelle Webframeworks zu unterstützen, was er an den Beispielen Angular, React und Vue.js live demonstrierte. Für Letzteres wurde sogar der Compiler erweitert. TypeScript wird laut Aussage von Hejlsberg von vielen Benutzern sogar immer im Betastatus mit dem Nightly Build verwendet, so stabil läuft es. Dafür ist die Testsuite mit über 50 000 Tests verantwortlich, die alle vor dem Merge eines Pull Requests grün sein müssen. Den empfehlenswerten Vortrag, ein 30-minütiges Interview von Seth Juarez und ein aktuelles Interview bei .NET Rocks! kann ich nur empfehlen. Wer noch mehr über TypeScript 2.X und dessen Compiler erfahren will, dem seien die Interviews (über TypeScript 2 und über modernen Compilerbau) ans Herz gelegt.

Anfangs war TypeScript bei vielen eher unbeliebt. Vielleicht auch, weil es von Microsoft kam? So sagte Jez Humble: „It’s disappointing when smart people display a profound ignorance of computing history.“ Anders Hejlsberg hat aber den Nutzen von TypeScript einmal schön beschrieben: „I felt there was a need for us to build a new programming language. I also had come to see that Microsoft functions best when it controls its own destiny.“ Und auch die JavaScript-Community ist inzwischen überzeugt, dass es die richtige Entscheidung war. So sagt z. B. der Webentwickler Ville M. Vainio: „It’s gradually becoming clear to wider community that you should be transpiling; while ES5 still has a loyal cult following, it mostly consists of people that erased their pasts and extinguished all critical thought once they accepted Crockford in their hearts.“ Der TypeScript-Nutzer Luke Hoban fasst es wie folgt zusammen: „CoffeeScript is to Ruby as TypeScript is to Java/C#/C++.

Fazit

Im Stack Overflow Developer Survey wurde TypeScript als neuntbeliebteste Sprache eingestuft. Sie ist mit dem Release 2.0 den Kinderschuhen endgültig entwachsen und schickt sich an, ein fester Bestandteil der heutigen und zukünftigen Webentwicklung zu werden. Dabei wird der Fokus auf Produktivität und stetige Integration in das bestehende JavaScript-Ökosystem gesetzt. TypeScript macht es durch diese Ausrichtung leicht, ein Projekt effizient zu entwickeln. Eine Eigenschaft, die vielen anderen Konkurrenten fehlt. Mit Visual Studio Code steht ein kostenfreier Editor zur Verfügung, der auf die Entwicklung mit TypeScript perfekt zugeschnitten ist. Als Bonus läuft er auf allen größeren Betriebssystemen und ist mit dem TypeScipt-Releasezyklus gekoppelt. Ich persönlich wünsche TypeScript eine große Zukunft. Nicht zuletzt, weil Anders Hejlsberg leidenschaftlichen Weitblick beweist. Er hat es geschafft, eine vor allem von der JavaScript-Community allgemein unterstützte Open-Source-Sprache von Microsoft zu etablieren.

Geschrieben von
Johannes Dienst
Johannes Dienst
Johannes Dienst ist Clean Coder aus Leidenschaft bei der DB Systel GmbH. Seine Tätigkeitsschwerpunkte sind die Wartung und Gestaltung von serverseitigen Java- und JavaScript-basierten Applikationen. Twitter: @JohannesDienst
Kommentare

Schreibe einen Kommentar

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