Hallo Freunde,
heute bin ich einmal in der Laune über ein Thema aus der Softwareentwicklung zu reden. Bugs. Auslöser des ganzes ist, dass ein Bug in der universallen Turing Maschine gefunden wurde. Es hat nur 54 Jahre gedauert bis er gefunden wurde, in vergleichsweise einfachen Software.
Die Grundlagen
Bevor wir uns Anschauen was da jetzt los ist, gehen wir einmal ein paar Themen an. Ich bearbeite es sehr Oberflächlich, für eine tiefere Einarbeitung in das Thema, habe ich ehrlich gesagt gerade keine Zeit. Vor allem Turing Maschinen und die Theoretische Informatik an sich sind eine ganze Serie wert.
Was ein Bug ist
Historisch hat man bei den alten röhren Computern gesagt, dass da Käfer, also Bugs, in den Röhren rumlaufen wenn was schief lief. Als wir dann begonnen keine Schränke und Häuser mehr für ein paar KB Rechenleistung zu nutzen, war diese Geschichte keine Ausrede mehr für Fehler in der Software - in einem kleinen Prozessor kann kein Käfer wirklich rumrennen. Gut in den Röhren auch nicht, aber man schiebt die Fehler immernoch auf die Bugs.
Turing Maschinen
Bei einer Turing Maschine handelt es sich vereinfacht gesagt um einen Automaten, also eine Maschine die in der Lage ist eine Eingabe zu verarbeiten. Wenn man es wirklich auf das einfachste Modell herunterbrechen will, handelt es sich um die Mathematische Grundlage für unsere heutigen Computer.
Die Software mit dem Bug
Der Bug der jetzt gefunden wurde, steckt in einer praktischen Umsetzung der universallen Turing Maschine, also der Umsetzung der mathematischen Grundlage in Code. Hierbei handelt es sich aus heutiger Sicht um relativ einfachen Code, gut aus heutiger sicht, vor 54 Jahren war das noch etwas anders.
Die aktuelle Situation
Und nun zu dem was los ist. Vorweg, es ist kein Bug der heute große Auswirkungen hat. Aber es ist ein schönes Beispiel für Bugs. Der Code ist seit 54 Jahren bekannt. Also 54 Jahre in denen hunderte, tausende, wahrscheinlich sogar zehntausende Leute diesen Code gesehen haben. Er wurde etliche Male ausgeführt, getestet und was ist? Nach 54 Jahren fällt ein Bug auf, ein kleiner Fehler der dafür sorgt das die Software nicht funktioniert wie sie sollte.
Und das ist so ein Ding heute. Es wird mehr Code produziert wie je sofort. Und dieser Code ist so schlecht getestet wie nie zuvor. Oft gibt es keine Review. Der Code wird geschrieben, er wird gepusht, wenn man mit Git arbeitet und dann geht er ins Produkt. Und dann wundert man sich über Bugs und Sicherheitslücken.
Getester und reviewter Code kostet Geld und Entwicklerstunden. Ich kenne es aus der Praxis vor allem so, dass diese Aufgabe gerne genutzt wird um neue Mitarbeiter einzuarbeiten, aber nicht wirklich um Code auf Herz und Nieren zu prüfen.
Ach ich weiß nicht was ich jetzt noch sagen soll. Hier ist ein Fehler 54 Jahre nicht aufgefallen, in Open Source Code, denn tausende Fachleute gesehen haben. Und jetzt stellt euch vor was in dem Code drinnen steckt, mit dem ihr jeden Tag arbeitet, der weitaus komplexer ist, von weniger und oft schlechter qualifizierten Leuten gewartet wird...
Ach Leute, ich melde mich mit dem Gedanken ab.