English lernen mit Stackoverflow

Es gibt im Internet relativ viele Blogs auf denen zu lesen ist, dass Stackoverflow zwar früher einmal cool war, inzwischen dort aber nur die Trolle abhängen und das die Qualität der Antworten aufgrund des verfehlten Voting-Anreizes abgenommen hat. Dieses Anti-Stackoverflow-Bashing kann ich nicht unterstützen. Mein Eindruck ist, dass diese Webseite nicht nur eine Zukunft hat, sondern dass sie auch überaus nützlich ist für die Autoren ist. Am besten sucht man sich ein Thema aus, von dem man selber sehr wenig Ahnung hat, und man erst ein wenig recherchieren muss. Indem man dieses Thema dann allgemeinverständlich erklären muss, lernt man nicht nur das Thema besser zu verstehen sondern wird obendrein auch noch gezwungen die englische Sprache zu verwenden. Ob das für das Forum insgesamt förderlich ist, wenn dort erstens jemand antwortet, dessen Muttersprache nicht Englisch ist und der zweitens sich gerade erst in ein Thema eingelesen hat, aber schon den Erklär-Bär spielt, sei mal dahingestellt aber hier kann man der Community voll und ganz vertrauen. Oft kommt es nähmlich vor, dass falsche Antworten als solche entlarvt werden und nicht unüblich ist es, dass Moderatoren den Text überarbeiten und Rechtschreibfehler korrigieren. Beides sollte man nicht als Angriff gegen die eigene Person verstehen, sondern als Lernunterstützung.

Lange Rede kurzer Sinn. Ich persönlich kann nur gutes über Stackoverflow berichten. Mein Punktestand ging dort bisher konstant nach oben und Frust oder gehässige Kommentare gab es auch keine. Es ist zwar richtig, dass das Netzwerk eine Art von Gruppendruck aufbaut weil erstens, dort tatsächlich einige Trolle unterwegs sind und auch die Moderatoren öfter mal ihre Weltsicht darlegen, aber was solls. Auf der anderen Seiten gibt es kein Forum in dem mehr Traffic existiert und wo es mehr Sinn macht sich zu beteiligen. Davon abgesehen ist Stackoverflow auch bei einer rein passiven Nutzung ein reichhaltiger Fundus. Wer mal bei Youtube nach „Primzahl Java“ sucht oder sonst ein Programmierproblem schnell erklärt haben will, der wird mit hoher Wahrscheinlichkeit auf eine Stackoverflow Seite umgeleitet.

ETWAS POSTEN
Um bei Stackoverflow etwas zu posten, macht es wenig Sinn die Hauptseite zu konsultieren. Dort bekommt man nur angezeigt, dass allein in den letzten 5 Minuten ein Dutzend neuer Fragen aus allen Bereichen der Informatik eingetrudelt sind. Besser ist es, thematisch sich der Sache anzunehmen und nach einem konkreten Stichwort (tag) zu suchen was einen interessiert. Ein Stackoverflow-tag ist vergleichbar mit einer Usenet-Gruppe, wo es um ein sehr spezielles Thema geht. Hier ist die Wahrscheinlichkeit höher dass man eine interessante Frage findet, die man gewissenhaft beantworten kann. Das interessante bei Stackoverflow ist, dass dort die Antwortzeiten relativ knapp bemessen sind. Es ist selten, dass eine Frage länger als 24 Stunden keinerlei Response erhält. Und zwar deshalb, weil Stackoverflow von sehr vielen Programmierern weltweit genutzt wird. Nach der letzten Schätzung sind es angeblich knapp 1 Million Leute die sich dort tummeln.

Was die Leute antreibt ist simpel: sie sind inhaltlich an einem Thema interessiert und sie wollen in den Genuß kommen, von vielen Leuten Anerkennung zu erhalten. Es wird zwar oft betont, dass Stackoverflow kein Social Network wie Facebook wäre, aber die Höhe des Traffic ist vergleich. Auf beiden Plattformen kann man eine hohe Reichweite erzielen.

Obwohl es bei Stackoverflow wie in allen moderierten Foren einen relativ starken Konformitätsdruck gibt der explizite wie auch implizite Spielregeln umfasst bleibt doch immer auch Raum seine persönliche Meinung herauszuarbeiten. Solange man grob am Thema bleibt, kann man häufig genug auch unsachliche Argumente unterbringen. Man ist zwar nicht ganz so frei wie im eigenen Blog weil letztlich Stackoverflow der Boss ist und der Fragende am Ende entscheidet ob einer Antwort akzeptert, aber dafür hat man die Gewissheit, dass man gelesen wird.

Dieses Gefühl, dass das eigene Posting einen Wert besitzt. dürfte der Hauptgrund sein, warum sowohl Facebook als auch Stackoverflow soviel Zustimmung erfährt. Die Kernidee ist es, eine weltweite Plattform zu nutzen, die strukturell bedingt den Traffic generiert. Es ist vergleichbar mit einer Hafenstadt im Mittelalter die als Knotenpunkt funktionierte. Sowohl bei Stackoverflow als auch bei Facebook wird nichts gehandelt im eigentlichen Sinne. Die einzigem die damit Gewinne erwirtschaften sind anonyme Konzerne und die Werbewirtschaft die Anzeigen schaltet. Die User hingegen sind nur Avatare, die wegen des Traffics kommen und selbst wieder für Traffic sorgen. Wenn man Stackoverflow mit dem Usenet vergleicht (was eine nicht-kommerzielle akademische Erfindung war), dann ist Stackoverflow um einiges attraktiver. Schauen wir uns dochmal das werbefreie Usenet einmal an. Wurde je von Google ein Google Posting ganz nach oben gerankt wenn man ein Programmierproblem gesucht hat? Gibt es im Usenet die Gewissheit, dass man auf ein Posting eine Antwort erhält? Leider nicht, heutige Usenet-Gruppen sind nichts anderes als Geisterstädte. Selbst zu ihren Glanzzeiten tummelten sich dort nur wenige Leute, selbst Spammer posten heute nicht mehr ins Usenet. Im Gegensatz dazu gibt es bei Facebook oder bei Stackoverflow keinerlei echten Spam. Die Betreiber achten peinlich darauf, dass nur Bannerwerbung geschaltet wird, in den Threads selber ist jede Form von Werbung verpönt. Einen Link zu posten der auf die eigene Webseite oder auf das eigene Produkt verweist wäre ein maximaler Tabubruch. Und schaut man die Threads einmal durch so gibt es dort sowas auch nicht. Die seltenen Fälle wo im Thread Werbung existierte wurden sofort von Moderatoren gedownvoted oder sogar gelöscht.

KRITIK
Der Ernstfall einer jeden Stackoverflow Historie ist das Empfangen eines Downvotes. Das geht relativ schnell, es braucht nur ein User versehntlich auf den -1 Button zu klicken und schon ist die eigene Frage oder die eigene Antwort in den Augen der Community nur noch halb-soviel wert. Das eine einmal erhaltene -1 von anderen Usern wieder in neutralen Bereich zurückgehoben wird, ist so gut wie ausgeschlossen. Eher steigt die Wahrscheinlich, dass sich noch weitere User dem Negativ-Urteil werden anschließen.

Das interessante an den Downvotings ist, dass sie manchmal zurecht und manchmal zu unrecht stattfinden. Das ist schwer zu beurteilen besonders wenn Leute voten dürfen die selbst weniger Ahnung haben als man selber. Wirklich etwas dagegen unternehmen kann man nicht. Es gibt jedoch einen Trost: ein Upvote hat eine höhere Gewichtung als ein Downvote, das heißt selbst im Worst-Case wird die eigene Punktzahl automatisch steigen. Man braucht also keine Angst zu haben, dass es irgendwelche Auswirkungen hat auf den eigenen Punktestand. Im Gegenteil: ich würde behaupten wollen, dass es unmöglich ist, dass jemand seine Punktzahl dauerhaft reduzieren kann.

