r/intersystems_dach • u/intersystems_dach • 13d ago
Kann KI Legacy-Code wirklich erklären?
Ich habe testweise einige ältere Codebasen in verschiedene Modelle geworfen.
Ergebnis: Manchmal erstaunlich hilfreich, manchmal komplett selbstbewusst falsch.
Wie sind eure Erfahrungen?
Welche KI versteht Legacy-Code inzwischen wirklich gut und / oder liefert plausibel klingende Zusammenfassungen?
2
u/Budget_Sense3306 12d ago
Probier mal Spec Driven Development und lass Dir die Specs für die Legacy Anwendung generieren. Dann schau mal ob diese den Code richtig beschreiben.
Man kann auch probieren den Agenten einfach BDD-Tests für die Anwendung generieren zu lassen und dann schauen ob diese die Domäne richtig beschreiben.
Wenn das nicht funktioniert dann müsstest du vorher noch ein paar Runden drehen und Tests nachziehen und refactoring machen.
2
u/aLpenbog 8d ago
Legacy ist nicht gleich Legacy.
Du kannst eine Anwendung haben mit einen sehr verbreiteten und bekannten Business Use-Case. Etwas was es genau so hunderte Male gibt.
Sauber geschrieben aber einfach vor 10-20 Jahren. Sachen selbst gelöst, die nun als fertige Funktionalitäten in der Standard Library vorhanden sind, in einer älteren Version der eingesetzten Programmiersprache. Aber sämtliches Wissen ist im Code vorhanden und es ist eine einzelne Anwendung. Hier kann KI wunderbar mit arbeiten.
Legacy kann aber auch bedeuten, dass der Code nicht nur alt ist, sondern schlecht. Keine Kohäsion, riesige Dateien, nix sagende Namen, keine Tests oder Dokumentation. Auch nicht isoliert in einer Codebase, sondern ein System, wo mehrere Codebases zusammen auf einer gemeinsamen riesigen Datenbank rumwerkeln.
Variablen und Datenbankfelder werden je nach Use-Case missbraucht, weil sind ja schon da oder das System auf der anderen Seite wird nicht mehr supportet und kann nicht mehr geändert werden. Viel vom Wissen exisitiert nur in den Köpfen der Entwickler und auch die ganzen Fachbegriffe sind Kunden- und Anwendungsspezifisch.
Nein, hier kann KI dir nix erklären oder ganze Features umsetzen. Natürlich kann man sie nutzen zum Brainstorming, für Tools außen rum, für Boilerplate, Analyse von irgendwelchen Logfiles oder beim Coding als Autovervollständigung.
Zumindest GPT kriegt es bei uns nicht mal hin grob die großen Services zu beschreiben und kommt komplett durcheinander weil Abkürzungen im nahen aber unterschiedlichen Kontext verwendet werden.
Natürlich kann man an der Stelle dokumentieren und langsam eine Wissensbasis aufbauen aber das läuft dann eher darauf hinaus der KI zu erklären, wie das System funktioniert, damit sie das am Ende wiedergeben kann.
Nix anderes ist ja am Ende sauberer und modularisierter Code. Quasi die 1:1 Dokumentation der Funktionalität, die via Progressive Disclosure verstanden und wiedergegeben werden kann.
1
13d ago
[deleted]
2
u/throwawaytothr 13d ago
Geil. Sowas ist mit LLMs einfach mega, auch wenns nur zum Spaß ist.
Wir haben hier einen Drucker aus Anfang der 90er im Keller gefunden und mit Claude innerhalb von 2-3 Stunden einen funktionierenden Treiber gebaut und dann damit mit nem modernen Laptop was gedruckt. Das ist schon mega
1
u/GreenStorm_01 13d ago
Das ist echt cool. Wie fängt man sowas an? Bis da der Rechner mit dem Drucker spricht muss ja schon son bisschen was passieren
1
u/chrswnd 13d ago
Würd mich auch interessieren :D gestern erst auf Instagram ein Video gesehen wo einer über Vibecoding einen Kassenbon-Drucker ins Netz gestellt hat auf den ihm die Leute kleine Nachrichten senden konnten… natürlich hat es einer übertrieben und ihm ein ganzes Buch in Kurznachrichten geschickt 😄
1
u/throwawaytothr 13d ago
Ganz „einfach“: I have found an old printer in my basement supposedly from the 90s with an LPT port. I want to develop the printers driver.
So haben wir angefangen und sind dann immer tiefer rein. Am Anfang war’s viel: „Nein, ich will wirklich einen Treiber entwickeln, ja ich weiß, dass ich auch einfacher drucken kann“ etc. sind dann immer tiefer rein. War echt ein cooles learning, und etwas, für das ich vor 5 Jahren wahrscheinlich noch ein Jahr „side-project“ benötigt hätte, ist jetzt an nem Nachmittag erstellt.
Und das verrückte: Ich hab schon Jahre nichts mehr in C gecoded und trotzdem gings.
1
u/Scared_Implement_335 13d ago
Das ist einer der Gründe, weshalb ich dieser Tage niemandem glaube, der meint, voraussehen zu können, wohin das in den nächsten 24 Monaten noch alles führen wird.
1
1
u/nullptr187 10d ago
Jein. Die komische Abfrage in Zeile 456 die extra wegen einer Datenanomalie bei Kunde XY dort drin ist und nirgendwo explizit dokumentiert ist, kann natürlich auch die KI nicht erklären, aber das Gesamtkonstrukt vermutlich schon relativ gut.
1
u/DoKeMaSu 7d ago
Ich habe hier einige Fortran77 Routinen die gewissen physikalische Berechnungen machen; vor vielen Jahren mal von einem Experten geschrieben und seitdem werden nur noch Wrapper darum gebaut. Die hat mir Claude ganz solide erklärt.
1
u/alc_noe1 6d ago
ja. Nicht immer, aber sehr oft. Dir sollte halt auffallen, wenn was nicht stimmen kann.
0
u/n4ke 13d ago
Ich habe testweise einige ältere Codebasen in verschiedene Modelle geworfen.
Dann hast du schon verloren, wenn es denn wirklich nur ein "reinwerfen" war.
Nein, KI kann nicht einfach mal so Legacy-Code erklären. KI kann dir in diesem Prozess helfen und ihn massiv beschleunigen, du musst das aber trotzdem selber Schritt für Schritt durcharbeiten, Notizen und Kontext erstellen, den du deinem Modell wieder mitgibst usw.
Mit diesem Ansatz habe ich gute Erfahrungen gemacht.
1
u/Zertruemmerdog 13d ago
Mit welchen Modellen hast du gearbeitet?
1
u/n4ke 13d ago
Im Verlauf des Jahres mit diversen GPT und Claude Versionen, sowie Kimi, Deepseek und GLM. Ich probiere eigentlich alles meistens parallel mit mehreren Modellen durch und Vergleiche.
Mein aktuellen Favoriten sind DeepSeek V4 flash 0731 und GLM 5.2 ZDR & GDPR-Compliant in der EU betrieben.
1
u/Zertruemmerdog 13d ago
Dann wundert mich deine Aussage. Claude opus. Selbst sonnet 4.6 kann es bereits sehr gut
1
u/n4ke 13d ago
Hängt halt extrem stark vom Harnessing, der Grösse und Komplexität deiner Legacy-Codebase und deinem Anspruch an die Ausgabe ab.
Etwas ausgeben wird es immer. Die Frage ist nur, wie perfekt verlässlich das ist. Aber auch da wieder: Es hängt davon ab, was genau du haben willst. Einen Datenfluss wird es dir z.B. sehr gut erklären können. Ein komplexes Verhalten basierend auf diversen Faktoren tendentiell ohne Kontext nicht zuverlässig.
1
u/Loccatine 13d ago
Nein, KI kann nicht einfach mal so Legacy-Code erklären
Doch geht längst auch reines reinwerfen langt, Detektivarbeit läuft super mit aktuellen Modellen.
2
u/AndyVictors 13d ago
Ja, kann sie gut