Kommentar: TypeScript ersetzt Bash? – Schwört ab, kehrt um!
TypeScript statt Bash? – Statt Sinnvolles zu erfinden, verlieren sich Entwickler im Meer der Möglichkeiten. Das muss aufhören, meint Martin Gerhard Loschwitz.
- Martin Loschwitz
FCKGW-RHQQ2-YXRKT-8TG6W-2B7Q8 – wenn Ihnen diese Zeichenfolge – ein berühmter Volumen-Lizenzschlüssel für Windows XP – etwas sagt, stehen die Chancen recht gut, dass Sie schon eine ganze Weile mit Computerkram zu tun haben. Vermutlich wissen Sie, wieso es nicht hilft, am Kabel zu wackeln, und wieso schon die Generation der alten IT-Haudegen serverless war. Wenn Sie mit Linux zu tun hatten, haben Sie vermutlich auch verinnerlicht, dass gute Systemadministration kein kompliziertes Gestrüpp aus komplexer Technik ist und Ressourcen wertvoll sind.
Gerade die jüngeren Semester unter den Entwicklerinnen und Entwicklern hingegen, so scheint es, tendieren in ihrer persönlichen Sturm-und-Drang-Phase zunehmend dazu, berauscht vom technisch Möglichen immer komplexere Lösungen zu konstruieren, deren praktischer Nutzen ausgesprochen übersichtlich ist. Mag man dem Rewrite der GNU-Coreutils in Rust aufgrund von Performancegewinnen noch Respekt abringen, wirkt der Ansatz, Bash flächendeckend durch TypeScript zu ersetzen, für erfahrene Administratoren hingegen wie eine Idee direkt aus Absurdistan. Und diese Idee zeigt, wie ein Umdenken gerade in Sachen Ausbildung dringend nötig ist.
Ich gehöre selbst nicht zur allerersten Nerd-Generation mit eigenem Amiga oder Atari, habe aber die Zeiten noch erlebt, in denen man den Download der neuen OpenBSD-Version (damals: 2.7) abends anwarf, damit er am nächsten Morgen fertig war. Gerade deshalb schlackere ich im gegenwärtigen IT-Alltag regelmäßig mit den Ohren: Der schonende Umgang mit Ressourcen nämlich, ganz gleich, ob mit Netz, Strom oder verfügbarem Speicherplatz, scheint gerade für die jüngere Generation kein Thema mehr zu sein. Stattdessen gilt das Prinzip: gemacht wird, was geht – und immer häufiger entsteht dabei Code, der existierende Funktionen lediglich nachahmt, dabei aber absurd aufgebläht ist und obendrein irgendwelche esoterischen Software-Komponenten involviert.
Besonders lästig: Die Proponenten derartiger Machwerke tun dabei so, als sei ihr Produkt der größte Coup seit Erfindung des Feuers. Gerade in der Open-Source-Welt, in der Vielfalt und Spezialisierung eigentlich Kardinaltugenden sind, treten in jüngerer Vergangenheit die Verfechter einzelner Lösungen immer aggressiver, mit fast missionarischem Eifer zugunsten der eigenen Präferenz auf.
Kennen Sie schon den kostenlosen iX-Newsletter? Jetzt anmelden und monatlich zum Erscheinungsdatum nichts verpassen: heise.de/s/NY1E In der nächsten Ausgabe geht's ums Titelthema der November-iX: Zero-Day-Lücken aufspüren und entschärfen.
TypeScript als Bash-Killer? – Hahaha
Ein hervorragendes Beispiel hierfür ist TypeScript. Das maßgeblich von Microsoft verantwortete Projekt mag seine Daseinsberechtigung in bestimmten Einsatzszenarien haben. Entwickelt wurde es als typensichere Alternative zu JavaScript, mit dem es zudem vollständig kompatibel ist. Komplexe Anwendungen auf Server- und Client-Seite lassen sich damit gut und sinnvoll erstellen. Statt das Werkzeug aber genau dafür einzusetzen, versteigen sich seine Verfechter in Allmachtsfantasien: TypeScript, so liest man, habe das Zeug zum Bash-Killer. Denn schließlich sei es für Entwickler bequemer, Code für die Infrastruktur (Infrastructure-as-Code, IaC) in derselben Sprache wie die der Anwendung zu verfassen. Obendrein gebe es die Bash auch gar nicht für Windows, TypeScript aber sehr wohl. In Summe könne das alles, so die verquere Logik, auf gar nichts anderes als das Ende der Bash hinauslaufen.
Man müsste lachen, wenn es nicht zum Weinen wäre: Glaubt man aktuellen Erhebungen, rangiert TypeScript auf Rang 8 der beliebtesten Programmiersprachen, weit hinter Python, C/C++, PHP, R, Java und sogar dem Urahn JavaScript. Und nicht nur das: Die Vorstellung, dass ein sattelfester Linux-Admin erst mal Node.js installiert, um einfache administrative Aufgaben auf seinem System zu erledigen, ist aberwitzig. Ein zentraler Vorteil der Bash ist ja gerade, dass ihre Syntax relativ leicht zu erlernen ist und sie praktisch auf jedem zeitgenössischen Linux-System zur Verfügung steht.
Obendrein ist Bash-Wissen weitverbreitet. Die Skripte anderer Admins sind im Regelfall gut zu durchdringen. Davon profitieren auch Anwendungsentwickler, wenn sie bei DevOps-Arbeiten auf Probleme stoßen, die sie allein nicht lösen können. Wer sich den IaC-Leim für seine Anwendung in TypeScript selbst zimmert, statt auf etablierte Werkzeuge wie Terraform oder Ansible zu setzen, ist im Problemfall aber auf sich allein gestellt. Wechselt man dann die Firma, hinterlässt man den Nachfolgenden ein schwer zu durchdringendes Bastelwerk. "Nach mir die Sintflut" verbietet sich indes im professionellen IT-Umfeld schlicht und ergreifend.
Ein größeres Problem
Die Bash durch TypeScript zu ersetzen, klingt nicht zuletzt deshalb so absurd, weil man in den vergangenen 25 Jahren etliche Lösungen aus der Wundertüte hat kommen und kurze Zeit später wieder verschwinden sehen. Wenn erfahrene Systemverwalter bei derartigen Vorschlägen auf die Barrikaden gehen, liegt das nicht primär an Innovationsfeindlichkeit. Sondern vor allem daran, dass Admins aus leidgeplagter Erfahrung eine ungute Vermutung in der Magengegend verspüren, wer die Sauerei wegmachen darf, wenn die Hype-Blase platzt. Technisch sinnvolle Innovation setzt sich erwiesenermaßen langfristig durch, wie Linux-Container oder die immer stärker zunehmende Automatisierung zeigen.
Die Verantwortung für das Debakel trifft dabei nicht primär die jungen Entwicklerinnen und Entwickler, die völlig zurecht mit dem Anspruch ins Berufsleben starten, eine eigene Delle im Universum zu hinterlassen. Am Pranger sollten stattdessen die Institutionen stehen, die junge ITler ausbilden: Getrieben vom permanenten Drang, das nächste Einhorn zu fabrizieren, hat die Industrie in den vergangenen Dekaden vor allem die Ausbildung von Entwicklern gefordert. Ausbildende Institutionen haben sich diesem Wunsch gebeugt und ihre Studiengänge und Ausbildungen so weit auf Entwicklung hin getrimmt, dass für die theoretischen Grundlagen insbesondere der Administration von IT-Infrastruktur kaum noch Raum übrig ist.
Dadurch erklärt sich im Übrigen auch, dass sich auf der einen Seite die arbeitslosen Full-Stack-Entwickler stapeln, während die gesamte Branche andererseits händeringend nach Infrastrukturexperten sucht. Das Problem sitzt tief: An diversen Fachhochschulen lässt sich problemlos ein Informatik-Bachelor erwerben, ohne ein Linux-System auch nur aus der Nähe gesehen, geschweige denn eines installiert zu haben. Fundamentale Grundkenntnisse zu aktuellen Systemen, Netzwerken und zu Storage sowie zum schonenden Umgang mit Ressourcen sind schlicht nicht vorhanden. Dass bedingt dadurch mit manchen Absolventen die Pferde durchgehen, ist nachvollziehbar.
Gerade in Sachen Ausbildung ist ein Umdenken dringend nötig: Konzepte wie DevOps sind nur umsetzbar, wenn alle Handelnden ein grundlegendes und gemeinsames Verständnis der Materie haben. Das geht weit über die Fähigkeit hinaus, Programmier- und Skriptsprachen anzuwenden. Wer keine Vorstellung davon hat, wie komplex die Bereitstellung von CPUs, RAM, Speicher, Netz & Co. ist, hält IT-Infrastruktur für eine nachwachsende Ressource und geht allzu sorglos mit ihr um. Das ist letztlich weder sinnvoll noch innovativ. Den jungen Wilden sei indes in Erinnerung gerufen: Nicht alles, was theoretisch möglich ist, ist praktisch sinnvoll. "Keep it simple, stupid" ist auch eine Kardinaltugend innerhalb der F/LOSS-Community. Aus gutem Grund.
(who)