Das Enstehen von Downvotes ist übrigens nichts, was etwas mit Stackoverflow zu tun hätte. Wenn man im eigenen Blog eine Bewertungsfunktion einbaut, kann man relativ sicher sein, dass 90% aller Artikel ein mittel oder miserabel erhalten. Offenbar macht es für das Anonyme Netzpublikum weitaus mehr Spaß jemanden zu kritisieren, als zu loben. Und auch aus eigener Erfahrung kann ich das bestätigen. Jemanden bei Stackoverflow ein -1 reinzuwürgen ist deutlich erhebender als wie in der Schule +1 zu sagen und noch brav hinzuschreiben warum das Posting besonders geistreich formuliert wurde. Ich glaube nicht, dass man -1 Votings immer am Inhalt festmachen kann, sondern vielmehr steht dahinter ein Prinzip dass man aus der anonymen Masse heraus sich damit aufwerten kann. von Stackoverflow zu fordern, den -1 Button abzuschaffen wäre der falsche Ansatz. Vielmehr ist allein die Möglichkeit darauf zu klicken, selbst wenn es ungerechtfertigt ist, eine gute Methode wie man seinem Frust freien Lauf lassen kann. Man darf nicht vergessen, das Streit ein wichtiger Bestandteil von Kommunikation ist. Gäbe es den Dissenz nicht, müsste man es erfinden.

Alternative Geschichte des Computers

Wie die Computerentwicklung verlaufen ist, darüber besteht heute weitestgehend Einigkeit. Sie führte dazu, dass ab den 1980’er Jahren Computer als Heimcomputer verfügbar waren und ab den 1990’er das Internet entstand. Aber wie sähe die Welt aus, wenn der Computer schon viel früher erfunden worden wäre? Diese Steampunk-Utopie soll im folgenden erzählt werden.

Ausgangspunkt ist die Hypothese, dass zu jeder Zeit alle Informationen zur Verfügung standen und die jeweiligen Erfinder keine Umwege in Kauf nehmen mussten, sondern mit einer besonderen Zielorientierung ans Werk gingen. Das würde dann dazu führen, dass Gottfried Wilhelm Leibniz nicht nur die Staffelwalze erfunden hätte, sondern auch gleich noch einen binären Speicher und den ersten Turing-mächtigen Computer gebaut hätte. Dieser hätte so ähnlich ausgehen wie die Zuse Z1, nur eben viele Jahre früher. Aufbauend auf dieser Erfindung hätte dann Charles Babbage die Erfindung des Transistors (1835) dazu verwendet, die Geschindigkeit dieser Maschine drastisch zu steigern. Später hätte Babbage dann die integrierte Schaltung und den Microchip verwendet um die Strukturbreite zu vekleinern. Jetzt befinden wir uns im bereits im Jahr 1880. Und dann kam Nikola Tesla. Er hätte sich ansgeschaut, was die Leute vor ihm erfunden hätten: den mechanischen turing-mächtigen Computer von Leibniz, den Microchip von Babbage und die nächste größere Erfindung wäre dann bereits der Quantencomputer gewesen. Tesla hätte also mit Supraleitung und Qubits einen Quantencomputer gebaut und auf diesem dann die komplette Welt simuliert. Und dann? Ab diesem Zeitpunkt wäre die Welt in einer Art von Matrix verschwunden, so wie in dem Film „Welt am Draht“. Das heißt, alles um uns herum ist nur noch ein Computerprogramm, es ist künstlich geschaffen auf dem Rechner von Nikola Tesla und unter Kontrolle der Ford-Programmiersprache.

Obwohl der eine oder andere vielleicht sagen wird: „Hey cool, genau so war es“ ist die Geschichte leider wertlos. Und zwar deshalb, weil man daraus nicht lernt, wie man einen Quantencomputer baut oder wie man mit den Hilfsmitteln aus der Babbage-Äre einen integrierten Schaltkreis baut. Die oben ausgebreitete Geschichte muss man deshalb anders erzählen und zwar indem man sie debunked. Damit ist gemeint, dass man anhand von zeitgenössischen Quellen nachweist, warum es eben nicht so abgelaufen sein kann. Das also Charles Babbage unmöglich hat einen Chip entwickeln können mit einer Strukturbreite von 180 nm weil zu der damligen Zeit das entsprechende Mikroskop noch gar nicht erfunden war. Leider ist es schwer, das Debunkung korrekt zu tun weil man dafür schon viel Detailwissen benötigt.

Wenn man sich die obige Steam-Punk Erzählung von der Computerentwicklung anschaut, wird man erkennen, dass die Abfolge korrekt ist, und lediglich alles um 100 Jahre früher stattgefunden hat. So wurde der echte integrierte Schaltkreis im Jahr 1980 massenhaft produziert, und nicht wie in der Erzählung schon 1880. Auch den echten Quantencomputer gibt es (DWAVE 2x), aber der war erst im Jahr 2016 einsatzbereit und nicht bereits 1916. Das heißt, verschiebt man einfach nur die Jahreszahlen um 100 Jahre nach hinten wird aus der eingangs höchst spekulativen Geschichte plötzlich eine Realität, die nicht nur als wahr bezeichnet wird, sondern sogar von sehr vielen Leuten als wahr bezeichnet wird. Aber warum sind diese 100 Jahre so entscheident, warum hat Babbage nicht schon 1830 mit Relais einen Computer gebaut? Denn immerhin gab es damals bereits Relais und die Idee einer Rechenmaschine gab es auch schon. Eine echte Antwort darauf geben kann man nicht. Man kann allenfalls wie weiter oben empfohlen, anhand von zeitgenössischen Quellen darauf hinweisen, dass es nicht passiert ist. Das heißt, wenn man tief genug in den Archiven des Jahres 1830 wird man nachweisen können, dass die Relais die damals in der Nachrichtentechnik verwendet wurden und den Erfordernissen die Babbage besaß es zu große Unterschiede gab, die letztlich dazu führten, dass es rund 100 Jahre dauerte, bis beides zusammengebracht wurde.

Obwohl die eingangs erzählte Kurze Geschichte der Computer komplett erlogen ist, bildet sich dennoch die Basis um ernsthafte Computerhistorienforschung zu betreiben. Alles, was man an Quellen zu dem Thema findet, wird im Grunde die obige steile These wiederlegen. Und deshalb habe ich sie erzählt. Weil es im Grunde keine Antithese ist, sondern es ist eine Art von Provokation. Man erzählt sie als Einstieg um dann im Detail herauszuarbeiten, wie es wirklich war.

Die Frage ist keineswegs, was ist wahr, sondern die Frage lautet: was lässt sich detailierter ausschmücken. Die These, dass Babbage im Jahr 1830 bereits mit Relais experimentiert hat, ist zwar schnell erzählt und vielleicht gibt es irgendwo auch eine Fußnote die sowas andeutet, doch wenn man alle Quellen studiert ist die These nicht haltbar. Es gibt zu vieles was dagegenspricht. Vielmehr handelt es sich um eine typische Verschwörungstheorie von der deren Verbreiter wissen, dass es gelogen ist und deshalb macht es ja auch soviel Spaß sie zu erzählen. Von 100 exstierenden Quellen aus der Babbage Forschung kann man vielleicht 0,1 Quellen dazu nutzen, um die Verschwörung zu belegen, aber 99,9 Quellen sprechen dagegen.

