- Einleitung und Zusammenfassung
- Charles Babbage und die Analytical Engine
- Ada Lovelace
- Unterstellte wissenschaftliche Beiträge von Ada Lovelace
- Entstehung des Ada Lovelace-Hypes
- Typische Falschaussagen und rhetorische Tricks
- Literatur
Algorithmen vs. Computerprogramme vs. Mikroprogramme
Um besser zu verstehen, um welche Innovation es hier geht, sollte man sich zunächst den Unterschied zwischen einem Algorithmus und einem Computerprogramm klarmachen. Ein Algorithmus ist eine "mechanisch" ausführbare Handlungsvorschrift zur Lösung eines Problems oder einer Klasse von Problemen. Ein bekanntes Beispiel ist der Euklidische Algorithmus zur Berechnung des ggT zweier natürlicher Zahlen. Dieser Algorithmus besteht i.w. aus einer Schleife, in der eine Division mit Rest solange durchgeführt wird, bis eine Abbruchbedingung erfüllt ist. Ein weiteres Beispiel ist das Sieb des Eratosthenes zur Bestimmung aller Primzahlen. In der programmiersprachlichen Notation erkennt man zwei ineinander geschachtelte Schleifen. Sogar drei ineinander geschachtelten Schleifen weist der Standardalgorithmus zur Matrizenmultiplikation auf. Es gibt unzählige Algorithmen in der Mathematik, viele davon wurden schon vor 2000 Jahren verstanden und manuell ausgeführt. "Prozessor" ist hier der Mensch, der sowohl die Ablaufsteuerung als auch die benutzten Rechenoperationen versteht bzw. ausführen kann. Beschrieben wurden mathematische Algorithmen früher nur in natürlicher Sprache. I.f. wird es wichtig sein, daß bis auf eine eventuelle progammiersprachliche Notation auch komplexe Algorithmen schon 1800 altbekannt waren. Ein Computerprogramm ist ein Algorithmus, der in einer maschinell ausführbaren Sprache geschrieben ist. Es setzt also eine ausführende "Maschine" (bzw. einen "Automaten") voraus, die sowohl die Ablaufsteuerung als auch die elementaren Rechenoperationen (beides als Befehlssatz bezeichnet) technisch implementiert. Der Befehlssatz bzw. die damit entstehende Programmiersprache sollte flexibel genug sein, um möglichst viele Algorithmen implementieren zu können. In den Algorithmen benutzte Befehle wie die Addition oder Division zweier ganzer Zahlen werden ihrerseits im Rechnerkern in komplexen Abläufen realisiert. Die Programme, die diese Abläufe steuern, nennt man Mikroprogramme. Die Mikroprogramme verarbeiten einzelne Bits einer Zahlendarstellung und behandeln elementare, hardware-nahe Aspekte. Mikroprogramme und "user-level"-Programme verarbeiten also verschieden große Datenobjekte, sind aber hinsichtlich der Ablaufsteuerungen und der dabei benutzten Algorithmen vergleichbar komplex.Die Analytical Engine
Die von Charles Babbage in mehreren Versionen konzipierte Analytical Engine ist die historisch erste programmierbare Rechenmaschine - sie funktionierte rein mechanisch. Vom Funktionsumfang her würde man sie heute eher als programmierbaren Taschenrechner bezeichnen, sie weist aber viele zentrale Merkmale von modernen programmierbaren Computern auf. Charles Babbage gilt daher der Erfinder des Computers. Daß die Analytical Engine technisch zu seiner Zeit nicht implementierbar war, weil die nötige Präzision der Bauteile nicht erreichbar war, ist dabei unwesentlich. Die Analytical Engine war nur "Hardware", es gab kein Betriebssystem und keine Compiler, die man heute für selbstverständlich hält. Sie konnte also nur direkt in Maschinensprache (Assembler) über Lochkarten programmiert werden. Erst rund 100 Jahre später entwickelte Grace Hopper das Konzept höherer Programmiersprachen (statt Assembler) und den ersten Compiler, eine fundamentale und wegweisende Leistung. Konzepte und Notationen höherer Programmiersprachen wie Schleifen oder Unterprogramme waren in der Ära von Babbage unbekannt, die zugehörigen Compiler waren undenkbar, ebenso fehlte die Erfahrung, wie man komplexe Ablaufstrukturen auf Maschinensprach-Ebene implementiert. Babbage hat kaum Publikationen über die Analytical Engine verfaßt. Nach Bromley (1982) hat Babbage rund 300 großformatige technische Zeichnungen in seinem privaten Nachlaß hinterlassen, die hunderte Diagramme enthielten, ferner 6000-7000 Seiten in Notizbüchern. Diese Aufzeichnungen sind sehr detailliert und sozusagen auf der Ebene der Mikroprogrammierung, es fehlt leider eine lesbare Darstellung des "user-level"-Befehlssatzes, die von den technischen Details abstrahiert. Bromley (1990) merkt dazu an:The conclusion seems inescapable that Babbage did not have a firm command of the issues raised by the user-level programming of the Analytical Engine. It would be quite wrong to infer that Babbage did not understand programming per se. The microprogramming of the barrels for multiplication and division show command of the basic branching and looping ideas and his skills in the microprogramming of addition and subtraction show complete virtuosity. It was from this base that Babbage explored the ideas of user-level programming.
(Offensichtlich hatte Babbage keine klare Vorstellung von einer User-Level-Programmierung der Analytical Engine und den dabei auftretenden Problemen. Daraus kann man aber definitiv nicht schließen, daß Babbage die Programmierung als solche nicht verstand. Die Mikroprogrammierung der Schaltwerke für die Multiplikation und Division zeigt, daß er die grundlegenden Konzepte von Verzweigungen und Schleifen beherrschte, und seine Mikroprogrammierung der Addition und Subtraktion zeugen von einer wirklich virtuosen Beherrschung dieser Konzepte. Von dieser Mikroprogrammierung aus erforschte Babbage die Möglichkeiten der User-Level-Programmierung.)Babbages Reifegrad beim user-level programming kann man vor allem aus den Beispielprogrammen, die sich in den privaten Notizen finden, ableiten. Bromley (1982) macht hierzu auf S. 215 eine wichtige Beobachtung:
"Some two dozen programs for the Analytical Engine exist dated between 1837 and 1840. Strictly speaking, they are not programs in the modern sense, but are walkthroughs of particular execution instances of programs. In consequence, the mechanism by which the sequencing of operations is obtained is obscure."
(Es gibt etwa zwei Dutzend Programme für die Analytische Engine, die zwischen 1837 und 1840 datiert sind. Streng genommen sind dies keine Programme im modernen Sinne, sondern schrittweise Beschreibungen von einzelnen Ausführungen der Programme. Infolgedessen bleibt der Mechanismus, wie der Ablauf der einzelnen Rechenschritte gesteuert wird, unklar.)Sowohl Babbage als auch Ada Lovelace haben in Fällen, wo ein vorhandener mathematischer Algorithmus in ein Programm umzusetzen war und wo dieser mathematische Algorithmus geschachtelte Schleifen erforderte, diese Steuerstruktur nicht 1:1 in geschachtelte Programmschleifen umgesetzt - das kann man nur mit den Konzepten und Notationsformen höherer Programmiersprachen -, sondern die äußere Schleife "entfaltet". Dabei werden die aufeinanderfolgenden Durchläufe der inneren Schleife hintereinander als Kommandos aufgeschrieben. Dies meint Bromley, wenn er von "walkthroughs of particular execution instances of programs" spricht. Ein Beispiel hierzu von Babbage ist ein "Programm" aus dem Jahr 1838, es berechnet die Koeffizienten des Produkts zweier Polynome (Faksimile s. Wolfram (2015)). Ein weiteres Beispiel ist das legendäre Bernoullizahlen-Programm von Ada Lovelace. Diese entfalteten Schleifen enden aber nach wenigen Iterationen der äußeren Schleife und sind keine korrekte, allgemeine Implementierung des konzeptuell zugrundeliegenden mathematischen Algorithmus (den man von Hand ausführen könnte). D.h. die eigentliche Herausforderung, komplexe user-level-Ablaufstrukturen, die durch die mathematischen Algorithmen klar definiert waren, programmtechnisch umzusetzen, haben weder Babbage noch Ada Lovelace gemeistert. Neben fehlendem methodischen Wissen kann dabei auch eine Rolle gespielt haben, daß die Analytical Engine offenbar keine geschachtelten Schleifen ausführen konnte. Die ersten Versionen der Analytical Engine hatten einen ungünstigen Befehlssatz; Babbage verbesserte aufgrund der umständlichen Programmierung den Befehlssatz punktuell. Diese historische Entwicklung im Zeitraum 1837 - 1840 und die 27 in dieser Zeit von Babbage geschriebenen Programme werden in Rojas (2016c) genauer beschrieben.
Die wissenschaftliche Leistung von Babbage
Von weitem betrachtet ist die Analytical Engine so ähnlich wie der Jacquardwebstuhl, also nur eine Maschine, die durch Lochkarten gesteuert wird und statt mit Nadeln und Fäden eben mit Zahlen umgeht. Dies übersieht den entscheidenden Punkt: Addierer, Multiplizierer und andere Rechenwerke sind eine oder zwei Größenordnungen komplexer als die Mechanik eines Jacquardwebstuhls oder andere damals bekannte Maschinen. Vermutlich war die Analytical Engine die mit Abstand komplexeste im Prinzip funktionsfähige Maschine (geplant waren 55.000 Teile), die seinerzeit entworfen wurde. Daß Babbage als einzelne Person in wenigen Jahren neben anderen Aktivitäten ein derart komplexes System entwickeln konnte, hängt mit einer entscheidenden wissenschaftlichen Leistung zusammen: er löste sich von den damals üblichen mechanischen Zeichnungen bzw. Funktionsdarstellungen und benutzte Ablaufpläne und andere Diagramme, die er "Mechanical Notation" nannte und die die logische Funktion der Maschine beschrieben und von den geometrischen bzw. mechanischen Details abstrahierten. Anders hätte er z.B. zustandsabhängiges Verhalten nicht verstehen bzw. planen können. D.h. er schuf neue, abstraktere Denkkategorien, in denen er die Probleme bei der Konstruktion eines programmgesteuerten Rechenautomaten durchdachte und Lösungen ausarbeitete (s. auch Abschnitt Babbage's Secret Sauce in Wolfram (2015)). Diese Trennung mehrerer Abstraktionsebenen ist heute bei der Entwicklung von digitalen Systemen völlig selbstverständlich, damals war es ein Quantensprung. Eine weitere entscheidende Innovation von Babbage bestand in der Entwicklung einer einfachen Programmiersprache. Die Lochkarten, auf denen jeweils ein Kommando codiert war, entsprechen zwar nicht dem üblichen Textbegriff, stellen aber trotzdem Texte dar, und zwar maschinell verarbeitbare. Die Wichtigkeit dieser "Kommandosprache" wird leicht unterschätzt: Der Rechnerkern mußte einen Interpreter für Kommandos enthalten, der die auszuführende Operation und die Operanden eines Kommandos identifizierte und dann die Operationausführung startete. Babbage mußte diese Sprache leistungsfähig genug ausgestalten, um die mathematischen Algorithmen, die er maschinell ausführen wollte, auch implementieren zu können. Er muß sich also auch intensiv mit dem Umfang seiner Programmiersprache beschäftigt haben, ein völlig neue Fragestellung in seiner Zeit. Die bahnbrechende wissenschaftliche Leistung von Babbage lag also nicht nur darin, eine einzelne konkrete datenverarbeitende Maschine entworfen zu haben, sondern auch Methoden, Notationsformen und Architekturen, wie man solche Maschinen überhaupt entwerfen kann. Daß man diese Maschinen dann auch benutzt, um auf Benutzerebene Applikationen zu programmieren, versteht sich von selbst, ist aber im Vergleich zur Konstruktion der Maschine fast Nebensache. Wie sein Biograph Bruce Collier in CHAPTER FIVE - Conclusion gut darstellt, war Babbage seiner Zeit mit diesen Innovationen ein Jahrhundert voraus. Obwohl Babbage als hochdekorierter Mathematik-Professor wußte, wie man publiziert, hat er fast nichts über die Versionen der Analytical Engine und die Mechanical Notation publiziert, eventuell weil er sie nicht für reif genug hielt. Entwürfe entsprechender Papiere wurden erst später in seinem Nachlaß gefunden.Babbages Vortrag in Turin, 1840
1840 hielt Babbage einen Vortrag über die Analytical Engine in Turin. Federico Luigi Menabrea, ein italienischer Ingenieur, verfaßte mit Babbages Einverständnis auf Basis dieses Vortrags eine allgemeinverständliche Erklärung der Analytical Engine auf Französisch (Menabrea (1842)). In diesem Text findet man drei Beispielprogramme, die die Funktion der Maschine erläutern. Ada Lovelace hat 1843 Menabreas Text ins Englische übersetzt (Menabrea (1843)), ist also nicht Autor, sondern nur Übersetzer dieses Textes und der darin enthaltenen Beispielprogramme. Ferner hat sie einen längeren Anhang ("Notes by the translator") selber geschrieben, der in mehreren Anmerkungen den Menabrea-Text vertieft erläutert. Die Anmerkungen sind mit "Note A" bis "Note G" überschrieben und werden üblicherweise als "the Notes" bezeichnet. Dieser Anhang wiederholt und ergänzt Programmfragmente aus dem Menabrea-Text und enthält genau ein neues Programm, das die Bernoullizahlen berechnen soll. Dieses Bernoullizahlen-Programm ist das einzige Programm, das Lovelace (angeblich) alleine geschrieben hat, es wird üblicherweise als Nachweis genannt, Lovelace sei der historisch erste Programmierer.Werdegang und Ausbildung
Ada Lovelace wurde am 10. Dezember 1815 geboren als Tochter von Anne Isabella Noel-Byron, 11. Baroness Wentworth, und George Gordon Byron (genannt Lord Byron) geboren. Sie war einzige eheliche Tochter von Lord Byron. Die Eltern trennten sich kurz nach Adas Geburt, was einziges gesellschaftliches Aufsehen erregte. Ada war während ihrer Kindheit häufig und teilweise sehr lange krank. Sie heiratete 1835 William King, der 1838 Earl of Lovelace wurde, sie demzufolge Countess of Lovelace. Zwischen 1836 und 1839 gebar sie 3 Kinder. Ada Lovelace verkehrte regelmäßig am Hof und war selbst für eine Adelige aufgrund Ihres Aussehens und guten Auftretens eine überdurchschnittlich bekannte Person. Als Mitglied der Oberklasse hatte Ada Kontakt zu vielen Künstlern und Wissenschaftlern, die immer wieder als ihre Lehrer genannt werden. Sie hat offenbar nur Hauslehrer gehabt, nie eine öffentliche Schule oder eine Universität besucht und daher auch keine formalen Prüfungen absolviert. Unklar bleibt, wie intensiv der private Unterricht war, teilweise scheint es sich eher um Briefwechsel gehandelt zu haben. Auf Wunsch Ihrer Mutter bekam sie ungewöhnlich viel Mathematikunterricht. Von Augustus De Morgan, einem ihrer Lehrer, wurde sie als sehr begabt eingestuft. Ada entwickelte vielfältige Interessen, oft erwähnt werden Phrenologie und Mesmerismus, aus heutiger Sicht okkulte Pseudowissenschaften. Wenn man diese breiten Interessen und ihre gesellschaftlichen Verpflichtungen (die Kindererziehung wurde ggf. auf Personal übertragen) zusammenzieht, bleibt nicht viel Zeit für ein intensives mathematisches Training.Mathematische Qualifikation von Ada Lovelace
Im Rahmen der Glorifizierung von Ada Lovelace als feministische Ikone wird sie regelmäßig als Mathematikerin bezeichnet, wahlweise sogar als hochqualifizierte oder führende. Für diese These sind aber keine Belege bekannt, z.B. Zeugnisse oder andere Nachweise besonderer mathematischer Leistungen, ebenfalls keine Publikationen mit mathematischem Inhalt. Unklar ist, ob die Berichte über ihre Begabung durch ihre Hauslehrer Gefälligkeitsurteile waren. Laut Stein (1985), die den umfangreichen Briefverkehr von Ada Lovelace mit ihren Lehrern untersucht hat, war aber der jahrelange (Fern-) Unterricht wenig erfolgreich:At twenty-eight, [...] and after ten years of intermittent but sometimes intensive study, Ada was still a promising "young beginner".
(Mit achtundzwanzig Jahren [...] und nach zehn Jahren wiederholt unterbrochenem, aber manchmal intensivem Studium war Ada immer noch ein vielversprechender "junger Anfänger".)Stein wies anhand der Korrespondenz von Ada Lovelace nach, daß sie grundlegende mathematische Techniken wie Variablensubstitutionen nicht beherrschte und daß Ada Lovelace auch die Analytischen Maschine nur unvollständig und stellenweise falsch verstanden hat. Eventuell waren dies aber nur Flüchtigkeitsfehler. Sie konnte offenbar die mathematischen Formeln, die das Bernoullizahlen-Programm berechnen sollte, nicht selber bestimmen, denn sie bat Babbage darum, ihr diese Formeln zu liefern. Es bestehen daher erhebliche Zweifel, ob die tatsächlichen mathematischen Qualifikation von Ada Lovelace die Bezeichnung "Mathematiker" rechtfertigen und ob sie fähig war, alleine anspruchsvolle mathematische Algorithmen zu entwerfen.
Ada Lovelace und Babbage
Ada Lovelace lernte 1833 Babbage kennen. Babbage war seit 1828 Lucasian Professor of Mathematics in Cambridge, hatte damit eine der prestigeträchtigsten Professuren inne und war ein erfahrener, sehr vielseitiger Forscher, Mathematiker und Erfinder. Andererseits stand Babbage gesellschaftlich eine ganze Stufe unter der adeligen Ada Lovelace. Obwohl er ein erfolgreicher Professor und Erfinder war, fehlte ihm stets Geld, um die sehr teuren Prototypen seiner Erfindungen zu realisieren. Er war daher immer darauf aus, prominente Unterstützer für seine Projekte zu haben. Ada Lovelace war wegen ihrer Prominenz und Attraktivität für Babbage ein idealer Promotor seiner Projekte. Intellektuell, insb. als Mathematiker und Konstrukteur, war Babbage Ada Lovelace haushoch überlegen, es ist nicht davon auszugehen, daß er wissenschaftlich auf ihre Mithilfe angewiesen war. Die Kooperation zwischen Ada und Babbage muß deutlich in diesem Kontext gesehen werden.Die Kooperation von Ada Lovelace und Babbage
Ada Lovelace scheint eine wissenschaftliche Karriere angestrebt zu haben. Ein damals typischer Einstieg war die Übersetzung von wichtigen etablierten Werken. Ada Lovelace bot daher Babbage an, Menabrea (1842) ins Englische zu übersetzen. Dies führte zu einer über viele Monate dauernden intensiven Kooperation der beiden. Ada Lovelace sah sich dabei eindeutig in der Rolle des Berichterstatters und Erklärers der Konzepte der Analytical Engine, dies wird in Wolfram (2015) mit vielen Zitierungen der Korrespondenz belegt.Alleinautorenschaft der Notes
Den Untertitel von Menabrea (1843) "With notes by the Translator Ada ..." kann man als Anspruch auf alleinige Urheberschaft (und nicht nur vollwertige Mitautorenschaft, die niemand infrage stellt) der Notes verstehen, dies wird aus interessierten Kreisen auch regelmäßig so verstanden. Sofern man die heute gültigen, strengen Zitiervorschriften zugrundelegt, hat Ada Lovelace mit diesem Anspruch eindeutig die wesentlichen Beiträge von Babbage zu den Notes verschwiegen. Da sich die Notes aber intensiv auf den Menabrea-Text beziehen und auf diesem aufbauen, ist ein solcher Anspruch auf alleinige Urheberschaft der Notes sowieso seltsam und unsinnig. Er war auch höchstwahrscheinlich nicht von ihr intendiert gewesen und auch von Babbage nicht so verstanden worden (sofern man Babbage nicht unterstellt, daß er seine Mitwirkung an den Notes bewußt verheimlicht hat, weil er durch die offizielle Alleinautorenschaft von Ada Lovelace ihre werbliche Unterstützung seiner Projekte kompensieren wollte). Es bestehen daher gravierende Zweifel, ob Ada Lovelace die "Notes" und speziell das Bernoullizahlen-Programm alleine verfaßt hat. Der Historiker Bromley (1990) verneint die inhaltliche Autorenschaft eindeutig:Ada Lovelace has sometimes been acclaimed as the "world's first programmer" on the strength of her authorship of the notes to the Menabrea paper. This romantically appealing image is without foundation. All but one of the programs cited in her notes had been prepared by Babbage from three to seven years earlier. The exception was prepared by Babbage for her, although she did detect a "bug" in it. Not only is there no evidence that Ada Lovelace ever prepared a program for the Analytical Engine but her correspondence with Babbage shows that she did not have the knowledge to do so.
(Ada Lovelace wurde manchmal als "der weltweit erste Programmierer" aufgrund ihrer Autorenschaft der Notizen an der Menabrea-Papier gefeiert. Dieses romantisch ansprechende Bild ist unbegründet. Abgesehen von einer Ausnahme waren alle in ihren Notizen zitierten Programme von Babbage zwischen drei und sieben Jahren vorher entwickelt worden. Die Ausnahme wurde ebenfalls von Babbage für sie entwickelt, allerdings entdeckte sie einen Fehler darin [und war insofern Ko-Autor]. Es fehlt nicht nur jeglicher plausibler Nachweis, daß Ada Lovelace jemals eigenständig ein Programm für die Analytische Engine entwickelt hat, sondern ihre Korrespondenz mit Babbage zeigt im Gegenteil, daß sie dazu nicht das Wissen hatte.)Die Einschätzung von Bromley, daß Ada Lovelace fachlich nicht in der Lage war, selber komplexe Programme zu schreiben, und daß sie beim Schreiben der Notes eher die Rolle eines Redakteurs hatte, der von Babbage instruiert wurde, wird auch von Rojas (2016a) unterstützt. Er weist hier auf erhebliche Fehler in der Ablaufsteuerung des Bernoullizahlen-Programms hin: Eine Reihe wesentlicher Sprunganweisungen fehlt, das Programm terminiert offensichtlich nicht, und
Ada geht im Text davon aus, dass das Programm an diesen Stellen einfach den jeweils richtigen Weg einschlägt.Babbages Biograph Bruce Collier gibt in seiner Dissertation (Collier (1970)), die auf umfangreicher Quellenforschung basiert, den Ablauf der Entwicklung der Analytical Engine in vielen Zitaten wieder und bemerkt zu Ada Lovelace:
In the summer of 1843, Menabrea's paper was translated by Ada ...; she composed, in extensive consultation with Babbage, a series of long notes to the paper ... . The whole was published in Richard Taylor's Scientific Memoirs for 1843, [92] under the title "Sketch of the Analytical Engine invented by Charles Babbage, Esq;" this was the only extensive paper on the Analytical Engine published in English during Babbage's life, or, indeed, up to the present. Although it is clear that Lady Lovelace was a woman of considerable interest and talent, and it is clear that she understood to a very considerable degree Babbage's ideas about the general character and significance of the Analytical Engine, and expressed them well in her notes to Menabrea's paper, it is equally clear that the ideas were indeed Babbage's and not hers; indeed, she never made any claim to the contrary. She made a considerable contribution to publicizing the Analytical Engine, but there is no evidence that she advanced the design or theory of it in any way. And she did not even express an interest in learning about the machine until January 5, 1841, [93] even as late as June 30, 1843, she apparently knew quite little about the mechanical details of the Engine. [94]
(Im Sommer 1843 wurde Menabreas Papier von Ada ... übersetzt. Sie erstellte, in extensiven Beratungen mit Babbage, eine Reihe von ausführlichen Notizen für der Papier .... Das Ganze wurde in Richard Taylors Wissenschaftlichen Memoiren für 1843 [92] veröffentlicht, und zwar unter dem Titel "Übersichtsdarstellung der analytischen Engine, erfunden von Charles Babbage, Esq"; dies war das einzige umfangreiche Papier über die Analytische Engine, das zu Lebzeiten von Babbage in englischer Sprache veröffentlicht wurde, bzw. genaugenommen sogar bis heute. Obwohl es klar ist, dass Lady Lovelace eine Frau von großem Interesse und Talent war, und es klar ist, daß sie Babbages Ideen über die allgemeinen Merkmale und die Bedeutung der analytischen Engine sehr gut verstanden hat und sie in ihren Notizen zu Menabreas Papier sehr gut ausgedrückt hat, es ist ebenso klar, daß diese Ideen tatsächlich vom Babbage stammen und nicht von ihr; in der Tat hat sie niemals etwas Gegenteiliges behauptet. Sie hat einen erheblichen Beitrag zur Veröffentlichung der Analytical Engine geleistet, aber es gibt keine Hinweise dafür, daß sie das Design oder die Theorie der Analytical Engine in irgendeiner Weise vorangebracht hätte. Und sie zeigte auch bis zum 5. Januar 1841 kein Interesse, Details der Maschine kennenzulernen [93], und sogar noch später am 30. Juni 1843 wußte sie ziemlich wenig über die mechanischen Details der Maschine [94].)
Erstautorenschaft eines Programms
Unstrittig ist, daß Babbage schon Jahre vor Ada Lovelace Programme geschrieben, aber bis auf die Beispiele in Menabrea (1842) nicht veröffentlicht hat. Bromley (1982) hierzu auf S. 197:"... there are several dozen sample programs prepared between 1837 and 1840 (all, incidentally, substantially predating the preparation of Ada Lovelace's notes, which incorporate several of them)."
(... es gibt mehrere Dutzend Beispielprogramme, die zwischen 1837 und 1840 entwickelt wurden (die übrigens alle wesentlich früher als Ada Lovelace's Notes entstanden))Selbst wenn man sich nur auf den Menabrea-Text bezieht, sollte auffallen, daß die im Vortrag von Babbage benutzten Beispielprogramme offensichtlich vor dem Bernoullizahlen-Programm entstanden sind und publiziert wurden. Um den Innovationsanspruch von Ada Lovelace zu retten, wird regelmäßig argumentiert, diese früheren Programme seien "zu einfach" und Ada Lovelace sei der erste, der ein "komplexes" Programm geschrieben (wir reden hier von ca. 25 Zeilen) und publiziert habe. Ein längeres, "komplexes" Programm ist allenfalls hinsichtlich der Ablaufsteuerung qualitativ anspruchsvoller als ein sehr kurzes Programm. Die Länge des Bernoullizahlen-Programms ist aber in erster Linie durch die Entfaltung der äußeren Schleife verursacht, die einzelnen Schleifendurchläufe sind wiederum relativ kurz. Rojas (2016a) weist ferner in der Ablaufsteuerung des Bernoullizahlen-Programm gravierende Lücken nach. Dies sind keine Flüchtigkeitsfehler, es kann als ausgeschlossen gelten, daß Ada Lovelace imstande war, diese Lücken zu füllen, oder daß sie die hier benötigten Prinzipien der Ablaufsteuerung verstanden hätte. (Babbage übrigens auch nicht, denn andernfalls hätte er dies vermutlich verbessert.)
Erfindung grundlegender Konzepte der Computerprogrammierung bzw. von Programmiersprachen
Vielfach wird behauptet, Ada Lovelace habe "grundlegende Konzepte der Programmierung" erfunden, wobei offen bleibt, welche Konzepte hier gemeint sind. Oben wurde schon im Abschnitt Algorithmen vs. Computerprogramme dargestellt, daß sogar ziemlich fortgeschrittene Konzepte der verbalen Formulierung von Algorithmen aus der Mathematik altbekannt waren, z.B. das Konzept einer Schleife. Im Abschnitt über die wissenschaftliche Leistung von Babbage wurde deutlich, daß Babbage durch den Befehlssatz eine komplette Programmiersprache definiert und einen Interpreter dafür implementiert hatte. Damit waren auch die grundlegenden Konzepte der Programmierung dieses Rechners abschließend definiert. Seine eigenen Programme und die von Ada Lovelace mußten mit diesen Konzepten auskommen. Ada Lovelace konnte keine weiteren "Konzepte der Programmierung" erfinden, um sie in ihren Programmen zu nutzen: dies hätte wesentliche Erweiterungen des Rechnerkerns erfordert. Sie hat im Bernoullizahlen-Programm an einer Stelle, wo sie ein mächtigeres Schleifenkonzept hätte einsetzen müssen, nur verbal beschrieben, daß Anweisungen wiederholt werden müssen. An anderer Stelle benutzte sie eine mathematische Mengenklammer, die außerhalb der Syntax der Lochkarten liegt. Letztlich ist sie damit auf die altbekannte "mathematische Sprache der Algorithmenformulierung" zurückgefallen, sie hat damit kein Programmiersprachen-Konzept entwickelt.Beiträge zur Künstlichen Intelligenz
Note G enthält eine oft zitierte Bemerkung, die Analytical Engine könne nichts erfinden oder wie ein Mensch kreativ sein, sondern müsse programmiert werden:The Analytical Engine has no pretensions whatever to originate anything. It can do whatever we know how to order it to perform. It can follow analysis; but it has no power of anticipating any analytical relations or truths.
(Die Analytische Maschine erhebt keinerlei Anspruch, irgendetwas kreativ zu erschaffen. Sie kann alles tun, von dem wir wissen, wie sie anweisen, es zu tun. Sie kann auf einer Analyse aufbauen; sie hat aber keine Fähigkeit, vorab irgendwelche analytischen Beziehungen oder Wahrheiten zu erkennen.)Diese Bemerkung wird zum Teil so interpretiert, sie habe (besser als Babbage) die Bedeutung und die prinzipiellen Beschränkungen einer algorithmischen Maschine erkannt. Allerdings hatte Babbage schon 1841 in einem Papier "Of the Analytical Engine" (s. Collier (1970), Kap. 3) genau diese Möglichkeiten und Limitationen eines programmierbaren Rechenautomaten sehr genau ausgedrückt:
... to state what it cannot accomplish. It cannot invent. .... It cannot in fact do anything more than perform with absolute precision and in much shorter time those series of operations which the hand of man might itself much more imperfectly accomplish.
(... festzustellen, was sie nicht erreichen kann. Sie kann nicht erfinden. .... Sie kann in der Tat überhaupt nichts, was darüber hinaus geht, mit absoluter Präzision und in viel kürzerer Zeit Serien von Rechenoperationen durchzuführen, die von Menschenhand nur sehr viel unperfekter erledigt werden könnten.)Ferner findet sich sogar im übersetzten Menabrea-Papier ein entsprechender Satz:
... for the machine is not a thinking being, but simply an automaton which acts according to the laws imposed upon it.
(Denn diese Maschine ist kein denkendes Lebewesen, sondern nur ein Automat, der nach den Gesetzen handelt, die ihm auferlegt werden.)mit dem Menabrea (also letztlich Babbage) dem staunenden Publikum klar machte, daß diese neue Maschine zwar rechnen, aber keinen denkenden Menschen ersetzen kann. Aufgrund der engen Kooperation von Babbage und Ada Lovelace ist davon auszugehen, daß ihre Bemerkung tatsächlich nur eine Reproduktion des 1841er Papiers von Babbage und der analogen Aussage im Menabrea-Papier und damit indirekt von Babbages Vortrag in Turin ist. Unabhängig davon, wer nun die prinzipiellen Beschränkungen eines Computers zuerst formuliert hat: Sofern man die Äußerungen nicht auf die geringe Rechenleistung der Analytical Engine bezieht, sondern als prinzipelle Bemerkung zum intellektuellen Potential von Computern, haben beide die Fähigkeiten heutiger KI-Systeme durchaus unterschätzt. Sie lagen also mit ihrer nicht genau qualifizierten Einschätzung mehr oder weniger falsch, weil sie den Begriff "Intelligenz" nicht genug durchdrungen hatten und sich die qualitativen Auswirkungen einer milliardenfach höheren Rechnerleistung nicht vorstellen konnten. Ferner ist eine bloße Einschätzung keine echte wissenschaftliche Leistung: Wenn man sich nicht vorstellen kann, wie ein Problem zu lösen ist, dann beweist das nicht, daß keine Lösung existiert.
Ada Lovelace als Visionär
In diversen Quellen wird Ada Lovelace auch zugesprochen, als erste das weitreichende Potential der Analytical Engine und damit moderner Computer erkannt zu haben. Belegt wird dies durch Andeutungen bzw. Visionen in den Notes, die Maschine könne auch symbolische Berechnungen durchführen, Bilder verarbeiten oder Musik komponieren. Note A enthält z.B. den Satz:Supposing, for instance, that the fundamental relations of pitched sounds in the science of harmony and of musical composition were susceptible of such expression and adaptations, the engine might compose elaborate and scientific pieces of music of any degree of complexity or extent.
(Wenn wir z.B. annehmen, die grundlegenden Beziehungen der von Tonhöhen in der Harmonielehre und der musikalischen Komposition wären einer solchen [machinellen] Darstellung und Adaptierung zugänglich, dann könnte die Maschine aufwändige und wissenschaftliche Musikstücke von beliebiger Komplexität oder und beliebigem Umfang komponieren.)Diese These steht, wenn man Musikkomposition als kreativen Akt versteht, in klarem Gegensatz zur vorherigen These, ein Recher könne nicht kreativ sein. Um den offensichtlichen Widerspruch zwischen den beiden Aussagen aufzulösen, kann man vermuten, daß Ada Lovelace nicht verstand, was sie da schrieb, oder daß die These von der Musikkomposition mit sehr einschränkenden Annahmen zu verstehen ist, oder daß sie jede Gelegenheit blindlings nutzte, der Analytical Engine (gemäß ihrer hochtrabenden Selbstbezeichnung "analytisch") ein nach oben offenes Potential zu bescheinigen. Für letzteres spricht, daß Ada Lovelace sich als "Verkäufer" und Promotor der Erfindungen von Babbage verstanden hat. Helmut Schmidt fand: "Wer Visionen hat, soll zum Arzt gehen." Wenn Visionen und Andeutungen mehr sein sollen als wilde Spekulationen, die jeder Klatschreporter anstellen kann, dann müßten zumindest Lösungansätze mitgeliefert werden, wie die Vision realisiert werden kann. Dies ist hier nicht der Fall. Wegen der weitgehenden Unkenntnis der internen Funktionsweise der Analytical Engine dürfte Ada Lovelace unklar gewesen sein, daß symbolische Berechnungen weit jenseits der Möglichkeiten einer mechanischen Rechenmaschine liegen. Wegen der fehlenden mathematischen Bildung dürfte sie ferner die Schwierigkeit symbolischer Berechnungen radikal unterschätzt haben. Im Endeffekt kann man ihre "Visionen" nicht als qualifierte Prognosen des langfristigen Potentials programmgesteuerter Rechner ansehen.
Gesamteinschätzung der Leistungen von Ada Lovelace
Eine halbwegs unvoreingenommene Bewertung von Ada Lovelace und ihren wissenschaftlichen Leistungen würde sie als guten Wissenschaftsreporter oder als Mitglied einer Forschungsgruppe einstufen. Diverse Biographen von Babbage oder von Ada Lovelace, die die Originalquellen intensiv studiert haben, finden keine Hinweise auf eine signifikante eigenständige wissenschaftliche Leistung ihrerseits. Die These, Ada Lovelace sei die alleinige oder auch nur dominierende Erfinderin "des Programmierens" oder gar Miterfinderin der Analytical Engine, sind unhaltbar und stammen durchweg von Personen, die keine eigene Quellenforschung betrieben haben. Andererseits wird der Satz von Collier "She made a considerable contribution to publicizing the Analytical Engine." in seiner Bedeutung leicht unterschätzt: Ohne die Initiative von Ada Lovelace gäbe es die Notes nicht. Der Text ist zwar nur 25 Seiten lang, sie hat aber rund ein halbes Arbeitsjahr in das Schreiben investiert und Babbage durch eine Vielzahl von Rückfragen genötigt, genauere Angaben zu machen und seine Gedanken zu schärfen. Damit ist sie zwar nicht Alleinautor, aber ein vollwertiger Mitautor dieser zentralen Publikation. Ob die orginale französische Version des Menabrea-Textes auch nur entfernt die gleiche Rezeption erhalten hätte wie die englische Version mit den Notes, ist zu bezweifeln. Ada Lovelace hat sich also erhebliche wissenschaftsjournalistische Verdienste erworben, die man nicht kleinreden sollte, nur weil ihr 100 Jahre später viel umfangreichere, nicht zutreffende Leistungen angedichtet wurden.- direkte Falschaussagen über Ada Lovelace,
- rhetorische Tricks, also Aussagen, die wörtlich nicht falsch sind, aber eine falsche Aussage suggierieren,
- allgemeine Glorifizierungen und unhaltbare Vergleiche mit anderen herausragenden Persönlichkeiten.
Falschaussage: "She is the world's first computer programmer"
findet die Ada Initiative, übrigens als dummdreiste Antwort auf Diskussionen, man müsse Ada Lovelace aus der Geschichte der Informatik streichen. https://anydayguide.com/calendar/2617, ein Kalendereintrag für den "Ada Lovelace Day", behauptet "Ada Lovelace, a prominent English mathematician, known as the first programmer". Also Erstautor aller Programme. Aber da geht noch mehr, dachte sich viele Autorinnen und legten noch eine Schippe drauf, oder gleich mehrere, womit wir z.T. bei absurden Glorifizierungen landen. Beispiele:- Ada Lovelace war ganz einfach der Anfang der Programmierung in allen Sprachen der Welt.
- Teresa Nauber in der Welt meint: "Die beiden Wissenschaftler [!] arbeiteten von nun an gemeinsam die Programmiergrundlagen für Babbages Maschinen aus." Eigentlich geht wohl auch Babbages Arbeit und die gesamte Informatik auf Ada Lovelace zurück.
- einstieg-informatik.de schreibt "Die Analytikerin [!] und Computerpionierin [!] Ada Lovelace beschrieb die grundlegenden Konzepte [!] der Computerprogrammierung und die Bausteine, die in jeder [!] Computersprache benötigt werden." Grundlegenden Konzepte der Algorithmik wie Schleifen kennt man seit 2000 Jahren,
- Man könnte sagen, Ada hat hier die Informatik vorhergesagt ("hier" bezieht sich auf oben zitierten Visionen). Man sollte es aber besser nicht sagen.
Rhetorischer Trick: "Ada Lovelace hast als Erste ein komplexes Programm geschrieben."
Mit "Programm" ist das Bernoullizahlen-Programm gemeint. Der rhetorischer Trick besteht hier darin, willkürlich zwischen "komplexen" und "nicht komplexen" Programmen zu unterscheiden, ohne Kriterien für die Abgrenzung anzugeben. Babbage hat vor Ada Lovelace ebenfalls wenigstens ein Programm geschrieben, das "komplexer" als die sonstigen kleinen Programme war. Autoren solcher Behauptungen war vermutlich bewußt, daß Babbage lange vor Ada Lovelace diverse Programme geschrieben hat, man kann also eine Täuschungsabsicht unterstellen. Mit "Programm geschrieben" wird ferner suggeriert, das Bernoullizahlen-Programm sei von ihr alleine verfaßt worden. Diese alleinige Urheberschaft trifft nicht zu, sie wurde von Babbage dabei wesentlich unterstützt.Rhetorischer Trick: "Ada Lovelace hast als Erste ein komplexes Programm veröffentlicht."
Ebenfalls eine Behauptung der deutschen Wikipedia. Formal ist dies insofern richtig, als Ada Lovelace als alleiniger Autor der "Notes" in Menabrea1843 genannt wird. Verschwiegen wird dabei, daß sie damit gegen heute übliche Zitiervorschriften verstoßen hat und daß sie eigentlich die Mitwirkung von Babbage erwähnt haben müßte.Falschaussage: "Sie entwarf Konzepte zur Programmierung einer mechanischen Maschine,..."
... wird in frauen-informatik-geschichte.de behauptet. Kann man dazu ein Beispiel nennen? Also wenigstens ein Konzept, das damit adressierte Problem der Programmierung und die Lösungsidee? Wie schon oben erwähnt haben weder Ada Lovelace noch Babbage Konzepte höherer Programmiersprachen entworfen, was hier suggeriert wird.Rhetorischer Trick: "The engine was never completed so her program was never tested."
Diese Aussage in der englischen Wikipedia wirkt auf den ersten Blick selbstverständlich und überflüssig, dient aber einer Täuschung. Die Aussage "The engine was never completed" ist korrekt, die Aussage "her program was never tested" ist vermutlich korrekt bezogen auf Lovelace selber, allerdings der Kausalzusammenhang "so her program was never tested." ist falsch. Testen kann man Programme auch im Kopf, indem man selber den Ablauf gedanklich simuliert und ggf. Fehler identifiziert - das machen Programmierer ständig. Es geht hier um die Frage, ob das Ada Lovelace zugeschriebene Programm auch richtig funktioniert, denn andernfalls wäre es kein ausführbares Programm, also kein Programm im engeren Sinn, sondern nur ein Text bzw. unfertiger Rohling, der keine Programmierkompetenz belegt. Man hätte auch berechtigte Zweifel, ob sie verstanden hat, was sie da aufgeschrieben hat. Das Programm weist in der Tat erhebliche Fehler auf, s. Rojas (2016). Der rhetorischer Trick besteht hier darin, 1. einem Leser zu suggerieren, man könne ein Programm nur durch Ausführung in einem Rechner testen, und 2. mit dem so eingeschränkten Testbegriff die dem Leser eventuell bekannten Fehler auf die fehlende Testmöglichkeit zurückzuführen. Dabei wird weiter ohne Beweise unterstellt, daß Ada Lovelace, wenn sie die Fehler bemerkt hätte, imstande gewesen wäre, das Programm zu korrigieren. Hieran bestehen ganz erhebliche Zweifel.Falschaussage: "Lady Lovelace's Objection war ein wissenschaftlicher Beitrag"
Dies findet u.a. die deutsche Wikipedia, indem sie diesen als wissenschaftlichen Beitrag von Ada Lovelace listet. In Klammern erwähnt sie vorsichtshalber "Turings Widerspruch dagegen", aber wer ist schon Alan Turing? Und wer mit falschen Thesen andere Forscher dazu veranlaßt, diese zu widerlegen, hat ja auch irgendwie zur Wissenschaft beigetragen, oder? Dieses absurde, aber für Außenstehende nicht durchschaubare Argumentationsmuster verwendet auch findingada.com (s. Abschnitt "A computing legacy").Falschaussage: "Ada Lovelace war eine (britische) Mathematikerin."
Dies behaupten die deutsche Wikipedia und zahllose andere Quellen. Wenn man die gängige Begriffsdefinition von "Mathematiker" zugrundlegt, hatte Ada Lovelace nicht die Qualifikation eines Mathematikers. Die Behauptung ist unbewiesen und von den Analysen von Dorothy Stein widerlegt. Die Biographie http://www.biography.com/people/ada-lovelace-20825323 behauptet ähnlich: "Through Babbage, Ada began studying advanced mathematics with University of London professor Augustus de Morgan." Was ist "advanced mathematics", und hat sie mit Erfolg studiert?Glorifizierung: "Ada and her counterpart Charles Babbage"
Googles Kalendereintrag https://www.google.com/doodles/ada-lovelaces-197th-birthday behauptet allen Ernstes "Augusta Ada King, countess of Lovelace, along with her counterpart Charles Babbage, were pioneers in computing". Das geht jetzt zu weit. Ada Lovelace auf eine Stufe mit Charles Babbage, der sich gerade im Grabe umdreht, zu stellen, ist absurd.Glorifizierung: "Ada Lovelace war Wegbereiter für Alan Turing"
Findet z.B. der Telegraph. Welchen Weg hat Ada Lovelace für Alan Turing bereitet?Rhetorischer Trick: "Ada Lovelace is often referred to as the first computer programmer."
Diese vielfach benutzte Formulierung ist korrekt, Ada Lovelace wird tatsächlich sehr häufig, sogar fast überall als erster Programmierer angesehen, bei einer großen Lüge glauben ganz viele das Falsche. Daraus, daß viele etwas meinen, kann man aber nicht nicht schlußfolgern, daß es auch zutrifft. Der rhetorischer Trick besteht hier darin, diese falsche Schlußfolgerung zu suggerieren. Daß hier das Argumentum ad populum als rhetorischer Trick benutzt wird, ist ein klares Indiz dafür, daß wir es mit einer großen Lüge zu tun haben.- Bromley, Allan G.: Charles Babbage's Analytical Engine, 1838. Annals of the History of Computing 4:3, S. 197-217, doi:10.1109/mahc.1982.10028, 1982. http://athena.union.edu/~hemmendd/Courses/cs80/an-engine.pdf
- Bromley, Allan G.: Difference and Analytical Engines. In Aspray, William: "Computing Before Computers", Iowa State University Press, S. 59-98. ISBN 0-8138-0047-1, 1990. http://ed-thelen.org/comp-hist/CBC-Ch-02.pdf
- Bruce Collier: The Little Engines that Could've: The Calculating Machines of Charles Babbage. Dissertation, Department of History of Science, Harvard University, Cambridge, 1970. http://robroy.dyndns.info/collier/
- Thomas DeMichele: Ada Lovelace Wrote the First Computer Program - Myth. Fact / Myth, 21.08.2016. http://factmyth.com/factoids/ada-lovelace-wrote-the-first-computer-program/
- Eugene Eric Kim, Betty Alexandra Toole: Ada und der erste Computer. Spektrum der Wissenschaft 7 / 1999, S. 80, 1999-07. http://www.spektrum.de/magazin/ada-und-der-erste-computer/825569
- Federico Luigi Menabrea: Notions sur la machine analytique de Charles Babbage. Bibliothèque Universelle de Genève, Oktober 1842, No. 82, S. 351-376, 1842. https://www.bibnum.education.fr/calcul-informatique/cal ... babbage
- Federico Luigi Menabrea, Ada Lovelace: Sketch of the Analytical Engine Invented by Charles Babbage. With notes upon the Memoir by the Translator Ada Augusta, Countess of Lovelace. Taylor's Scientific Memoirs, 1843. http://www.fourmilab.ch/babbage/sketch.html
- Raúl Rojas: Versuch, Ada Lovelace auf die Füße zu stellen. Telepolis, 09.01.2016. http://www.heise.de/tp/artikel/47/47022/1.html
- Raúl Rojas: Die ersten Computerprogramme der Welt. Telepolis, 18.09.2016. http://www.heise.de/tp/artikel/49/49357/1.html
- Dorothy Stein: Ada - A Life and a Legacy. MIT Press Series in the History of Computing, Cambridge, 1985.
- Stephen Wolfram: Untangling the Tale of Ada Lovelace. stephenwolfram.com, 10.12.2015. http://blog.stephenwolfram.com/2015/12/untangling-the-tale-of-ada-lovelace/
- literatur/Yanes20151209.pdf