Hallo Jakob! Wir wollen ein wenig auf das JavaScript-Ökosystem 2018 schauen. Beginnen wir einmal mit der Sprache selbst. Welche Weiterentwicklungen laufen gerade im ECMAScript-Standard ab, die man im Auge behalten sollte?
Jakob Westhoff: Asynchrone Funktionen mit dem async-Keyword sind immer noch ein heißes Eisen und können mehr und mehr zum Einsatz gebracht werden. Weitere Entwicklungen, auf die wir uns in Zukunft vermutlich freuen können, sind der Rest– und Spread-Operator für Objekte. Diese erlauben das einfachere Zusammensetzen und Zerlegen von Objekt-Properties, was gerade auch im Zusammenspiel mit Frameworks wie React eine große Hilfe ist.
Neben den Neuerungen im ECMAScript-Standard gibt es mit WebAssembly natürlich eine weitere sehr interessante Entwicklung.
Die Fähigkeit, Code sonst nur nativ verwendeter Sprachen wie C oder Rust in eine ausführbare Sprache für das Web zu übersetzen, wird uns sicherlich noch einige Zeit in Atem halten. WebAssembly wird bereits von allen großen Browsern unterstützt und stellt eine sehr interessante Ergänzung zu JavaScript dar. Wir werden sicherlich noch viele spannende Anwendungsbeispiele und Lösungen mit dieser Technologien sehen.
Derzeit tobt in der Community eine Diskussion darüber, ob die automatisch Setzung von Semikolons in JavaScript abgeschafft werden sollte. Worum geht es in der Diskussion genau?
Jakob Westhoff: ASI, also die Automatic Semicolon Insertion, ist seit langem ein Diskussionspunkt in der JavaScript Community. Grundsätzlich geht es darum, dass in JavaScript die Verwendung von Semikolons am Ende von Statements optional ist. Dies bedeutet, dass es Entwickler gibt, die Semikolons verwenden und welche, die es nicht tun.
In der Diskussion geht es nun darum, eine Warnung einzuführen, wenn keine Semikolons gesetzt wurden. Der Grund hierfür liegt darin, dass die ASI häufig gerade bei unerfahrenen Entwicklern dazu führt, dass sich Code anders verhält als diese es erwarten würden, da ihnen die Regeln der ASI nicht bekannt sind. Es ist hierüber nun ein Streit entbrannt, weil natürlich diejenigen, die Semikolons generell verwenden, gerne eine entsprechende Warnung hätten, die andere Seite aber gerne weiterhin die Freiheit hätte, sie wegzulassen.
Wie lautet deine Meinung zu der Frage?
Jakob Westhoff: Ich stehe dieser Frage tatsächlich relativ ambivalent gegenüber. Es gibt gute Gründe für beide Seiten der Argumentation. Ich sehe tatsächlich die Notwendigkeit einer solchen Warnung nur begrenzt, da es externe Tools wie z.B. eslint gibt, mit der sich der gleiche Check bereits heute durchführen lässt.
Ich sehe die Notwendigkeit für Warnungen bei nicht gesetzten Semikolons nur begrenzt.
Welche Trends findest du im Bereich JS-Frameworks momentan spannend?
Jakob Westhoff: Ich finde es gut, dass es mittlerweile einen generellen Trend in Richtung JS-Frameworks gibt. Applikationen werden nicht mehr zusammen gehackt, sondern es wird tatsächlich abgewogen, welche Frameworks eine sinnvolle Möglichkeit der Umsetzung darstellen. Welches Framework hier am Ende zum Einsatz kommt, ist letztlich egal. Hauptsache es wird überhaupt eines benutzt. Besondere allgemeine Trends in Frameworks sehe ich aktuell nicht. Alle Frameworks entwickeln sich rasch weiter, was ich sehr begrüßenswert finde.
Ein Trend, der wohl gekommen ist, um zu bleiben, ist TypeScript. Angesichts der Vorzüge dieser typisierten JavaScript-Variante stellen sich Manche gar die Frage: Brauchen wir überhaupt noch „plain“ JavaScript? Was denkst du darüber?
Jakob Westhoff: Ich selbst bin ein sehr großer Fan von TypeScript. Ich benutze es sehr gerne und argumentiere auch oft zugunsten dieser Sprache. Gerade für neue Projekte drängt sich diese Sprache meiner Erfahrung nach auf. Die Typisierung bietet zusätzliche Stabilität und implizite Dokumentation. Ein riesengroßes Plus stellt außerdem die sehr gute IDE-Unterstützung dar. Durch die detaillierten Typen und Interfaces kann die IDE bei der Entwicklung deutlich mehr Unterstützung bieten als bei normalen JavaScript. Zusätzlich zur Vermeidung von Fehlern steigert dies auch die Effizienz bei der Entwicklung.
Um der Vielzahl an Frameworks, Tools, Bibliotheken & Transpiler-Sprachen im JavaScript-Ökosystem gerecht zu werden, empfiehlst du Webpack. Was ist Webpack und wie funktioniert es?
Jakob Westhoff: Webpack ist einfach betrachtet ein sogenannter Bundler. Das bedeutet, dass er JavaScript-Code, und auch andere Ressourcen, nehmen und in Paketen zusammenfassen kann. Hierbei analysiert er Abhängigkeiten der einzelnen Applikationsteile und setzt diese korrekt zusammen.
Unter der Haube kann Webpack jedoch noch viel mehr. Es ist möglich, durch Plug-ins und sogenannte Loader weitere Verarbeitungsschritte hinzuzufügen, wie das Transpilen von anderen Sprachen (z.B. TypeScript) oder die Verarbeitung und Integration von Sass oder Less, bis hin zur Optimierung von Bildern. Webpack hat sich im JavaScript-Umfeld mehr oder weniger als Bundler/Packager durchgesetzt und wird weitreichend eingesetzt.
Vielen Dank für dieses Interview!
Das Interview führte Hartmut Schlosser