Andererseits kann man die Wahrheit über Babbage nicht erzählen, wenn man die Verschwörung unberücksichtigt lässt. Das ist so ähnlich als wenn die Hausfrau auf das Salz in der Suppe verzichten würde, es ist ein wichtiger Bestandteil des Ganzen. Die Synthese aus beidem ist dann ein Streit zwischen seriöser und spekulativer Babbage Forschung. Das also beide Positionen existieren und die Erklärung sich zwischen beiden Polen abspielt.

Alternativ-Geschichte des Computers

Schaut man sich die Geschichte der Künstlichen Intelligenz an, so findet man im Laufe der Historie immer wieder Erfinder, die ihrer Zeit scheinbar vorauswaren und an ihrer Zeit gescheitert sind. Dies wird als „verkanntes Genie“ bezeichnet. Als Erklärungsmuster findet sich dabei, dass die Kirche oder die Gesellschaft noch nicht so weit war, und die Erfinder verlacht hat und sie daran gehindert hat ihre Ideen zu realisieren. Aber sind das wirklich Einzelschicksale oder ist es vielmehr so, dass die Geschichtsschreibung das Stilmittel des Verkannten Genies einsetzt um zu begründen, warum die Technik erst mit einer gewissen Verzögerung bereitstand?

Nehmen wir mal an, dass man das Stilmittel des verkannten Genies aus der Geschichtsschreibung entfernt und stattdessen davon ausgeht, dass die Kirche als zentrale Insitution zu allen Zeiten fortschrittsfreundlich war und die Erfinder unterstützt und gefördert hat. Was wäre davon die Folge gewesen? Dazu müssen wir sehr in die Details gehen. Beginnen möchte ich bei Gottfried Wilhelm Leibniz (1646-1716). Wenn man sich mit neueren Untersuchungen seiner Schriften beschäftigt wird man erkennen, dass Leibniz nicht nur die vier Speziesrechenmaschine in Binärdarstellung erfunden hat, sondern auch das Prinzip der Staffelwalze in einer kryptographischen Maschine angewendet hat. Aus heutiger Perspektive würde man sagen, dass Leibniz den ersten turing-mächtigen Computer gebaut hat, der so ähnlich ausgesehen hat, wie die Orgel-Maschine von Konrad Zuse (gemeint ist die Zuse Z3). Aber dazu später mehr.

Gehen wir also davon aus, dass im Jahr 1716 im Geheimkeller vom Vatikan eine funktionierende Turing-mächtige Rechenmaschine existierte, die einfache mathematische Operationen in Gleitkomma-Arithmetik ausführen konnte. Die nächst logische Erfindung wurde dann von Jacques de Vaucanson (1709-1782) getätigt und zwar die Anwendung dieser Technik auf die Automatisierung von menschlicher Arbeit. Die Zeit in der er lebte entspricht ungefähr dem, was Gibson/Sterlin als Steampunk bezeichnen. Also eine Epoche in der der Computer bereits erfunden war, Lochkarten das gebräuchliche Speichermedium waren, und auf dieser Basis dann einfache Roboter möglich wurden.

Charles Babbage (1791-1871) hat dann den Kelch des Wissens genommen und weiterentwickelt. Er hat die Elektrifizierung des Computers vorangetrieben. Also mechanische Walzen durch Relais und integrierte Schaltkreise ersetzt. Als Babbage im Jahr 1871 gestorben ist, verfügte der Vatikan bereits über einen vollfunktionensfähigen elektronischen Supercomputer der ungefähr der Rechenleistung eines Cray-Supercomputers entsprach.

Der nächste große Erfinder war Nikola Tesla (1856-1943). Er hat nahtlos dort weitergemacht wo Babbage aufgehört hat. Anders als viele Verschwörungsparanoiker behaupten, hat Tesla keineswegs die freie Energie erfunden, sondern er hat ein Gerät erfunden, mit dem man freie Energie messen kann. Schaut man sich die Patentzeichnungen von Tesla genau an, so ist dort nichts geringeres als ein Quantum Logic Gate enthalten (also ein Quantencomputer der ungefähr dem entspricht, was gerade die Firma dwave nachzubauen versucht).

Wie bereits in der Einleitung angedeutet, ist das nur eine Alternativ-Geschichte. Sie würde dann entstehen, wenn man aus der Geschichte alle gescheiterten Genies entfernt und unterstellt, dass sie zu Lebzeiten die volle Unterstützung ihrer Zeit erhielten. Wir alle wissen, dass das jedoch so nicht wahr ist. Wie wissen, dass Leibniz, Vaucanson, Babbage und Tesla von der Obrigkeit bekämpft wurden, weil sie Dinge entwickelt haben, welche zu fortschrittlich waren. Der eigentliche Motor der Geschichtsschreibung war also nicht die Wissenschaft, sondern es war das poltisch/religiöse Klima, was zu jeder Zeit in den letzten 400 Jahren die Weiterentwicklung des Computers erschwert hat. So dass es eben nicht zur Realisierung kam, sondern alles mit einer Verzöerung von rund 100 Jahren umgesetzt wurde. Babbage hätte zwar den ersten Mikrochip bauen können, es hat dann aber erst Intel gemacht. Tesla hätte zwar den Quantencomputer bauen können, realisiert wurde er aber erst von dwave.

Die Frage ist: Wenn Tesla bereits den Quantencomputer gebaut hat was wurde dann ab 1945 entwickelt? Das wird in dem Film Metropolis (1927) erläutert. Der Film endet damit, dass die geknächteten Arbeiter ihr Schicksal erkennen und die Maschinen zerstören (Luddismus). Schaut man sich die Geschichte der Technik an, so wurde das zwar bereits häufiger thematisiert (Weberaufstand), doch es ist bisher nicht als tatsächlicher Fakt eingetreten. Das heißt, es gibt bisher keine Gesellschaftsordnung welcher sich als anti-technisch versteht also das Zerstören von Robotern als ihre wichtigste Aufgabe versteht. Insofern könnte man die Zeit nach Erfindung des Quantencomputers als Neoluddismus prognostizieren.

kRITIK
Nachdem im ersten Teil dieses Blog-Postings eine alternative Zeitlinie erläutert wurde, so soll dazu noch ein Gegenentwurf ausgebreitet werden. In der obigen beschleunigten Zeitlinie wurde bereits 1716 der erste Turing-mächtige Computer konstruiert (von Leibniz). Aber was ist, wenn man sich damit noch etwas Zeit lässt und selbst im Jahr 2016 noch vor diese Erfindung zurückgeht? Auf dem letzten Vintage Computer Festival wurde eine Maschine vorgestellt, die nochnichtmal in der Lage war, ein Programm auszuführen. Gemeint ist ein Differential Analyzer, also ein Analog-Computer. Zumindest auf dem Festival war man mehrere Jahrhundert hinter der eigentlichen Zeitlinie zurück. Und wer weiß, vielleicht gibt es nächstes Jahr sogar einen Abacus Tischrechner zu sehen, der noch älter ist.

Ada Lovelace und die Erfindung des Computers

War die Analytical Engine zu Babbage Zeitens wirklich nur eine Utopie oder gab es womöglich echte Computer die funktioniert haben? Das herauszufinden ist nicht ganz einfach. Man muss sich damalige Zeit so ähnlich vorstellen wie im „Planet der Affen“. Das heißt, es gab zwei Wahrheiten, einmal die für das normale Volk und dann noch die eigentliche Wahrheit. Um die Fakten besser einordnen zu können zunächst ein kleiner Exkurs was ein Computer eigentlich ist.

