Vor ein paar Tagen sah ich in einer Tech-Gruppe, wie sich jemand beschwerte: Die KI schreibt doch jetzt so verdammt gut Code, Copilot und Cursor an, und der Code fließt wie Leitungswasser heraus – warum gibt es dann immer noch alte Programmierer, die in der ASCII-Tabelle nachschauen? Ist das nicht etwas aus der Steinzeit? Sofort brach eine Diskussion los, einige stimmten zu, und ein alter Kollege antwortete nur trocken: „Warte, bis du mal um drei Uhr morgens debuggst, dann weißt du warum.“
Ehrlich gesagt, die ASCII-Tabelle sieht wirklich unscheinbar aus. Eine Tabelle, 128 Zeichen, von 0 bis 127, jede Zahl entspricht einem Zeichen. Ein Leerzeichen ist 32, ein Zeilenumbruch ist 10, ein großes A ist 65, ein kleines a ist 97. So wenig, das wurde wahrscheinlich sogar im Informatikunterricht der Grundschule behandelt. Aber das Problem ist: Wenn es wirklich an die Arbeit geht, ist sie viel wichtiger, als man denkt.
KI schreibt wirklich beeindruckend Code. Man lässt sie einen Sortieralgorithmus generieren, und sie schreibt ihn in einer Sekunde, mit Kommentaren. Man lässt sie eine REST-API schreiben, und sie fügt sogar Fehlerbehandlung hinzu. Aber die KI hat eine Macke: Manchmal „erfindet“ sie etwas. Besonders beim Umgang mit Zeichenkodierung kann sie Code generieren, der auf den ersten Blick in Ordnung aussieht und beim Ausführen keinen Fehler wirft, aber das Ergebnis ist trotzdem falsch. Zum Beispiel lässt man sie eine Textdatei verarbeiten, sie matcht den Zeilenumbruch als \n, aber in der Datei ist es eigentlich \r\n. Der Code läuft unter Linux einwandfrei, aber sobald er unter Windows läuft, gibt es Probleme. Was macht man dann? In der ASCII-Tabelle nachschauen. 13 ist Wagenrücklauf, 10 ist Zeilenumbruch. Man sieht in einem Hex-Editor die Folge 0D 0A und versteht sofort, wo das Problem liegt.
Es gibt noch verstecktere Fälle. Zum Beispiel debuggt man ein altes System, und in der JSON-Antwort der Schnittstelle gibt es ein Feld, das offensichtlich leer aussieht, aber das Programm sagt, es sei nicht leer. Man gibt es aus und sieht ein \u00A0 darin – das ist ein geschütztes Leerzeichen, das in der ASCII-Tabelle 160 entspricht. Mit bloßem Auge sieht man es überhaupt nicht, aber die Codelogik bleibt daran hängen. Dann holt man die ASCII-Tabelle heraus, schaut nach: Ach, 160, nicht 32. Ändert die Bedingung, Problem gelöst. Wenn man sich nur auf die KI verlässt, macht sie vielleicht einen großen Umweg, und am Ende muss man doch selbst in der Tabelle nachschauen.
Alte Programmierer schauen in die ASCII-Tabelle, nicht weil sie die KI nicht nutzen können, sondern weil sie wissen, dass man sich auf manche Dinge bei der KI nicht verlassen kann. Die KI ist gut in Mustererkennung und Codegenerierung, aber ihr Verständnis für Details auf unterster Ebene ist manchmal wirklich nicht so zuverlässig wie eine Tabelle. Die ASCII-Tabelle ist wie das Einmaleins für Programmierer: einfach aussehend, aber in kritischen Momenten kann sie einen retten. Wenn man lange genug Code schreibt, merkt man, dass viele seltsame Probleme am Ende auf Zeichenkodierung zurückzuführen sind. Kauderwelsch, Abschneiden, fehlgeschlagene Vergleiche, nicht passende reguläre Ausdrücke – in neun von zehn Fällen hängt es mit ASCII-Codes zusammen.
Und das Nachschauen in der Tabelle ist an sich auch nicht mühsam. Man öffnet den Browser, sucht nach ASCII-Tabelle, eine Sekunde Sache. Oder man merkt sich einfach ein paar häufige: 32 Leerzeichen, 48 bis 57 sind die Ziffern 0 bis 9, 65 bis 90 sind Großbuchstaben, 97 bis 122 sind Kleinbuchstaben. Wenn man sich das merkt, hat man beim Betrachten von Hex-Daten ein sicheres Gefühl. Alte Programmierer lehnen neue Werkzeuge nicht ab, sie wissen nur, dass manche Grundlagen nicht verloren gehen dürfen. So stark die KI auch sein mag, sie ist nur ein Werkzeug; die eigentliche Entscheidung muss der Mensch treffen. Wenn man nicht einmal Zeichenkodierung klar versteht, kann man dann den von der KI generierten Code bedenkenlos in die Produktion übernehmen?
Also lacht nicht über alte Programmierer, die in der ASCII-Tabelle nachschauen. Sie schauen nicht in die Tabelle, sondern in Erfahrung und Selbstvertrauen. Wenn du eines Tages von einem versteckten \r oder \u00A0 so sehr geplagt wirst, dass du an deinem Leben zweifelst, wirst auch du still und leise diese Tabelle öffnen.