Zum Hauptinhalt springen
Blogbeitrag

Coding-Unterstützung im Lauf der Zeit

Coding-Unterstützung im Lauf der Zeit. Das Thema Künstliche Intelligenz und Agenten rückt in der Softwareentwicklung immer stärker in den Fokus – sei es in Form intelligenter IDEs, automatisierter Code‑Reviews oder KI‑basierten „Programmier‑Assistenten“, die Teile einer Anwendung von sich aus mitdenken. Wir nehmen diese Entwicklung zum Anlass, einen Blick zurück in die Geschichte der Softwareentwicklung zu werfen.

In diesem Beitrag beschreiben wir die Entwicklung von Werkzeugen in der Softwaretechnik und zeigen, wie sich Compiler, IDEs, Versionsverwaltung, DevOps‑Pipelines und schließlich KI‑Agenten auf den Entwicklungsalltag ausgewirkt haben. Was heute selbstverständlich erscheint, war jahrzehntelang harte Handarbeit. Ein Rückblick zeigt, dass jede Generation von Werkzeugen im Kern dasselbe Problem adressiert: Entwickler:innen von Routinearbeit befreien, damit sie sich auf das eigentliche Problem konzentrieren können.

1950er: Erste Compiler und Assemblierer. 1952 entwickelt Grace Hopper mit A‑0 einen der ersten Compiler, der symbolischen Code automatisch in Maschinencode übersetzt und damit das direkte Arbeiten mit Bitmustern stark reduziert. Statt alles in reinem Maschinencode oder mühsamem Assembler zu schreiben, konnten Entwickler:innen erstmalig mit symbolischen Codes und Unterprogrammen arbeiten, die automatisch zu Maschinencode „kompiliert“ wurden (innovation.world). Hopper nutzte bereits gesammelte Unterprogramme auf Magnetband, wies ihnen Nummern zu und ließ A‑0 diese automatisch laden und adressieren. Das war der Ursprung moderner Bibliotheken und Module: Programmierer:innen konnten wiederkehrende Operationen einmal definieren und dann nur noch „aufrufen“, statt sie immer neu in Maschinencode zu schreiben (computinghistory.org.uk).

1950er/1960er: Hochsprachen und Standard‑Compiler. Jede Fortran‑ bzw. COBOL‑Ausgabe wurde mit einem Compiler in ausführbaren Code verwandelt; später zeigten schon frühe Compiler, dass dieselben Quellen auf mehreren Plattformen neu kompiliert werden konnten. Entwickler:innen konnten so einmal geschriebenen Code anpassen und auf anderen Maschinen nutzen, ohne ihn von Grund auf neu in Assembler oder Maschinencode zu schreiben. Fortran erlaubte Ingenieur:innen, Formeln so zu schreiben, wie sie in der Physik oder Mathematik auftauchten, um sich somit näher an der Fachdomäne zu orientieren (historyofinformation.com).

Mit Hochsprachen war das Problem der maschinennahen Programmierung weitgehend gelöst. Doch wer in den 1970ern Software schrieb, kämpfte mit einem neuen Engpass: Der Werkzeugkasten war zersplittert.

1970er: C, Unix und bessere Editoren. Die Kombination von C, make, vi und Debug‑Tools wurde zum quasi‑Standard unter Unix‑Systemen; Projekte konnten deshalb leichter zwischen Rechnern und Entwickler:innen geteilt werden (www.wolldingwacht.de). vi bot einen schnellen, modalen Vollbild‑Editor, der direkt auf Terminals lief und sich besonders gut für Programmiertexte eignete (Suchen, Ersetzen, schnelles Navigieren). Mit make konnten Entwickler:innen einmal ein Makefile schreiben, die Abhängigkeiten zwischen Sourcen und Zielfiles beschrieb; danach reichte ein einzelner Befehl, um nur geänderte Dateien neu zu kompilieren und zu verlinken (thelinuxcode.com).

