|
Unter dem Namen Flow
hat Facebook ein neues Werkzeug zur statischen Typüberprüfung
vorgestellt. Da JavaScript anders als etwa die Programmiersprachen
Java, C oder C++ standardmäßig keine statische
Typisierung unterstützt, ist das Tool sinnvoll. Noch befindet
sich das größtenteils in OCaml geschriebene und quelloffene
Projekt in einem frühen Stadium. Über kurz oder lang soll
es aber für eine bessere Qualität und Produktivität
des JavaScript-Codes sorgen. Zahlreiche Eigenschaften des kommenden
ECMAScript-6-Standards werden auch schon unterstützt.
Für die statische Typisierung sprechen Einblicke in den Code,
aufgrund derer sich der Code besser transformieren, navigieren und
verbessern lassen soll und eine frühe Fehlerprüfung, mit
der sich bestimmte Laufzeitfehler vermeiden lassen. Gewöhnlich
gestaltet sich die Kombination aus statischen Typen und JavasScript
jedoch nicht einfach, weswegen Flow Kontrollfluss- und Datenflussanalysen,
die auch die meisten Compiler um semantische Informationen zur Typableitung
aus dem Code zu ziehen benutzen, verwendet. Der Entwicklung von
Flow liegt die Annahme, dass der meiste JavaScript-Code implizit
statisch typisiert sei, zugrunde.
Die Typüberprüfung von Flow geschieht als Opt-in
Entwickler können die zu untersuchenden Codepassagen selbst
auswählen und müssen nicht ihren gesamten Code auf einmal
überprüfen. Für das Finden von Typfehlern sind keine
Änderungen am Code notwendig, da Flow die statischen Typen
automatisch findet. Dass mancher JavaScript-Code, insbesondere bei
Frameworks, inhärent dynamisch verwendet wird spricht des Weiteren
für das Opt-in. Da die Typprüfung von Flow hier zu ungenau
wäre, bietet das Werkzeug die Option, solchem Code explizit
zu vertrauen und bei der Prüfung außen vor zu lassen.
Durch die große JavaScript-Codemenge bei Facebook bekommt
diese Entscheidung Rückendeckung, denn der meiste Code falle
hier in die Kategorie des implizit statisch typisierten Codes, weswegen
Entwickler ihren Code, ohne dass sie ihn explizit mit Typen annotieren
müssten, überprüfen können. Man unterscheide
sich hierin laut Facebook auch von anderen Versuchen, die ein Typsystem
für die Sprache, wie Microsofts
JavaScript-Aufsatz TypeScript, bieten.
(mt, hannover)
(siehe auch heise-News-Ticker:)
Hannover · EDV-Beratung ·
Linux · Novell · Microsoft · Seminar ·
IT-Consult · Netzwerk · LPIC · CLE
|