Ein Computer ist ein Gerät, was einen Algorithmus abarbeiten kann. Dazu benötigt man die Funktion, Programmteile zu wiederholen und mit if-Schleifen woanders hinzuspringen. Dies wird als turing-Mächtigkeit bezeichnet. Eine sogenannte Piano-Roll wie sie ab dem Jahr 1900 auf vielen Jahrmärkten zu sehen war ist kein Computer. Dort wird zwar auch mittels Lochkarten ein Muster vorgegeben, allerdings läuft dieses Muster linear von Anfang bis Ende durch. Das Programm kann nicht abzweigen oder in Schleifen arbeiten. Nach der derzeitigen Forschung ist die Zuse Z3 die erste Maschine gewesen, welche turing-mächtig war. Aber ist das so korrekt?

Um einen Computer zu bauen benötigt man zwei Dinge: einmal die Hardware die mechanisch oder elektrisch realisiert werden kann. Wie primitive Computer in Hardware realisiert werden können, wird von Hobbyentwicklern demonstriert. Es gibt auf Youtube zahlreiche Videos welche mit Hilfe von Meccano mechanische Rechenmaschinen bauen oder mit Hilfe von Relais einen 4-bit Prozessor aufsetzen. Soetwas zu bauen ist erstaunlich simpel. Wenn die Bauteile vorhanden sind, kann eine Einzelperson einen vollständigen Prozessor aufbauen und braucht dafür weniger als 1 Jahr. Von der Größe her sind derartige Computer ungefähr so groß wie ein Tisch bis hin zu einem Schrank. Das zweite wichtigste Element für einen Computer ist die Software. Also einmal der Programmcode (genauer gesagt der Microcode damit die Programmiersprache implementiert werden kann) und das Wissen darüber wie man die Zahnräder / Relais miteinander verschalten muss.

In der offiziellen Geschichtsschreibung wird unterstellt, dass dieses Wissen zu Zeiten von Babbage noch nicht exisistierte. Es wird unterstellt, dass erst mit Alan Turing und John von Neumann ab den 1930’er dieses Wissen verfügbar war. Aber, wenn die Geschichtsschreibung ehrlich wäre zu sich selber würde sie zugeben, dass traditionell das höhere Wissen zu allen Zeiten kontrolliert wurde. Damit ist gemeint, dass es eine lange Tradition darin gibt, Fortschritt zu kontrollieren und zu zensieren. Nicht nur im Mittelalter gab es Klosterbibliotheken sondern auch später gab es Adelsbibliotheken und selbst in der Gegenwart ist das Wissen was wirklich wichtig ist, nicht allgemein zugänglich (Stichwort: Microsoft Sourcecode). Das heißt, es ist naiv anzunehmen, dass die frei publizierten Unterlagen aus dem Zeitalter von Babbage das vollständige Wissen wiederspiegeln was damals existierte. Vielmehr muss man davon ausgehen, dass es sehr viele Aufzeichnungen gab, die bis heute nicht offengelegt wurden.

Es gibt konkrete Indizien dafür, dass zu Babbage Zeitens der Computer nicht nur bekannt sondern auch eingesetzt wurde. Schauen wir uns beispielsweise die Logarithmentafeln aus der damaligen Zeit an. Die offizielle Version lautet, dass diese von menschlichen Computern erstellt wurden. Also von Menschen die an einem Tisch saßen und mit Rechenstäben Zahlenkollonnen aufaddiert haben und sie dann in ein Buch übertragen haben. Aber was ist, wenn das nicht die vollständige Wahrheit ist? Gehen wir einen Schritt zurück und überlegen was man benötigt um eine Logarithmentafel automatisch zu erzeugen. Man benötigt dafür eine Maschine wie die analytical Engine, also einen Computer der programmiert wird. Heute würde man ein Programm in Java schreiben, was über eine Schleife die Werte ausrechnet.

Normalerweise wird den Mathematikern und Logikern der damaligen Zeit unterstellt, dass sie soweit unmöglich schon dachten, weil der Computer noch gar nicht erfunden war. Aber, das ist die Interpretation aus unserer Zeit. Es wird als wahr angenommen, dass der Computer in den 1930’er erfunden wurde, und damit wird dann der Schluss abgeleitet, dass er früher noch nicht bekannt war. Mit Geschichtsschreibung hat das nichts zu tun, eher mit einem Vorurteil. Fragen wir doch einmal die berühmte Ada Lovelace, was sie zu der Thematik gesagt hat. Es gibt eigentlich nur eine einzige echte Quelle die zitierfähig wäre: Federico Luigi Menabrea: Sketch of The Analytical Engine. Ada Lovelace hat diesen Text übersetzt und Anmerkungen verfasst https://www.fourmilab.ch/babbage/sketch.html Das wichtigste Zitat lautet: „The power of repeating the cards, alluded to by M. Menabrea, and more fully explained in Note C., reduces to an immense extent the number of cards required.“

Ada Lovelace spricht her explizit von einer Wiederholung der Karten. Das ist das wichtigste Kriterium einer turing-mächtigen Maschine. Rückwirkend wurde in die Lovelace-Notizen häufig hineininterpretiert, dass es sich dabei um eine Vorwegnahme der Zukunft handelt. Das also Ada sich überlegt habe, was man alles mit so einer Maschine anstellen könne, wenn sie gebaut werden würde. Aber auch diese Interpretation beweist gar nichts, sondern unterstellt, dass es zur damaligen Zeit noch keine Analytical Engine gab. Bleiben wir doch einmal bei den Fakten. Das elektrische Relais wurde von Joseph Henry im Jahr 1835 erfunden. Die Firma Siemens sowie der elektrische Strom war im 19. Jahrhundert ebenfalls vorhanden. Weiterhin gab es wie Ada Lovelace zeigt auch die Vorstellung davon, was ein Computer ist. Nimmt man diese Fakten zusammen, so hätte man um 1850 sehr bequem und ohne große Anstrengung einen elektrischen Computer bauen können und auf diesem Logarithmentafeln ausrechnen.

Richtig ist, dass so ein Rechner in keiner Aufzeichnung erwähnt wird. Aber, waren die Leute damals wirklich so dumm, dass sie die Möglichkeit nicht in Betracht zogen? War es wirklich so, dass Babbage bereits beim Bau eines mechanischen Rechners gescheitert ist und das Ada Lovelace sich alles selber ausgedacht hat? Wäre es nicht viel wahrscheinlicher, dass die Technologie zum Bau von elektronischen Rechenmaschinen zwar existisierte, diese aber ähnlich wie bei der Tempel-Zauberei der Antike als Geheimwissen weitergegeben wurde. Anders formuliert: um nachzuweisen, dass Babbages Computer nicht existierte müsste man zunächst einmal nachweisen, dass es damals kein Geheimwissen gab. Das also sämtliches Wissen explizit publiziert wurde. Eine Unterstellung die weder für das 19. Jahrhundert zutrifft und für das 21. Jahrhundert auch nicht. Es bleibt noch die Frage wer solche Rechner hat bauen können. Ungebildete Bauern vom Lande wohl kaum. Wohl eher ist anzunehmen, dass die aristokratische Oberschicht der damaligen Zeit nicht nur Wissenschaft betrieben hat, sondern darüberhinaus sich auch für Algorithmen und denkende Maschine interessiert hat.