1980er: Integrierte Build‑Tools und frühe IDE‑Konzepte. Entwicklungsumgebungen bündeln Editor, Compiler, Debugger und Projektverwaltung in einem Programm; Build‑Automatisierung reduziert manuelle Arbeitsschritte bei der Erstellung von Binaries. Entwickler:innen können schneller Prototypen testen, Funktionen iterieren und Fehler lokalisieren, statt zwischen Editor, Terminal und Debugger zu springen (www.gravitee.io).

1986–1990er: Versionsverwaltung (RCS, CVS, später Subversion). Mit RCS und später CVS mussten Entwickler:innen nicht mehr warten, bis jemand eine Datei „freigibt“; sie arbeiteten in lokalen Kopien und konnten unabhängig voneinander committen, solange ihre Änderungen nicht im gleichen Code‑Abschnitt lagen. RCS und CVS erkannten, wenn zwei Entwickler:innen dieselbe Datei geändert hatten, und versuchten, die Änderungen automatisch zu mergen; nur bei Konflikten (gleiche Zeilen von beiden) wurde der Konflikt markiert und musste manuell gelöst werden (test.mcpressonline.com).

1990er: Moderne IDEs. IDEs integrieren Code‑Vervollständigung, Debugger, Projekt‑Explorer, grafische UI‑Designer und erste Versionskontroll‑Plugins; Entwickler:innen müssen seltener zwischen Tools wechseln, was den Workflow stark beschleunigt. Features wie Code‑Vervollständigung, Syntax‑Highlighting, Refactoring‑Hilfen und integrierte Dokumentation machen das Schreiben und Verstehen von Code einfacher, insbesondere für Neueinsteiger:innen (qodo.ai).

Die IDE hatte den Arbeitsplatz von Entwickler:innen transformiert. Doch jenseits des Editors blieben die Prozesse schwerfällig: Releases dauerten Monate, Tests liefen manuell, und Integration war ein Ereignis, kein Kontinuum.

ab ca. 1999: Agile Methoden als Treiber für Tooling. Methoden wie Extreme Programming (XP) und später Scrum erhöhen die Frequenz von Builds, Tests und Releases und begünstigen damit Werkzeuge für Testautomatisierung, Continuous Integration und kurze Feedback‑Zyklen. XP‑Praktiken wie TDD und Continuous Integration sowie Scrum‑Bestrebungen nach häufigen Releasen machen Testautomatisierung praktisch Pflicht, weil manuelle Tests den Zyklus zu stark verlangsamen würden (www.pathtoprogramming.com).

2000er: CI‑Server und Build‑Automatisierung (z. B. Jenkins). Continuous‑Integration‑Tools führen bei jedem Commit automatisiert Builds und Tests aus und finden Integrationsfehler viel früher, was manuelle Nightly‑Builds weitgehend ersetzt. Statt einmal pro Nacht zu erfahren, ob ein großer Stapel Code gebaut werden kann, erhält jede:r Entwickler:in innerhalb von Minuten Rückmeldung nach einem Commit (q.agency).

ab 2005: Verteilte Versionsverwaltung (Git). Git ermöglicht lokale Commits, Branches und Merges mit vollständiger Projekt‑Historie auf jedem Entwicklerrechner; das vereinfacht Branching‑Strategien und parallele Entwicklung enorm. Git hat im Vergleich zu früheren Versionskontroll‑Systemen (z. B. RCS, CVS, Subversion) vor allem durch seine verteilte Architektur klare Vorteile, die Arbeit deutlich komfortabler, flexibler und schneller machen (about.gitlab.com).

ab ca. 2007/2008: DevOps‑Werkzeuge und CI/CD‑Pipelines. DevOps‑Praktiken kombinieren Build‑, Test‑ und Deployment‑Automatisierung, sodass Code von Commit bis Produktion weitgehend automatisch durchläuft und Releases von Monaten auf Stunden oder Minuten schrumpfen. Da jeder Change automatisch gebaut und getestet wird, tauchen Integrations‑ und Qualitätsprobleme früher auf – oft direkt beim Merge in den Main‑Branch (infoworld.com). Studien berichten, dass Teams mit reifer Deployment‑Automatisierung deutlich mehr Zeit (über 40 %) in neue Funktionalität statt in Wartung und manuelle Deployments investieren (techifysolutions.com).

