© Matej Kotula/Shutterstock.com
Sprachen und Ökosystem im Check

JavaScript im Expertencheck: Wohin geht die Reise?


Was sind die wichtigsten Trends des JavaScript-Ökosystems und wird Node irgendwann von Deno abgelöst? Auf diese und viele weitere Fragen antworten Sebastian Springer, Peter Kröner, Christian Liebel, Thorsten Hans, Golo Roden und Tobias Struckmeier im großen Expertencheck. Neben einigen übergreifenden Fragen gehen die Experten jeweils auch auf ihr Spezialgebiet ein.

Welche Neuigkeit im JavaScript-Universum war dieses Jahr die wichtigste oder spannendste für dich?

Sebastian Springer: Für mich ist aktuell interessant, dass es neben den drei großen JavaScript-Lösungen Angular, Vue und React mit Svelte noch einen vierten Player gibt. Es ist schön zu sehen, dass Svelte einen radikal anderen Weg geht und die Applikationen vorkompiliert und bereits optimiert ausliefert und diese Arbeit nicht dem Browser überlässt. Ich bin gespannt, was und wie viel die anderen davon lernen werden. Insgesamt hoffe ich stark darauf, dass wir irgendwann diesen Kampf der Frameworks hinter uns lassen und einfach voneinander lernen.

Die zweite spannende Sache dieses Jahr war das Release von Deno 1.0, dem Node.js-Konkurrenten. Ryan Dahl hat hier ja versucht, die Fehler, die er bei der Entwicklung von Node.js gemacht hat, nicht zu wiederholen. Es gibt ein paar sehr spannende Ansätze in Deno, zum Beispiel das Berechtigungskonzept oder auch das Modulsystem und die Tatsache, dass TypeScript nativ unterstützt wird. Ob Deno aber Node.js kurz- oder mittelfristig verdrängen wird, wage ich zu bezweifeln. Aber auch hier gilt wieder: Konkurrenz belebt das Geschäft.

Peter Kröner: „Spannend“ ist vielleicht nicht das richtige Wort, aber ich finde es sehr angenehm, dass die letzten paar ECMAScript-Versionen (sowie die nächsten paar kommenden) diverse Löcher in JavaScript stopfen, die mir früher sehr auf den Keks gegangen sind. Kürzlich konnte ich an ein paar Stellen meine selbstgestrickten Implementierungen von Promise.allSettled() und Promise.any() entfernen, einfach weil das jetzt bzw. bald offizielle Sprachfeatures sind, die jeder relevante Browser drauf hat.

Christian Liebel: Mein persönliches Lieblingsthema ist aktuell das Web Capabilities Project, auch unter Project Fugu bekannt, von Google, Intel, Microsoft und weiteren Chromium-Beitragenden. Darüber kommen schrittweise neue Schnittstellen mit nativer Power ins Web. So wird aktuell am Native File System API gearbeitet, das als Vorschauversion schon in manchen Chrome Builds zu finden ist. Das finde ich besonders wichtig, da es insbesondere Produktivitätsanwendungen den Weg ins Web ebnet. Der Web-App-Gap schmilzt also weiterhin.

Thorsten Hans: Meiner Meinung nach ist an dieser Stelle das Release von Deno 1.0 zu nennen. Das Deno-Team wird geleitet von Ryan Dahl, dem Initiator von Node.js. Mit Deno werden wichtige Schwächen von Node.js adressiert und es bietet eine alternative Laufzeitumgebung für serverseitigen JavaScript- oder TypeScript-Code. Deno unterstützt TypeScript nativ, wodurch der Bereitstellungsaufwand von TypeScript-Lösungen vereinfacht wird. Darüber hinaus sind Zugriffe auf Systemressourcen in Deno standardmäßig deaktiviert. Administratoren großer Umgebungen müssen solche Zugriffe explizit erlauben, wodurch Sie mehr Kontroller erhalten und die Adaption von TypeScript- bzw. JavaScript-basierten Lösungen in großen Unternehmen einfacher wird.