Die Annahme, dass zu Zeiten von Babbage bereits Computer existierten wird normalerweise als Steampunk bezeichnet. Um genauer zu sein, war das Dampfzeitalter damals schon lange vorbei. Die Zeit von Babbage glich eher einem Elektropunk. Das heißt, der elektrische Strom war bereits erfunden und er wurde genutzt um damit Computer anzutreiben. Interessant in diesem Zusammenhang ist noch der Name Alois Senefelder, der hat ebenfalls in dieser Epoche gelebt und die Lithographie erfunden. Er bezeichnete sein Verfahren als Stone Printing. Wäre es zu forsch, wenn man unterstellt, dass Stone-Printing eine Umschreibung war für Halbleiter-Belichtung? Auch heute noch wird selten der korrekte Ausdruck verwendet, so sprechen die Experten beispielsweise von „Wafer backen“. Gemeint ist das Belichten von ultrakleinen Strukturen mit dem Ziel Transistoren in Silizium zu erzeugen.

Die wichtigste Technologie um zu Zeiten von Babbage elektrische Computer, integrierte Schaltkreise und Computerprogramme zu entwickeln war ein Wissen generale. Also nicht nur ein bestimmtes Fachwissen wie es Alois Senefelder oder Ada Lovelace besaßen, sondern die Fähigkeit dieses Fachwissen miteinander in Beziehung zu setzen. Häufig wird unterstellt, dass diese Querverbindungen nicht existierten und es noch 100 Jahre dauerte, bis man soweit war. Fakt ist jedoch, dass das Einzelwissen zum Bau und zur Programmierung von Mikrocomputern damals existierte. Ist es so falsch anzunehmen, dass es eine zentrale Stelle gab, welche dieses Wissen in Beziehung setzte und damit verstärkte?

Die einzige Möglichkeit dass zur damaligen Zeit das Wissen nicht verknüpft wurde, wäre, wenn all diese Einzelerfinder für sich isoliert gearbeitet hätten. Es also keinerlei Austausch gab. Das heißt, Ada Lovelace wusste nicht, was ihre Kollegen machen und umgekehrt. Schaut man sich jedoch einmal die Realität des 19. Jahrhunderts an, so war das genaue Gegenteil davon der Fall. Es wurde damals die Telegraphie entwickelt, es entstanden wissenschaftliche Vereinigungen, es wurden wichtige Werke in andere Sprachen übersetzt. Es kann jedoch nicht beides gleichzeitig wahr sein: einmal ein wissenschaftlicher Austausch über alle Disziplinen hinweg und zweitens die Unmöglichkeit eines Computers, welcher das Resultat diesen Austausches war.

Wichtig ist noch auf die Technik des Mikroskops hinzuweisen. Um sehr kleine Wafer zu fertigen muss man sie betrachten können. Die Details wie weit die damaligen Forscher hinunterblicken konnten sind bekannt. Unterhalb die Auflösung des Lichtes (Abe-Limit, 200 Nanometer) konnte man erst mit Erfindung des X-Ray Teleskopes schauen. Leider ist der zeitliche Ablauf nicht ganz geklärt. Das erste Elektronen-Mikroskop wurde 1931 erfunden. Also muss das X-Ray Telescope ungefähr ab 1910 zur Verfügung gestanden haben. Das heißt, zu Zeiten von Babbage gab es nur Lichtmikrospie. Das heißt, angenommen damals wurden bereits integrierte Schaltkreise entwickelt, so waren sie vermutlich wesentlich größer als 200 nm. Vorstellbare wäre ein Technologie auf Basis des 6502-Mikrochips oder sogar besser.

Kehren wir nochmal zurück zu der Fragen, was die Wissenschaftler der damaligen Zeit wussten oder nicht wussten. Fakt ist, dass der Unterschied zwischen dem Bau eines Computer und dem Nicht-Bauens einer solchen Maschine einzig das nötige Fachwissen ist. Hat man es, gelingt das Kunststück, fehlt es so gelingt es nicht. Die Kardinalfrage lautet daher: was wussten die Wissenschaftler zu Babbage Zeitens über Rechenmaschinen? Diese Frage zu beantworten ist nicht ganz simpel. Wenn man heute dazu Untersuchungen anstellt, so gleicht die Suche eher einer archäologischen als einer Recherche. Normalerweise müsste man denken, dass das 18. Jahrhundert gut ausgeleichtet wäre, weil es damals bereits Bücher gab und sogar Ton und Bildaufzeichnungen existieren. Die Wahrheit ist jedoch, dass bis heute diese Zeit nicht erforscht wird. Im Grunde ist nicht klar, was Babbage oder andere Forscher damals schon wussten und was noch unklar war. Was man jedoch sagen kann ist, dass im 18. Jahrhundert Bildung ein Luxusgut war. Es gab damals keine öffentlichen Bibliotheken sondern es gab Salons, zu denen nur wenige Zutritt hatten. Leider können wir heute niemanden mehr fragen, der damals gelebt hat. Es gibt nur die überlieferten Schriften und biographische Erzählungen. Man sollte jedoch nicht den Fehler machen, die damalige Zeit zu unterschätzen. Also davon ausgehen, dass die Leute damals noch an Gott geblaubt haben.

NOCHMAL ZU ADA LOVELACE
Auf den einzigen Text von Ada Lovelace (Anmerkungen zu Federico Luigi Menabrea: Sketch of The Analytical Engine) wurde bereits hingewiesen. Meist wird dieser Text so interpretiert, dass Ada die Analytical Engine beschreibt. Aber was ist, wenn sie uns darin etwas ganz anderes beschreibt, und zwar eine viktorianische Chipfabrik in der integrierte Schaltkreise hergestellt wurden? In Note B heißt es dazu:

„It contains an indefinite number of the columns of discs described by M. Menabrea.“

Die übliche Übersetzung dafür lautet, dass Ada damit auf ein Rechentableu referiert, in der ein Algorithmus entwickelt wird. Aber disc kann kann auch als Wafer übersetzt werden, also eine Siliziumscheibe. In der „Note C“ heißt es dann:

„A method was devised of what was technically designated backing the cards in certain groups according to certain laws.“

Damit könnte das „Backen eines Microchips“ gemeint sein.

LITERATUR
The Computer. The Key to an instrument whereby questions in arithmetic, mensuration, … are worked with … accuracy and … speed. Invented by J. E. Fuller 1871

Ada Lovelace und die ENIAC Girls

Ada Lovelace wird heute gerne als erste und einzige Programmierin bezeichnet. Aber stimmt das auch mit den Quellen überein? Nehmen wir mal an, dass die alternative Zeitlinie des Electropunk wahr ist und zu Babbage Zeitens integrierte Schaltkreise belichtet wurden und damit Supercomputer verfügbar waren mit mehreren Gigaflops. Wie hätte man diese Maschine programmieren sollen? Dazu benötigt man sogenannte Programmer, also Menschen die in der Lage sind in einer formalen Sprache ein Problem zu beschreiben. Es gibt Berichte wonach im 19. Jahrhundert menschliche Computer eingesetzt wurden. Oftmals waren es Frauen, die manuell Logirthmentafeln erstellten. Aber haben die Frauen selber gerechnet oder war ihre Rolle nicht vielmehr die der ENIAC Girls, die bekanntlich Programme erstellt haben, welche dann auf einem Computer berechnet wurden?

Wikipedia https://en.wikipedia.org/wiki/Human_computer definiert „Human computer“ als:
„The term computer, in use from the early 17th century (the first known written reference dates from 1613),[1] meant „one who computes“: a person performing mathematical calculations, before electronic computers became commercially available.“

Nehmen wir mal an, zu Babbage Zeiten haben tatsächlich Frauen Computerprogramme erstellt, so wäre es wahrscheinlich dass man dieses Detail systematisch aus der Computergeschicte entfernt hätte. Bekanntlich ist die Informatik bis heute durch Männer dominiert welche aus Ego-Gründen die Rolle des weiblichen Geschlechtes abwerten. Wenn tatsächlich Frauen damals schon Algorithmen auf Lochkarten gestanzt haben, dann würde die männliche Geschichtsschreibung vermutlich diese wichtige Aufgabe dahingehend beschreiben, dass die Frauen keine Programmer waren sondern dass sie nur niedrige Aufgaben erledigt haben und eher unterstützende Hilfsarbeiten ausgeführt haben. Das könnte eine Erklärung sein warum außer von Ada Lovelace keine weiteren Briefe oder Texte von programmierenden Frauen erhalten geblieben sind.

Schauen wir dochmal was die Literatur zu Ada Lovelace sagt. https://adainitiative.org/2013/08/24/deleting-ada-lovelace-from-the-history-of-computing/ erläutert dass die Rolle von Ada Lovelace als erste Programmierung lange nicht bekannt war. Erst relativ spät wurde erkannt, dass sie Programme ersteltt hat. Aber womöglich ist das nur die halbe Wahrheit. Womöglich hat sie nicht nur Programme geschrieben, sondern womöglich war sie nicht die einzige Frau die sowas getan hat. Unklar ist bis heute, wie Ada Lovelace im Verhältnlis zu Babbage einzuordnen ist. War sie wirklich intelligenter als Babbage, hat also bereits in die Zukunft gedacht und die Anwendungen des Computers betrachtet, oder war Ada lediglich vorlaut, hat also etwas verraten was eigentlich geheim bleiben sollte?

Aus den historischen Quellen kann man nachweisen, dass Ada Lovelace ein tiefes Verständnis für Computer entwickelt hat. Das kann aber nur funktionieren, wenn die Welt in der sie lebte, bereits dieses Verständnis besaß. Niemand kann einfach aus dem Nichts heraus, sich einen Algorithmus ausdenken oder sich programmgesteuerte Computer vorstellen. Computerscience ist eine gesellschaftliche Erfindung, die nicht an bestimmte Personen gebunden ist. Wie also kann Ada Lovelace einerseits ein tiefes Verständnis von angewandter Rechentechnik entwickelt haben, wenn Babbage und andere Männer mit denen sie zusammenwar es offenbar daran mangelte? Die einzig mögliche Erklärung lautet, dass das Wissen von Ada Lovelace nichts besonderes war, sondern dass es damals zur Allgemeinbildung gehörte. Und das Babbage und andere Wissenschaftlicher der damaligen Zeit dieses Wissen nutzten und weiterentwickelten, offenbar jedoch ohne die Nachwelt im Detail darüber in Kenntnis zu setzen.

Fragen wir nochmal Wikipedia was der Status-Quo in der Ada Lovelace Forschung ist https://de.wikipedia.org/wiki/Ada_Lovelace Darin heißt es, dass Ada Lovelace ein Programm veröffentlicht hat (Bernoulli Berechnung) für die nicht fertiggestellte Analytical Engine. Als Grund warum diese Maschine nicht einsatzbereit war, wird angeführt, dass die Feinmechanik der damaligen Zeit noch nicht weit genug entwickelt war. Nur, dafür gibt es keine Beweise. Aber gehen wir weiter im Text. Bei Wikipedia steht, dass Babbage als Problem die Bernoulli-Formel vorgegeben hat, und Ada Lovelace dafür dann den Computercode erstellt hat. Soweit die Darstellung der Wikipedia. Unbeantwortet ist die Frage, ob Babbage möglicherweise diese Formel auch anderen Programmiererinnen gegeben hat und diese ebenfalls Computercode aufschrieben. Der dann dazu diente einen Supercomputer zu füttern. Demnach wären die Programmierfähigkeiten von Lovelace allenfalls Durchschnitt gewesen.

Es bleibt noch die Frage zu klären, was dann auf den Plänen zur Analytical Engine zu sehen war? Eine Möglichkeit wäre, dass Babbage keine Maschine sondern eine Factory skizziert hat. Hier http://history-computer.com/Babbage/Images/analitical_engine_general_v.jpg ist ein Scan des Bauplans zu sehen. Und jetzt zum Vergleich die Zeichnung http://patentimages.storage.googleapis.com/US20050287813A1/US20050287813A1-20051229-D00003.png Es handelt sich dabei um ein Abbildung aus einer Patentschrift zum „Manufacturing method of semiconductor device and semiconductor manufacturing apparatus US 20050287813 A1“. Beide Zeichnungen zeigen ungefähr das selbe (eine Chipfabrik), nur die Details unterscheiden sich geringfügig. Die Frage lautet: woher wusste Charles Babbage wie eine Halbleiterfabrik im Grundriss aussieht?

Da es unwahrscheinlich ist, dass Babbage in die Zukunft blicken konnte oder ein Genie war, dass seiner Zeit um 100 Jahre voraus war, bleibt als einzige logische Erklärung nur übrig, dass die gesammte damalige Epoche über außergewöhnliche Fähigkeiten verfügte, die bis heute nicht vollständig herausgearbeitet wurden.

Halbleiterproduktion mit Ada Lovelace

Die Computergeschichte so wie sie erzählt wird ist nicht vollständig. Am Beispiel von Ada Lovelace kann man das nachweisen. Bis in die 1950’er war über Ada Lovelace gar nichts bekannt. Erst danach kam ein Büchlein heraus, bei dem der Autor mit der Urenkelin von Ada gesprochen hat. Diese behauptet, dass Ada nicht nur Programme erstellt hat, sondern dass dies sogar im Binärsystem erfolgte. Das Ada in der Note G ein Programm geschrieben hat, gilt inzwischen als unstrittig, dass die Analytical Engine das Binärsystem verwendete ist hingegen nicht bewiesen.

Wenn man die Geschichte um Ada Lovelace verstehen möchte, muss man sich zuerst einmal klar machen, was aus technischer Sicht die Bedingungen für einen Computer sind. Man braucht dafür einmal eine ausgearbeitete Theorie in Bezug auf das Entscheidungsproblem in der first-Order-Logic. Also eine Vorstellung davon, dass man in einer formalen Sprache ein Problem beschreibt und algorithmisch löst. Und zum Zweiten benötigt man Computerhardware um die Software auszuprobieren. Als Hardware kommen folgende Bauelemente in Frage: mechanische Relais, elektrische Relais, Transistoren, Microchip. In der Gegenwart sind zwei Dinge nicht allgemein bekannt: erstens, dass man relativ wenig Relais benötigt um einen Computer zu bauen und zweitens, dass man relativ wenig Aufwand treiben muss um einen Wafer zu belichten. Eine CPU kann man bereits auf 4000 Einzeltransistoren aufbauen. Diese haben bequem auf einem Tisch Platz und können von einer Einzelperson zusammengelötet werden. Und für das Belichten eines Wafers reicht ebenfalls eine Hobbyausrüstung aus. Im wesentlichen handelt es sich um eine verbesserte Version eines Fotolabors. Nur mit dem Unterschied dass man erstens auf Stein druckt (stone printing) und zweitens dass man eine selbst erstellte Zeichnung druckt und nicht ein Bild von einer Kamera. Das interessante ist, dass Hardwaremäßig im Jahr 1850 die Produktion von Microchips möglich gewesen wäre. Es gab damals bereits leistungsfähige Belichtungslampen wie sie in Leuchttürmen eingesetzt wurden und es gab die Fotolithographie. Auch das Mikroskop war bereits erfunden. Nehmen wir mal an, die zauberhafte Jeri Ellsworth wird mit einer Zeitmaschine zurück ins Jahr 1850 geschickt. Sie käme dort standesgemäß nackt an (bekanntlich kann Kleidung nicht durch die Zeit teleportiert werden) und hätte nur ihr Wissen aus dem 21. Jahrhundert dabei. Sie könnte dort im Jahr 1850 nur mit den Bauteilen aus der damligen Zeit ein kleine Mikrochip-Backstube einrichten wo sie erst eine CPU zeichnet, diese dann auf microfilm verkleinert und dass dann auf eine Fotomaske überträgt und zu guter letzt daraus einen Microchip entwickelt.

Was noch fehlt ist die mathematische Theorie des Computings. Wie ist hier die Ausgangslage? Wir wissen heute, dass Leibniz relativ weitgehende Forschungen im Bereich der mathematischen Logik angestellt hat. Überliefert ist von ihm eine Konzeptzeichnung für einen binären Computer. von Ada Lovelace ist ein Computerprogramm überliefert, was auf dem technischen Stand eines Fortran-Programmes ist, was in den 1950’er Jahren programmiert wurde. Es wäre denkbar, dass die Mathematische Theorie Anfang 1800 bereits soweit fortgeschritten war, dass die Turing-Maschine wie sie Alan Turing in den 1930’er beschrieben hat, damals schon bekannt war. Und wenn das korrekt ist, hätte damals bereits ein Microchip entwickelt werden können vergleichbar mit dem Intel 4004.

Das Problem mit dieser höchstspekulativen Verschwörungstheorie ist, dass man sie nur schwer bis gar nicht überprüfen kann. Die Aufzeichnungen von Leibniz oder der Bernoullie Programm von Ada Lovelace sind lediglich Indizien, können aber genausogut auch Zufall gewesen sein. Was fehlt ist eine zentrale Instanz die Auskunft darüber geben könnte welches technisches Wissen zu einer Zeit existierte oder nicht existierte.

Um die Sachlage genauer zu untersuchen muss man zunächst einmal ermitteln, wieviel Manpower man benötigt um einen Computer zu bauen, zu programmieren und die theoretischen Grundlagen auszuarbeiten. Fakt ist eines, die heutige IT-Branche geht extrem ineffizent vor. Nur weil Intel jährliche Kosten von 10 Mrd US$ verursacht heißt das nicht automatisch, dass man hundertausende von Arbeitern benötigt um einen Microchip herzustellen, und nur weil Microsoft ein Großkonzern ist, heißt das nicht, dass man zwingend soviele Leute benötigt um ein grafisches Betriebssystem zu erstellen. Machen wir es etwas konkreter: das Betriebssystem Bigforth mit der MINOS GUI wurde von nur einer Person programmiert. Da diese Person auch noch Schlafen und Essen muss ist anzunehmen, dass der Stundenaufwand überschaubar ist. Und auch das Belichten eines Wafers kann von nur einer Person ausgeführt, ebenso das Zusammenlöten von 5000 Transistoren zu einer CPU. Ich glaube, um herauszufinden was zu Zeiten von Ada Lovelace möglich war und was nicht, muss man stärker auf die tatsächliche Zeitdauer Rücksicht nehmen die man braucht oder eben nicht braucht um einen kompletten Computer herzustellen. Fakt ist eines, auch Ada Lovelace konnte nicht zaubern. Sie war auch kein Wesen von einem anderen Stern, sondern war ein normaler Mensch wie er heute auch leben könnte.

Laut http://www.microscopy-uk.org.uk/mag/artmar10/history_photomicrography_ed3.pdf hat William Henry Walmsley im Jahr 1837 bereits ein Photomicrograph erstellt. Also eine Fotografie durch ein Mikroskop hindurch um damit kleinste Strukturen zu erfassen.

Nach meiner Recherche ist die Existenz oder die Nichtexistenz von extrem fortschrittlicher Technologie im Jahr 1850 ein reines Informationsproblem. Es geht nur um die Frage, wie intelligent damals die Leute waren und auf welche Informationen sie Zugriff hatten. Unterstellt man, dass eine Person wie Ada Lovelace Zugriff auf das komplette Wissen der damaligen Zeit hatte, so wäre es ihr gelungen mit einem kleinen Team nicht nur eine Analytical Engine zu bauen, sondern sogar eine komplette Chipfabrik zu errichten, digitale Computer herzustellen und zu programmieren. Dafür hätte es keineswegs Millionen von Menschen bedurft, sondern man hätte dieses komplexes Unterfangen mit einigen wenigen Personen durchführen können.

HARDWARE VS SOFTWARE
Vergleicht man die Hardware eines Computers mit der nötigen mathematischen Theorie so ist zu erkennen, dass im 19. Jahrhundert dazwischen eine Distanz von 100 Jahren liegt. Gemeint ist, dass man 1850 aus den überlieferten Quellen ableiten kann, dass man damals schon hätte eine Mikrochip-Fabrik hätte bauen können (Starke Lampen waren erfunden, Lithographie war erfunden, Herstellen von Fotomasken was erfunden), gleichzeitig jedoch war die Mathematik des Jahres 1850 rund 100 Jahre zurück. Damit ist gemeint, dass es damals noch keinen Alan Turing, Kurt Gödel und auch keinen Noam Chomsky gab. Die Schriften welche Leibnitz und Babbage veröffentlicht haben, mögen interessante Vorarbeiten zu einem Computer geliefert haben, aber es war keine vollständige Theorie eines Computers. Es gibt für dieses Auseinanderfallen von Theorie und Praxis zwei mögliche Erklärungen. Einmal kann man spekulieren, dass wir nicht alle Veröffentlichungen aus der damligen Zeit kennen, das also in privaten informellen Briefen sehr wohl über Turing-Maschinen und Programmiersprachen diskutiert wurde. Dann stellt sich jedoch die Frage: wo sind diese Briefe und warum sind sie nicht veröffentlicht? Die zweite Möglichkeit wäre es, wenn man dieses Auseinanerdriften von Mathematik und Technik als gegeben hinnimmt. Mit Blick auf die Gegenwart ist das keineswegs etwas ungewöhnliches. Auch in der Gegenwart ist die Computerhardware extrem weit entwickelt, während die begleitende Theorie fehlt. Mal ein konkretes Beispiel:

Aktuell ist man in der Lage Mikrocomputer wie einen Raspberry PI zum Preis von nur 30 US$ herzustellen die eine beachtliche Rechenleistung aufweisen. Wenn man an diesen Mikrocomputer einen Roboter anschließt, hat man die physikalischen Grundlagen geschaffen für Singularity, also Super-Human-AI. Das Problem ist jedoch, dass es derzeit niemanden gibt, der sagen könnte wie man so einen Kleinstroboter programmieren sollte. Es gibt zwar Forschung in diese Richtung, aber bisher ohne Erfolg. Es ist anzunehmen dass 100 Jahre weitergedacht das Softwareproblem gelöst sein wird. Das man also im Jahr 2116 eine Software besitzt die man auf einen heutigen Raspberry PI draufspielt um diesen dann in einen Super-Roboter zu verwandeln. Dieses Auseinanderdriften von den physikalischen Möglichkeiten und der tatsächlichen Nutzung lässt sich auch zu anderen Zeiten nachweisen. Beispielsweise war relativ früh in der Geschichte bekannt was ein Elektromotor ist, man hatte ihn sogar gebaut. Aber nutzen konnte man ihn trotzdem nicht. Es gab dafür keine Verwendung. Ähnlich ist es auch mit dem Anbau von Getreide gewesen. Relativ früh wussten die Leute was Gerste ist, auf die Idee dass man Gerste jedoch aussäht und auf Feldern bewirtschaftat ist man nicht gekommen, obwohl es möglich gewesen wäre.