2010er: Cloud‑basierte Kollaborationsplattformen (GitHub, GitLab, Azure DevOps).Gehostete Git‑Repos mit Pull Requests, Code‑Reviews, Issue‑Tracking und integrierten CI/CD‑Pipelines verlagern große Teile der Entwicklungswerkzeuge ins Web und vereinfachen die Zusammenarbeit weltweit. Weil alles im Web liegt, können Teams mit Mit‑Entwickler:innen, Open‑Source‑Mitwirkenden oder Kund:innen aus der ganzen Welt gemeinsam arbeiten, ohne lokale Server‑Setups oder komplexe Zugriffs‑Steuerung (www.geeksforgeeks.org). 

2010er/2020er: Hochentwickelte IDEs (VS Code, IntelliJ & Co.). Moderne IDEs bieten intelligente Code‑Vervollständigung, Refactoring, integrierte Debugger, Test‑Runner und Build‑/CI‑Integration, sodass ein Großteil des Lebenszyklus aus einer Umgebung gesteuert werden kann. Das führt zu saubererem, konsistenterem und wartbarerem Code, insbesondere bei größeren Projekten (www.gravitee.io).

ab späte 2010er/2020er: KI‑gestützte Entwicklungstools. KI‑basierte Assistenten schlagen Code vor, generieren Tests und helfen bei Refactorings, was Routinetätigkeiten weiter reduziert und den Fokus auf Architektur und Fachlogik verschiebt. KI‑Assistenten übernehmen viel der „Maschinenarbeit“: Code‑Vervollständigung, Boilerplate‑Strukturen, Hilfsfunktionen, einfache Tests und stumpfe Refactorings (www.iese.fraunhofer.de).

Bis hier ging es darum, menschliche Arbeit besser zu organisieren, zu integrieren und zu beschleunigen. Mit dem Aufkommen KI-gestützter Werkzeuge verschiebt sich die Frage grundlegend: nicht mehr nur „wie organisieren wir die Arbeit?", sondern „wer macht die Arbeit?"

ca. 2024–2026: KI‑Coding‑Agenten mit hoher Autonomie. Moderne KI‑Coding‑Agenten (z. B. GitHub Copilot Coding Agent, Claude Code, Cursor Composer, …) können nicht nur Snippets vorschlagen, sondern ganze Features, Tests und Fixes autonom über mehrere Dateien verteilt erstellen und iterativ testen. KI‑Agenten übernehmen Teile der Implementierung; Menschen fokussieren sich stärker auf Architektur, Domänenlogik, Security‑Fragen und Code‑Reviews (swfte.comomr.comblog.fka.dev).

In diesem Zeitstrahl haben wir wichtige Meilensteine in der Softwareentwicklung aufgezeigt. In unserem nächsten Beitrag widmen wir uns den KI-Coding-Agenten und werfen einen detaillierteren Blick auf die aktuellen Entwicklungen.

Diesen Beitrag haben Burkhard Hoppenstedt (Hochschule für Wirtschaft und Umwelt Nürtingen-Geislingen) und Dominik Herrmann (Otto-Friedrich-Universität Bamberg) geschrieben.

Der Text erschien zuerst in unserem Newsletter GI-Radar. Alle Ausgaben gibt es hier zum Nachlesen. Sie haben auch einen Vorschlag für ein Thema? Wir freuen uns über Ihre Nachricht an redaktion@gi-radar.de.

Dies zeigt die Softwareentwicklung: Von alten Computern und Lochkarten über moderne Bildschirme bis hin zu einem KI-Roboter, der Entwickler:innen bei der Arbeit unterstützt. (© Chat Gpt)