Interview mit Christian Kaltepoth

Auch mit ECMAScript 2015 ist JavaScript nicht die Sprache für alles

Melanie Feldmann

Christian Kaltepoth

Mit ECMAScript 2015 hat sich bei JavaScript einiges verändert. Der Quellcode ist kaum wiederzuerkennen. JAX-Speaker Christian Kaltepoth erklärt im Interview was sich getan hat, worauf sich vor allem Java-Entwickler freuen können und warum JavaScript vielleicht doch noch nicht reif ist für die Weltherrschaft.

JAXenter: Was ist für Sie das wichtigste neue Feature von JavaScript nach ECMAScript 2015?

Christian Kaltepoth: Für mich persönlich ist das neue Modulsystem von ECMAScript 2015 auf jeden Fall ein Highlight. Bisher hat JavaScript für die Organisation des Quellcodes nicht viel bieten können. In einer normalen Anwendung verteilt sich der Quelltext oft über viele verschiedene Dateien, die in der exakt richtigen Reihenfolge in der HTML-Seite geladen werden müssen. Zur Laufzeit sieht die JavaScript Engine jedoch nur ein einziges großes Script. Das bedeutet vor allem, dass lokale Variablen aus einer Datei auch in anderen Dateien sichtbar sind, was zu unerwartetem Verhalten führen kann. Zwar haben sich mit der Zeit verschiedene Modulformate wie CommonJS und AMD etabliert, jedoch wird das Problem mit ECMAScript 2015 noch deutlich eleganter auf Ebene der Sprache gelöst. Jetzt ist es möglich, echte Module zu entwickeln, die sehr explizit Funktionalität exportieren, die von anderen Modulen wiederum importiert werden kann. Dadurch entsteht ein wohl definierter Abhängigkeitsgraph. Das erleichtert die Organisation und erhöht die Wartbarkeit des Quellcodes ganz enorm.

JAXenter: Worüber können sich vor allem Java-Entwickler freuen?

Die neuen Klassen ändern nichts an der Art und Weise, wie Vererbung in JavaScript realisiert ist.

Christian Kaltepoth: Für Java-Entwickler ist die auf Prototypen basierende Vererbung von JavaScript und die Erstellung von Klassen-ähnlichen Konstrukten über Konstruktorfunktionen und Ketten von Prototypen schwer nachzuvollziehen. Das ändert sich mit ECMAScript 2015 durch die Einführung von Klassen, die den Java-Klassendefinitionen doch recht ähnlich sehen und deutlich intuitiver zu verwenden sind. Wichtig ist es aber zu verstehen, dass diese Klassen nichts an der Art und Weise ändern, wie Vererbung in JavaScript realisiert ist. Es handelt sich lediglich um eine vereinfachte Syntax zur Definition von Konstruktorfunktionen und deren Prototypen. Es bleibt also bei der prototypischen Vererbung, was Entwicklern auch bei der Verwendung der neuen Klassen stets bewusst sein sollte.

Darüber hinaus sind es natürlich auch die vielen kleinen Verbesserungen, die den Mehrwert von ECMAScript 2015 aus machen. Sei es der neue Block Scope, Template Strings, Arrow Functions, Generatoren und vieles mehr. Einen vollständigen Überblick über die neuen Sprachfeatures gibt es in meiner Session auf der JAX 2016.

International JavaScript Conference
Hans-Christian Otto

Testing React Applications

by Hans-Christian Otto (Suora GmbH)

Sebastian Witalec

Building a Robo-Army with Angular

by Sebastian Witalec (Progress)

API Summit 2018
Christian Schwendtner

GraphQL – A query language for your API

mit Christian Schwendtner (PROGRAMMIERFABRIK)

JAXenter: Brauchen Entwickler TypeScript jetzt noch?

Christian Kaltepoth: Ich denke, dass TypeScript auch in Zeiten von ECMAScript 2015 nicht an Relevanz verliert – ganz im Gegenteil. In den letzten TypeScript-Versionen konnte man beobachten, wie sich die Sprache immer mehr an ECMAScript 2015 angenähert hat. So unterstützt TypeScript beispielsweise inzwischen auch die Modulsyntax von ECMAScript 2015. Und auch darüber hinaus bietet TypeScript eine große Menge der Sprach-Features, die im Rahmen von ECMAScript 2015 standardisiert wurden.

Ich empfehle jedem, der sich mit ECMAScript 2015 beschäftigen möchte, auch einen Blick auf TypeScript.