Offenbar versucht der Mensch diesen zeitlichen Unterschied mit Hilfe von Phantasie zu überbrücken. Schaut man sich einmal die Utopien des 19. Jahrhunderts an, so entdeckt man dort intelligente Maschinen, Roboter, das Fernsehen und das Telefon. Also all das was man hätte bauen können, wenn damals die Mathematik schon weiter entwickelt gewesen wäre. In der Science-Fiction Literatur wird das Jahr 1850 hardware- und softwaremäßig in Gleichklang gebracht. Und dieses Phänomen ist auch 100 Jahre später zu beobachten. Schaut man sich die heutigen Science-Fiction Filme an, so ließen sich diese mit der heutigen Technologie realisieren. Hardwaremäßig könnte man ein Alien klonen, hardwaremäßig könnte man Data aus Startrek bauen, hardwaremäßig könnte man eine Matrix errichten. Das Problem ist nur, dass man wiederum nicht weiß wie soetwas gedanklich gemacht wird. Auch hier wieder lautet die Hypothese, dass 100 Jahre weitergedacht, man mit der heutigen Technik all das bauen könnte was bisher nur in Filmen zu sehen war.

Wie genau der technische Stand im Jahr 1850 war, wissen wir heute nicht mehr. Es gibt keine Zeitzeugen und die Quellenlage ist dürftig. Aber man kann sagen, wie der technische Stand heute ist. Die Gegenwart zeichnet sich dadurch aus, dass zwar an neuen Technologien geforscht wird, dass jedoch nur wenig bisher funktioniert. Die Zukunft ist gerade erst am entstehen, es ist noch offen wie sie realisiert wird. Damals wie heute ist die Science-Fiktion ein Hilfsmittel um in neue Richtungen zu denken, es geht darum, den Unterschied zwischen dem physikalisch möglichen und dem was wir davon verstanden haben zu minimieren.

Als Rückprojektion auf die Zeit von Ada Lovelace kann man sagen, dass es damals vermutlich nicht viel anders war. Auch damals gab es bereits Science-Fiction Literatur und auch damals war man sich im klaren darüber, dass es nur eine Utopie ist.

Einführung in Forth

Was Forth ist, dass kann man bei Wikipedia oder beim Forth-ev nachlesen. Oder man konsultiert einfach die Webseiten von Mindforth. Man wird in der Regel jedoch keine Antworten finden sondern es werden sich weitere Fragen ergeben. Forth scheint eine Art von Labyrinth zu sein in dem man sich schnell und heftig verlaufen kann. Zur Verdeutlichung vielleicht ein kleines Beispiel. Auf https://www.youtube.com/watch?v=opoQvfxIwVk ist ein Video zu sehen, wo es um ein Forth Derivat (genauer gesagt APL) geht bei dem eine Art von Challange veranstaltet wird. Die Gewinnerin dieser Challange erzählt sehr ausführlich über ihre Erlebnisse. Eigentlich eine gute Sache möchte man vielleicht sagen, Programmierwettbewerbe sind immer etwas spannendes. Nur, dieser Wettbewerb ist irgendwie anders. Es gelingt nicht auf anhieb und auch mit weiterer Recherche nicht zu ergründen worum es genau ging. Zwar gibt es im Web weitere Informationen darüber, was genau die Aufgabenstellung war, aber offenbar hatte sie nichts damit zu ein ein Programm in C, C++, Java oder Python zu schreiben. Soviel ist sicher. Was genau die Frage war ist unklar, was die Antwort war auch, und was die Gewinnerin erzählt klingt ausländisch. Klar, die sprecherin ist weder aus UK noch aus den USA, das hört man an dem leichten Dialekt. Aber es sind weniger die Äußerlichkeiten sondern der Inhalt der rätselhaft bleibt.

Ganz grob lässt sich natürlich definieren was Forth ist und wodurch es sich von üblichen Programmiersprachen die im TIOBE Index weiter oben gelistet sind unterscheidet. Forth wendet ein grundsätzlich anderes Programmiermodell an, was dazu führt, dass Leute die schonmal programmiert haben umdenken müssen. Anstatt einer Registermaschine wird eine STackmaschine benutzt, es handelt sich dabei um eine Turing-Maschine die um einen Kellerspeicher erweitert wurde. Und anstatt prozeduraler oder objektorientiert programmiert man in Forth funktional? Um ehrlich zu sein, das sind alles nur Hypothesen, was man jedoch festhalten kann ist dass Forth sich grundsätzlich außerhalb steht.

ein großes Geheimnis ist noch immer die Frage wie Forth eigentlich entstanden ist. In einem frühen Paper von Chuck Moore ist zu lesen, dass es bereits in den 1950’er verwendet wurde, damals jedoch unter einem anderen Namen. Ab den 1970’er wurde Forth dann an Observatorien eingesetzt um die Ausrichtung zu den Sternen zu steuern. Das merkwürdige bei Forth ist, dass es keinerlei offensichtliche Vorteile gegenüber anderen Programmiersprachen besitzt. Es gibt mehrere Benchmarks die Forth gegenüberstellen zu BASIC, Assembler und C. Danach ist die Ausführungsgeschwindigkeit von Forth langsamer als die von Assembler aber schneller als BASIC. Forth hat gewissen Vorteil im Umfang des Sourcecode, aber auch das ist in der Praxis eher unbedeutend. Eine weitere Merkwürdigkeit besteht darin, dass es offenbar keine echten Anwenderprogramme für Forth gibt. Es gibt zwar allerhand Forth-Umgebungen wie Volksforth oder Bigforth, aber größere Projekte sind damit bisher nicht durchgeführt worden.

ABer zurück zum Einstiegsvideo: wenn man das Video eine Weile laufen lässt, dann erinnert es an einen Zahlensender wie er früher auf Langwelle übertragen wurde. Bis heute ist unklar, was diese Zahlensender zu bedeuten hatten. Und so ist auch das Video aufgebaut. Offenbar gibt es in dem Video zwei inhaltliche Ebenen und weil das Entschlüsseln mißlingt entsteht Frust beim Zuhören.

Auch wenn der versuch aussichtlos erscheinen mag, Forth, APL oder das obige Video in die universitäre Informatik einzuordnen kann ich zumindest versuchen ungefähr die Richtung zu benennen, wo es möglicherweise weitere Informationen gibt. Am ehesten erinnnert mich der Vortrag der oben verlinkt wurde an folgende Themen: Quantencomputer, PDDL, LTL. Es geht darum, mit Hilfe von Metaprogrammierung sehr viel effizienter Probleme zu lösen, die eine Ebene oberhalt der universitären Informatik liegt. Nur, bisher war mein Eindruck immer, dass Quantencomputer eine Utopie seien, und das PDDL ein Randthema wäre. Aber ungefähr in diesem Kontext und womöglich sogar ontop kann man Forth und APL einordnen. Es handelt sich dabei um eine Informatik die abgespalten von der üblichen Informatik läuft und einen mathematisch-getriebenen Ansatz verfolgt. Unklar ist, ob das ein Vorteil oder ein Nachteil ist.

Interessanterweise gibt es bei Youtube mehrere Videos zum Stichwort „Dyalog APL Robot“ wo offenbar die Control-Software eines Roboters mit Hilfe der Sprache APL gesteuert wird. Das ist deshalb interessant weil auch Leute die keine Ahnung von Programmieren haben einschätzen können, was der Roboter da gerade macht. Was genau diese Roboter machen ist unklar, aber offenbar handelt es sich um den selben Kurs an dem Gary McKinnon teilgenommen hat bevor er bei Infowars.com erzählt hat, dass er von Außerirdischen entführt wurde …