Golo Roden: Die größten Auswirkungen auf die JavaScript-Welt hat meiner Meinung nach der Kauf von npm durch GitHub. Auf der einen Seite ist das positiv, denn npm gerät damit endlich in stabiles und verlässliches Fahrwasser – auf der anderen Seite gehört damit neben GitHub ein weiterer essenzieller Baustein des Open-Source-Ökosystems zu Microsoft. Die vergangenen Jahre hat Microsoft unter Satya Nadella gezeigt, dass Open Source als ernstzunehmende Alternative angesehen und durchaus gefördert wird, allerdings hätte ich mir gewünscht, dass sich nicht so viel Einfluss bei einem einzigen Unternehmen ansammelt. Eine gemeinsam von den großen Web- und Cloud-Unternehmen getragene Stiftung, unter deren Dach npm hätte landen können, wäre mir weitaus lieber gewesen. Ich hoffe, dass Microsoft uns an der Stelle vor allem langfristig nicht enttäuschen wird.

Tobias Struckmeier: TypeScript Everywhere. TypeScript hat sich nicht nur in der JavaScript-Welt festgesetzt, es frisst sie sogar langsam auf. Viele Entwickler erkennen die Vorteile, die sich gerade in größeren Projekten oder Teams ergeben und schwenken um. Die Einstiegshürde ist erst einmal niedrig, und man kann seinen Code langsam anpassen. Mit der Nutzung von mehr Features und dem Einbinden von mit TypeScript-Typen versehenen Libraries kann sich das jedoch schnell ändern. Arbeitet man in größeren Projekten, führt meiner Meinung nach an TypeScript kaum noch etwas vorbei.

Das Release von Deno 1.0 hat das Potenzial, durch seine Signalwirkung etwas Bewegung in die Node.js-Welt zu bringen. Es bleibt spannend, zu beobachten, wie sich diese Alternative zu Node.js entwickelt.

Und mit GraalJS wächst ein weiterer Kandidat heran, der es ermöglicht, JavaScript- und Node.js-Anwendungen auf der neuen GraalVM zu betreiben und auf neue Art mit anderen Sprachen – allen voran Java – zu integrieren.

JavaScript ist heute ja oft nicht mehr nur JavaScript, sondern in der Anwendung geprägt von zahlreichen Tools und Frameworks. Wo liegen typische Hürden für Entwickler, die in die JS-Entwicklung einsteigen wollen, wenn sie ihr erstes Frontend-Projekt zusammenstellen?

Springer: Entwickler lernen mittlerweile nicht mehr wirklich die Grundlagen, sondern vielmehr Frameworks. Teilweise verstecken diese Werkzeuge die zugrunde liegenden Mechanismen so gut, dass sich ein Entwickler damit nicht mehr auseinandersetzen muss. Ein Verständnis der Features von JavaScript und auch von TypeScript hilft dabei, Frameworks und Bibliotheken zu meistern.

Für Einsteiger in die Entwicklung mit JavaScript ist die Komplexität der Bibliotheken und Frameworks eine weitere große Herausforderung. Gerade bei relativ strukturlosen Lösungen, wie beispielsweise React, tun sich Einsteiger häufig schwerer. Hier ist es von Vorteil, wenn man sich entweder in einer unkritischen Umgebung einarbeiten kann oder auf das Wissen von Kollegen oder vorgefertigte Applikationstemplates zurückgreifen kann.

Kröner: Der durchschnittliche Frontend-Entwickler ist von Abhängigkeiten abhängig, möglicherweise mehr, als gut ist. Das größte Problem dabei ist, wie unglaublich leicht man in den Performanceabgrund fallen kann, einfach, indem man sich unbesehen über 9000 Dependencies eintritt. Und ist man dort erst mal gelandet, ist es sehr schwer, wieder herauszukommen. Deswegen ist es nötig, Performance schon beim Aufgleisen eines Projekts zu berücksichtigen. Was sind unsere Performancebudgets, was schreiben wir selbst und wo kommen Third-Party Dependencies zum Einsatz, welcher Build-Prozess liefert uns das kleinste Bundle und vieles mehr. Werden solche Überlegungen nicht von Beginn an angestellt, lass...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang