L’épisode le plus récent
Revision 653: State of JS 2024 – Teil 1 Peter, Stefan und Vanessa besprechen die Ergebnisse des State of JS 2024, so wie
in der Vergangenheit auch bereits der State of CSS (Revision 633-635) besprochen
wurden. In Teil 1 stürzen sich die Hos…
Durée : 1:05:44
Peter, Stefan und Vanessa besprechen die Ergebnisse des State of JS 2024, so wie
in der Vergangenheit auch bereits der State of CSS (Revision 633-635) besprochen
wurden. In Teil 1 stürzen sich die Hosts vor allem auf die neuen JavaScript
Features.
SCHAUNOTIZEN
[00:03:44] STATE OF JS 2024 – TEIL 1
Peter, Stefan und Vanessa sind sich zumindest bei Einem einig: Die Motivation,
um die Umfragen „State of X“ auszufüllen, ist die eigene Weiterbildung. Dieses
Jahr gab es 14.000 Personen, die die Umfrage ausgefüllt haben. Ob die Ergebnisse
generell nur eher etwas über Enthusiasten aussagt?
Egal ob JS, HTML oder CSS. Gar nicht mehr zu einig waren sie sich dann darin,
wie interessant die einzelnen abgefragten JavaScript Features sind, oder auch
wie interessant die Ergebnisse davon.
Zuerst widmen sich die Hosts der Funktion groupBy. Doch vielmehr als nur über
die Funktion zu sprechen, besprechen Peter, Stefan und Vanessa, ob es sich
lohnt, bestehende Alternativen mit der nun nativen Funktion auszutauschen.
Stefan spricht sich für eine Verschlankung der Codebasis aus und plädiert dafür,
neue Sprachfunktionen zu nutzen, sobald sie verfügbar sind. Peter wirft die
Frage auf, welcher bestehende Code dadurch ersetzt würde. Ein Beispiel dafür ist
eine selbstgeschriebene groupBy-Funktion, die nicht ersetzt wird, weil sie gut
funktioniert und leicht anders arbeitet als mögliche Alternativen. Zudem gibt es
hier kein Risiko. Anders sieht es aus, wenn externe Programmbibliotheken ins
Spiel kommen – hier könnten unvorhergesehene Änderungen auftreten, und generell
ist das Ziel, die Anzahl an Abhängigkeiten möglichst gering zu halten.Im
Gespräch über die bekannte Bibliothek Lodash wird darauf hingewiesen, dass man
das Rad nicht neu erfinden möchte. Gleichzeitig merkt Peter an, dass es in
bestimmten Fällen doch notwendig sein kann, eigene Lösungen zu schreiben, um
spezielle Anforderungen zu erfüllen. Insgesamt herrscht jedoch Einigkeit
darüber, dass Lodash nicht mehr zeitgemäß ist. Viele seiner Funktionen stammen
aus einer anderen Entwicklungsära und lassen sich mittlerweile durch native
Sprachmittel ersetzen.
[00:21:03] SYNTAX FEATURES: PRIVATE FIELDS, ERROR.CAUSE
Neben diesen strategischen Überlegungen geht es auch um aktuelle Neuerungen in
JavaScript. Private Felder für Klassen erweisen sich als nützlich, um Objekte zu
erweitern – etwa durch zusätzliche Methoden für Zeichenketten oder Mengen. Die
Fehlerbehandlung wird mit der cause-Eigenschaft verbessert. Damit ist es
möglich, einen abgefangenen Fehler mit einer neuen Meldung erneut auszulösen und
dabei die ursprüngliche Ursache zu erhalten, was insbesondere für
Fehlerprotokollierung nützlich ist. Wer sich näher damit beschäftigen möchte,
findet eine ausführliche Beschreibung bei MDN.
[00:30:36] NULLISH COALESCING
Ein weiteres Thema ist der sogenannte Nullish Koaleszenzoperator (??), die sich
vom logischen Oder-Operator (||) dadurch unterscheidet, dass sie nur bei null
und undefined greift, während || auf alle falschen Werte reagiert – also auch
auf false, die Zahl 0, leere Zeichenketten oder NaN. Beide Operatoren lassen
sich beliebig verketten. MDN. Eng damit verbunden ist die Kurzschreibweise für
logische Zuweisungen (||=), die es ermöglicht, Werte nur dann zu setzen, wenn
sie bislang einen falschen Zustand haben. MDN.
Ein weiteres kleines, aber oft übersehenes Detail ist die sogenannte
Hashbang-Syntax (#!). Diese ist vor allem in Kommandozeilen-Werkzeugen von
Bedeutung, die in JavaScript geschrieben sind. Sie ermöglicht es, Skripte ohne
expliziten Aufruf der Laufzeitumgebung auszuführen, etwa beim Starten eines
Programms aus einer Paketkonfigurationsdatei heraus.
[00:34:40] LOGICAL ASSIGNMENT
Inneren Feldern von Objekten lassen sich nun auch neue Werte zuweisen, wenn ihr
aktueller Wert falsy ist. Also wiederum nun wieder alle falsy Werte im Gegensatz
zu dem vorher besprochenem Thema.
[00:41:12] STRING FEATURES, ARRAY FEATURES
Beim Blick auf die neuen Möglichkeiten zur Verarbeitung von Zeichenketten zeigt
sich, dass diese nur selten gebraucht werden. Ein Beispiel ist die Methode
replaceAll, die etwa genutzt werden kann, um überflüssige Leerzeichen aus
nutzergenerierten Inhalten zu entfernen. Zum Thema Array Features gibt es eine
Liste von Funktionen, die es eigentlich vorher auch schon so gab – nur jetzt
sind die Objekte immutable geworden. Also die Funktion ändert nicht mehr das
Originalobjekt, sondern gibt ein neues Array wieder.
Doch ihr Nutzen hält sich unserer Hosts nach in Grenzen. Besonders in reaktiven
Anwendungsarchitekturen wie React könnten sie jedoch für die Verarbeitung
unveränderlicher Daten hilfreich sein.
[00:46:36] ASYNC FEATURES, SET FEATURES, GROUP FEATURES, LANGUAGE PAIN POINTS
In der asynchronen Programmierung zeigt sich, dass Promise.allSettled hilfreich
ist, wenn auf mehrere Dateien für die Lokalisierung einer Anwendung gewartet
werden muss.
Neue Funktionen für Mengen (Sets) sind zwar interessant, aber wären mit einer
besseren grafischen Darstellung leichter verständlich gewesen.
Die Beantwortung der Nutzungshäufigkeit von groupBy wird kritisch hinterfragt.
Nur ein Drittel der Befragten gibt an, diese Funktion zu verwenden – doch
möglicherweise liegt das auch daran, dass viele bereits eigene Lösungen im
Einsatz haben.
Schließlich geht es um den Einsatz von Programmiersprachen und Werkzeugen. Die
Nutzung von TypeScript ist ungebrochen hoch, mit einer Umfragequote von nahezu
100 Prozent. Künstliche Intelligenz spielt im Entwicklungsalltag eine eher
untergeordnete Rolle: Ein Fünftel verzichtet ganz darauf. JavaScript wird von 95
Prozent der Befragten im Beruf eingesetzt, 40 Prozent programmieren auch in der
Freizeit damit – wobei hier eine gewisse Überschneidung wahrscheinlich ist.
[00:55:21] BROWSER APIS
Abschließend widmen sich den Hosts den Antworten zum Thema der Browser APIs. Es
gint viel Begeisterung für die bevorstehende Temporal-API, die die Arbeit mit
Zeitwerten erheblich vereinfachen wird. MDN. Ein oft geäußerter Wunsch bleibt
die Einführung statischer Typisierung direkt in JavaScript sowie umfangreichere
Standardbibliotheken.
LINKS
* State of JS – Outreach
ÄHNLICHE REVISION
* Revision 633: State of CSS 2024, Teil 1/3
* Revision 634: State of CSS 2024, Teil 2/3
* Revision 635: State of CSS 2024, Teil 3/3
GUID : http://workingdraft.de/?p=6992
Date de publication : 18/3/2025 à 07:59:01