Die Frage ist somit nicht „ECMAScript 2015 oder TypeScript“, sondern vielmehr „ECMAScript 2015 mit oder ohne TypeScript“. Möchte man heute ECMAScript 2015 Code schreiben aber auch ein breites Spektrum an Browsern unterstützen, benötigt man einen Transpiler, der die neuen Sprachkonstrukte in JavaScript für ältere Browser übersetzt. Der bekannteste Transpiler ist Babel und unterstützt heute ca. 75 Prozent von ECMAScript 2015. Aber auch der TypeScript Compiler fällt in diese Kategorie und unterstützt mit 61 Prozent ebenfalls einen Großteil des Standards. Im Falle von TypeScript erhält man zusätzlich noch ein Typsystem, das sich besonders bei größeren Projekten schnell rentiert. Ich empfehle somit jedem, der sich mit ECMAScript 2015 beschäftigen möchte, auch einen Blick auf TypeScript zu werfen. Besonders Java-Entwickler werden die zusätzliche Typensicherheit bestimmt zu schätzen wissen.

JAXenter: JavaScript wird immer mehr zur Universalsprache. Wie sehen Sie diesen Trend?

Christian Kaltepoth: Dieser Trend hat natürlich zwei Seiten. Auf der einen Seite ist es sicherlich positiv zu bewerten, dass JavaScript auch außerhalb des Browsers eine gewisse Popularität erreicht hat. Schließlich bedeutet das, dass Entwickler ihr Wissen über die Sprache und das vorhandene Ökosystem an Bibliotheken jetzt auch in anderen Bereichen produktiv einsetzen können. Ich persönlich finde NodeJS beispielsweise als Technologie sehr interessant und das daraus in der JavaScript Community entstandene Tooling sehr beeindruckend.

Auf der anderen Seite heißt es aber natürlich nicht, dass JavaScript für alle Fälle auch die geeignetste Sprache ist. Wenn man ehrlich ist, muss man auch zugeben, dass JavaScript einige Schwächen hat, wie  das schwer nachzuvollziehende Verhalten bei der impliziten Typumwandlung. Auch wenn ich JavaScript als Sprache sehr schätze, würde ich doch die wichtigen Geschäftsregeln im Backend nicht mit JavaScript schreiben wollen und mich in diesem Fall doch eher auf eine klassische Java-Anwendung verlassen. Es kommt also stets auf den konkreten Anwendungsfall an.

Lesen Sie auch: Die neue Kolumne auf JAXenter: Die große JavaScript-Erschöpfung

JAXenter: Bekommen wir ECMAScript 2016 (ECMAScript 7) noch dieses Jahr zu sehen?

Christian Kaltepoth: Dazu muss man sagen, dass in der Vergangenheit oft einige Jahre ins Land gestrichen sind, bis eine neue ECMAScript-Version veröffentlicht wurde. Auch ECMAScript 2015 hat einige Jahre auf sich warten lassen. Aktuell ist es allerdings geplant, dass die Folgeversionen deutlich schneller erscheinen sollen. Ein Trend, den man ja bereits bei HTML5 beobachten konnte. Ob das ehrgeizige Ziel, dass die nächste Version noch dieses Jahr erscheint, auch einzuhalten ist, bleibt abzuwarten.

JAXenter: Was bringt ECMAScript 2016 mit?

Mit Assync Functions ist man in der Lage, asynchronen Code so zu schreiben, dass er fast wie synchroner Code aussieht.

Allerdings stehen für ECMAScript 7 bereits einige interessante Ideen auf der Roadmap. Eines der interessantesten Features sind aus meiner Sicht die Async Functions. Einfach gesprochen geht es dabei darum, das Schreiben von asynchronem Code zu vereinfachen. Klassische asynchrone Funktionen erwarten üblicherweise entweder einen Callback als Argument oder aber liefern ein Promise als Ergebnis zurück. Mit einer Async Function kann man nun eine Zuweisung schreiben, die zwar synchron aussieht, aber in Wirklichkeit auf die Erfüllung eines Promise wartet. Somit ist man in der Lage, asynchronen Code so zu schreiben, dass er fast wie synchroner Code aussieht. Dies bringt noch einmal eine deutliche Vereinfachung im Vergleich zur direkten Nutzung von Promises.

Daneben deuten sich auch noch einige andere interessante Features an. Wie beispielsweise Object Spread Properties, die in der React/Redux Community bereits intensiv verwendet werden. Man darf auf jeden Fall sehr gespannt sein, was sich in den nächsten Monaten hier noch entwickelt.

JAXenter: Vielen Dank für das Interview!

Christian KaltepothChristian Kaltepoth arbeitet als Senior Developer bei ingenit GmbH & Co. KG in Dortmund. Sein Schwerpunkt ist die Entwicklung von webbasierten Unternehmensanwendungen auf Basis von Java-EE-Technologien. Darüber hinaus ist er in mehreren Open-Source-Projekten wie Apache DeltaSpike, Rewrite, PrettyFaces und Togglz aktiv. Er ist Mitglied der JSR 371 Expert Group und ein regelmäßiger Sprecher auf Konferenzen.

Verwandte Themen:

Geschrieben von
Melanie Feldmann
Melanie Feldmann
Melanie Feldmann ist seit 2015 Redakteurin beim Java Magazin und JAXenter. Sie hat Technikjournalismus an der Hochschule Bonn-Rhein-Sieg studiert. Ihre Themenschwerpunkte sind IoT und Industrie 4.0.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: