Die Zukunft der Softwareentwicklung sind Softwareentwickler
(codemanship.wordpress.com)- Die seit Jahrzehnten wiederholten „Ende-der-Programmierer“-Prophezeiungen lagen jedes Mal falsch, und technischer Fortschritt hat stattdessen eher zu mehr Entwicklern und mehr Programmen geführt
- Verschiedene Automatisierungstechnologien wie WYSIWYG, 4GL, No-Code, LLM sind aufgetaucht, konnten in der Praxis aber den Bedarf an Entwicklern nicht verringern
- LLM-basierte Tools sind früheren Technologien bei Zuverlässigkeit und Wartbarkeit unterlegen und verursachen in den meisten Teams sinkende Produktivität und schlechtere Qualität
- Die eigentliche Schwierigkeit des Programmierens liegt nicht im Schreiben von Code, sondern in der Fähigkeit, vages menschliches Denken in Logik zu übersetzen; das bleibt weiterhin ein menschlicher Bereich
- Daher ist es unwahrscheinlich, dass AI Entwickler ersetzt; vielmehr dürfte die Nachfrage nach erfahrenen Entwicklern weiter steigen
Der sich wiederholende Zyklus vom „Ende der Programmierer“
- In den vergangenen 43 Jahren wurde bei verschiedensten Technologien wie Visual Basic, Delphi, Executable UML, No-Code, Low-Code behauptet, sie würden den Bedarf an Programmierern beseitigen
- In den 1970er und 1980er Jahren galt das für 4GL, 5GL, davor für Fortran, COBOL, und noch weiter zurück wurde sogar dem Compiler A-0 dieselbe Prophezeiung zugeschrieben
- Der frühe elektronische Computer COLOSSUS wurde durch physische Verdrahtung programmiert, und spätere Generationen wurden teils verspottet, sie seien „keine echten Programmierer“
- Tatsächlich ist die Zahl der Programmierer nicht gesunken, sondern gestiegen, was als typisches Beispiel für das Jevons-Paradoxon genannt wird
Der Unterschied zwischen LLMs und früheren Technologien
- Frühere Technologien haben tatsächlich die Geschwindigkeit der Softwareproduktion erhöht und zugleich Zuverlässigkeit ermöglicht, doch LLMs zeigen in den meisten Teams den gegenteiligen Effekt
- LLMs verschlechtern die Codequalität und erschweren die Wartung, was zu einer „LOSE-LOSE“-Situation führt
- Selbst mit demselben Prompt liefern sie nicht dasselbe Ergebnis; der erzeugte Code muss von menschlichen Entwicklern geprüft und korrigiert werden
- Es gibt keine Belege dafür, dass AI Entwickler ersetzt; jüngste Personalabbauten gehen auf wirtschaftliche Faktoren wie Überrekrutierung in der Pandemiezeit, steigende Zinsen und eine Konzentration von Investitionen auf Rechenzentren zurück
Die grundlegende Schwierigkeit des Programmierens
- Der Kern des Programmierens ist der Prozess, vages menschliches Denken in logisch präzises rechnerisches Denken zu überführen
- Diese Schwierigkeit hat sich von der Lochkartenzeit über COBOL und Visual Basic bis hin zu Python nicht verändert
- Da natürliche Sprache von Natur aus mehrdeutig und ungenau ist, wird es laut dem zitierten Dijkstra kein Zeitalter des Programmierens in Englisch oder Französisch geben
- Diese Denkweise lässt sich lernen, aber nicht jeder hat Freude daran oder beherrscht sie gut, und das Angebot an qualifizierten Fachkräften ist stets knapp
Grenzen von AI und Nachhaltigkeit
- AGI (Artificial General Intelligence) liegt weiterhin in weiter Ferne und erfordert Fähigkeiten auf menschlichem Niveau bei Verständnis, Schlussfolgern und Lernen
- Große LLMs verursachen enorme Kosten und Verluste und sind daher langfristig nicht nachhaltig
- Mit der Zeit könnte ihr Nutzen sinken, weil die Modelle an die Sprache und Bibliotheksversionen gebunden sind, auf denen sie trainiert wurden
- Aus diesen Gründen könnten riesige LLMs als unwirtschaftliches Experiment wie das Apollo-Mondprogramm enden
Ausblick auf die künftige Entwicklungsumgebung
- In naher Zukunft dürfte Softwareentwicklung so aussehen, dass assistierende Tools auf Basis kleiner Sprachmodelle unterstützende Rollen wie Prototyp-Generierung oder Code-Autovervollständigung übernehmen
- Wichtige Entscheidungen und die Qualitätssicherung bleiben jedoch in der Hand menschlicher Entwickler, und gemäß dem Jevons-Gesetz könnte die Nachfrage nach Entwicklern sogar weiter steigen
- Unternehmen sollten schon jetzt in die Einstellung und Ausbildung erfahrener Entwickler investieren; das ist unabhängig von AI eine Kernstrategie zur Steigerung von Produktivität und Zuverlässigkeit
1 Kommentare
Hacker-News-Kommentare
Nach mehreren Jahren Erfahrung mit agent-LLMs kam ich zu dem Schluss, dass sie für echte Programmierung überhaupt nicht nützlich waren
Sie konnten weder komplexe Low-Level-Bibliotheksprobleme noch nicht intuitive Bugs lösen und verstanden die Logik abstrahierter Schichten nicht
Allerdings waren sie hervorragend bei bereits tausendfach wiederholten Boilerplate-Arbeiten wie dem Bau einfacher Websites. Bei solchen simplen Aufgaben sparten sie mir einen Arbeitstag
Aber ich sehe keine Aussicht darauf, dass LLMs über diesen Bereich einfacher Aufgaben hinaus zu einem Verständnis komplexer Probleme gelangen
Low-Level-Coding oder das Beheben von Legacy-Bugs ist nicht alles, was Programmierung ausmacht. Auch der von LLMs erledigte Website-Bau ist eindeutig eine Form von Programmierung
Beim Verstehen großer Codebasen, beim Brainstorming für Features und beim Erkennen von Lücken in der Umsetzung habe ich enorm viel Zeit gespart
Ein vollständiger Ersatz ist unmöglich, aber als starkes Werkzeug für Engineers ist ihr Wert eindeutig
Aber die meisten Entwickler kombinieren Frameworks und Bibliotheken.
So wie Elektroautos für den schweren Gütertransport ungeeignet, für normale Fahrer aber völlig brauchbar sind, befinden sich auch LLMs in so einer Position
Vor ein paar Monaten hätte ich noch zugestimmt, aber jetzt scheint die Technik diese Grenze überschritten zu haben
Ich arbeite im ERP-Bereich, und dort steigern Agenten die Produktivität sprunghaft
Selbst wenn das Abo auf 500 Dollar im Monat steigen würde, wäre es mir den Preis weiter wert
Ich fürchte, dass die Prognose Realität werden könnte, wonach AI den Bedarf an Programmierern verringert
Schon jetzt habe ich das Gefühl, dass AI bei Design, Code Review, Bug-Erkennung und Projektplanung besser ist als ich
Ich scheine nur noch die Rolle eines Dirigenten zu spielen, der den Prozess steuert
Es fühlt sich beängstigend an, als würde ich allein die Arbeit erledigen, für die früher 20 Leute nötig waren
Nur Menschen sind gut in langfristiger Planung und Entscheidungsfindung. Wir haben Sorgen, Stolz und Emotionen, und genau das ist unsere wahre Stärke
AI ist nur ein Sack voller Wörter, ohne Liebe und ohne Beständigkeit
Schon mit grundlegender Kompetenz ist ein Mensch meiner Meinung nach deutlich besser
Wenn eine Person die Arbeit von 20 erledigt, dann waren diese 20 ursprünglich wohl nicht besonders produktiv
Entscheidend war dort, die Spülmaschine ständig am Laufen zu halten, und AI-Coding-Agenten sind wie genau diese Maschine
Ich gebe Prompts ein und prüfe und bereinige die Ergebnisse. Am Ende braucht es immer noch menschliche Hände
Wenn dank AI eine Person die Arbeit von 20 macht, dann ist das eine Produktivitätssteigerung und schafft größeren Wohlstand
Ich halte den aktuellen LLM-Hype für einen groß angelegten Eliza-Effekt
Verwandte Konzepte finden sich unter ELIZA effect und in Weizenbaums Buch Computer Power and Human Reason
LLMs scheinen sich dahin entwickelt zu haben, einflussreiche Personen (CEOs, Investoren) zu beeindrucken
Sie müssen kein echtes Expertenniveau erreichen; es reicht, wenn sie einfach „gut genug wirken“, um übernommen zu werden
Die wirkliche Bedrohung für Entwickler in den USA ist nicht AI, sondern Outsourcing
Ich bin Einwanderer und arbeite bei einem Finanzunternehmen in New York. 95 % der Mitarbeiter kommen aus dem Ausland, und auch bei Neueinstellungen handelt es sich überwiegend um Inhaber von H1B-Visa
Wie Dijkstra bereits vor 50 Jahren sagte, ist Programmieren in menschlicher Sprache unmöglich
Denn natürliche Sprache ist ihrem Wesen nach mehrdeutig und ungenau
Leute, die behaupten, „Prompts sind der neue Sourcecode“, sind wie Menschen, die Apps mit Excel bauen
Ich habe das Buch „Blood in the Machine“ gelesen und dadurch die Geschichte der Luddite-Bewegung kennengelernt
Vor der industriellen Revolution wurden Kleider in Familienarbeit hergestellt, doch mit dem Aufkommen von Maschinen brach das Handwerksgewerbe zusammen
Es wirkt, als gingen Entwickler jetzt denselben Weg
Beim Softwareentwickeln ist das Codieren aber nur ein Teil des gesamten Prozesses
So wie Toyota Handwerker ersetzt hat, werden Entwickler dasselbe Schicksal erleben, wenn LLMs auch die Wartung automatisieren
Trotz billiger Massenware gibt es weiterhin Designer und Premium-Marken. So wird es wohl auch mit Software sein
Früher hieß es, WYSIWYG-Werkzeuge wie Visual Basic und Delphi würden Programmierer ersetzen, aber dazu kam es nicht
Mit AI ist es ähnlich. Sie kann fragilen und instabilen Code erzeugen, aber echte Programmierer müssen ihn immer noch stabilisieren
Schon in den 1980er Jahren investierten Staat und Industrie massiv in 4GL, doch letztlich scheiterte das
Japans MITI Fourth Generation Project war ähnlich. Die damalige „Softwarekrise“ ähnelt dem heutigen AI-Hype
Dieser Artikel wirkt wie ein Loblied auf AI. Besonders der Teil am Ende, der einen Bildungsservice bewirbt, fühlte sich so an
Trotzdem ist es tatsächlich so, dass meine Produktivität gestiegen ist, daher scheint ein Rückgang der Entwicklernachfrage letztlich unvermeidlich
Vielmehr wirkte es wie ein von einem LLM geschriebener Text, der verschiedene Meinungen zusammenstückelt
Wenn sich die Entwicklungskosten halbieren, wird Software in noch mehr Bereichen eingesetzt werden
Siehe Jevons paradox
Wie beim in der Flugsicherheit verwendeten Swiss-Cheese-Modell kann man auch LLMs als eine Schicht in der Softwareentwicklung sehen
Dabei geht es darum, dass sich die Schwachstellen der einzelnen Schichten gegenseitig ausgleichen und so die Gesamtqualität steigt, auch wenn keine Schicht perfekt ist
Wir setzen sie noch nicht intelligent für Codevalidierung oder Testanalyse ein
Aber ich bin sicher, dass es irgendwann einen echten Use Case dafür geben wird
Um Sicherheit zu gewährleisten, muss am Ende doch ein Mensch alles überprüfen
Die Zuverlässigkeit von Flugsoftware und die Instabilität von LLMs sind nicht einmal ansatzweise vergleichbar