Tuesday, March 17, 2009

Und los geht's:
Rheingold unterscheidet in seinem Buch zwischen den Patriarchen, die mit ihren Ideen den Grundstein für die gesamte behandelte technische Geschichte legten. Darauf folgen, grob chronologisch, die Pioniere, die sich verstärkt dem Aspekt der Mensch-Maschine-Interaktion widmeten. Am Ende schreibt er über die sogenannten Infonauten, die als Beispiel für die Visionäre der Zukunft stehen.
In der Neuauflage von "Tools for Thought" aus dem Jahre 2000 schreibt Rheingold dann im Nachwort noch von seinen eigenen Erfahrungen und in wie weit seine Vermutungen von 1985 sich als richtig erwiesen...oder eben nicht.

Die Patriarchen
Charles Babbage
Charles Babbage
Charles Babbage lebte von 1791 bis 1871 und war englischer Mathematiker, Philosoph und Exzentriker. Er hatte die Idee zu einer so genannten "Difference Engine", eine Maschine, mit der sich mathematische Berechnungen durchführen lassen sollten. Babbage war begeisterter Mathematiker. Zu seiner Zeit, als es noch keine Taschenrechner gab, mussten jedoch Dinge wie Logarithmen noch aus diversen Tabellen abgelesen werden. Und diese mussten vorher erst von Menschenhand ausgerechnet werden. Die Menschen, die eben dieses taten, hießen damals Computers und waren, wie alle Menschen, nicht ganz fehlerfrei. Babbage, der es wohl satt war, alle Logarithmen nachrechnen zu müssen, wollte den Mensch als Fehlerquelle bei mathematischen Berechnungen ausschließen. Zu diesem Zweck plante er eine Maschine zu bauen, die eben diese Berechnungen durchführen kann. Die "Difference Engine".
Selbst verwirklicht hat er sie nur teilweise, da die damalige Technik (Mechanik, Werkstofftechnik etc.) für seine Zwecke noch nicht ausreichte. Nichts desto trotz entwickelte er seine Pläne weiter und machte aus der "Difference Engine" eine "Analytical Engine". Diese war flexibler, weil programmierbar. Zu diesem Zweck sollte sie mit einem Programm in Form von Lochkarten gefüttert werden und dann die entsprechenden Algorithmen ausführen.
Hilfe bei der Programmierung hatte er dabei von der jungen Ada Lady Lovelace, der laut Rheingold ersten Programmiererin der Geschichte. Sie entwickelte so zentrale Konzepte wie Schleifen, Weichen und Sprünge im Programmtext, die Grundlage jeder heutigen Programmiersprache sind. Leider starb sie sehr jung.



George Boole
An dieser Stelle folgt ein kleiner Exkurs zu dem englischen Mathematiker und Logiker George Boole, der von 1815 bis 1864 lebte. Er entwickelte die nach ihm benannte Algebra, mit Hilfe derer logische Berechnungen durchgeführt werden können. Die Boole'sche Algebra besteht aus zwei Elementen 0 und 1 sowie den zwei grundlegenden Operatoren nicht und und. Alle anderen benötigten Operatoren wie oder können aus Kombinationen dieser beiden gewonnen werden.
Die Boole'sche Algebra war zu Zeiten ihrer Veröffentlichung wenig aufsehenerregend und kaum beachtet. Ihre Wertschätzung erhielt sie erst, als man beim Bau der ersten elektrischen Computer eine Möglichkeit suchte, deren Funktionweise berechnen zu können. Da Strom auch nur fließen (entspricht der 1) oder nicht fließen kann (entspricht der 0), hatte man in der Algebra von George Boole eine passende Berechnungsgrundlage gefunden. Das erlebte der gute George allerdings nicht mehr mit.

Alan Turing

Alan Turing
Alan Mathison Turing war englischer Mathematiker und lebte von 1912 bis 1954.
Er arbeitete im 2. Weltkrieg für die englische Regierung als Code-Brecher und entschlüsselte so beispielsweise den Code der deutschen Enigma-Maschine. Durch seine Arbeit konnten deutsche Navigationsnachrichten entschlüsselt und so der U-Boot-Krieg gewonnen werden. Für Rheingold's Buch jedoch wesentlich interessanter ist ein Gedankenexperiment Turings: die Turing-Maschine.
Hierbei handelt es sich um eine imaginäre Maschine, die im Grunde genommen jedes beliebige lösbare Problem lösen kann. Was immer berechnet werden kann, diese Maschine kann es berechnen. Und funktionieren tut das Ganze so:
Die Maschine besteht aus 3 Teilen. Das erste Teil ist ein beidseitig endloses Band. Es ist aufgeteilt in Segmente, welche die Informationen enthalten. Jedes Segment enthät beispielsweise eine 1 oder eine 0.
Das zweite Teil ist der Schreib-/Lesekopf. Dieser kann entweder ein Segment nach links oder rechts fahren und Informationen vom Band lesen und auf das Band schreiben. Der dritte Teil ist das Schaltwerk, das die Zustände der Maschine steuert. Also im Grunde das Programm, das der Maschine sagt, was sie tun soll. Zur Verdeutlichung, hier ein kleines Schema.
Mit dem entsprechenden Programm lässt sich mit dieser Maschine theoretisch jede erdenkliche Rechenoperation durchführen. Damit hat Turing (zumindest auf dem Papier) einen der ersten Computer entwickelt.
1952 wurde er dann eines "Aktes großer Unanständigkeit" für schuldig befunden, weil er ein Verhältnis mit einem Mann hatte. Für einen Homosexuellen im Grunde nichts außergewöhnliches, zur damaligen Zeit allerdings schon. Deshalb wurde er zur Hormon-Therapie gezwungen. 2 Jahre später aß er einen in Cyanid getränkten Apfel und starb.

Wer mal selbst die Funktionsweise einer Turing-Maschine nachempfinden möchte: hier gibt's das Beispiel aus Rheingolds Buch. Am Ende müssen doppelt so viele Xs wie vorher auf dem Band stehen.



John von Neumann


John von Neumann
Der letzte von Rheingolds Patriarchen ist John von Neumann. Er wurde als Janos Neumann 1903 in Ungarn geboren und lebte ab 1933 als John von Neumann in den USA. Dort arbeitete er für das amerikanische Militär am "Manhatten Project" mit, das die Atom-Bombe entwickelte.
Er leistete wichtige Beiträge zur Entwicklung der ersten Computer ENIAC (Electronic Numerical Integrator And Computer) und EDVAC (Electronic Discrete Variable Automatic Computer), die zur Berechnung von Flugbahnen der Artilleriegeschosse verwendet wurden. Grundlegend für den Aufbau vieler Computer in den folgenden Jahren ist die von ihm beschriebene Rechner-Architektur. Laut von Neumann sollte ein Computer modellhaft so aufgebaut sein.
Das heißt, ein Computer besteht idealerweise aus einem Prozessor, einem Speicher und einem Interface für die Kommunikation zwischen Nutzer und Rechner, also einem Ein- und Ausgabeteil. Der Prozessor welchselt dabei immer zwischen zwei Arbeitsschritten. Im ersten liest er aus dem Speicher seine Programmanweisungen. Also was er mit den Daten tun soll. Im zweiten Schritt holt er sich die Daten und wendet seine Programmanweisungen an. Im Idealfall gibt er das dann auch aus. Nach dem gleichen Prinzip funktionieren noch heute unsere Computer.
Nebenbei war von Neumann übrigens auch noch ein nicht unbedeutender Physiker und Ökonom, was jedoch in diesem Zusammenhang nicht weiter von Belang ist. Er starb 1957.











J.C.R. Licklider

Die Pioniere
J.C.R. Licklider
Die Abkürzungen weggelassen, heißt der Mann Joseph Carl Robnett Licklider und lebte von 1915 bis 1990.
Er war amerikanischer Computer-Wissenschaftler und gleichzeitig Visionär, ähnlich wie alle seine Vorgänger in diesem Buch. Er entwickelte Ideen von vernetzten Computern mit intuitiven Nutzer-Oberflächen, mit Hilfe dessen der Mensch den Computer tatsächlich als Werkzeug zum Denken würde benutzen können. Im Jahre 1960 erschien dazu sein Artikel „Man-Computer Symbiosis“ zur Interaktion zwischen Mensch und Maschine.
Ab 1962 war Licklider Chef von ARPA (Advanced Research Projects Agency), einer gut geförderten Forschungseinrichtung des US-Verteidigungsministeriums. Von dort initiierte er Project MAC, das sich mit der Entwicklung von Time-Sharing-Systemen beschäftigte. Dabei handelt es sich um eine Art Computer-Netzwerk, das es den Nutzern ermöglichen sollte, interaktiv mit einem Computer zu arbeiten. Beim Time-Sharing sind mehrere Nutzer mit einem Mainframe-Rechner verbunden. Jeder arbeitet an seinem eigenen Terminal und teilt sich mit den anderen Nutzern die Rechenpower des Mainframe-Computers. Weil bei vielen Nutzern gleichzeitig die Rechenleistung schonmal an ihre Grenzen stieß, entwickelte sich der Beruf des Programmierers (von Rheingold liebevoll als Hacker bezeichnet, die allerdings nichts mit den heutigen Hackern zu tun hatten) immer mehr zum Nacht-Job. Nachts war der Mainframe-Rechner einfach weniger belastet, und es konnten auch komplexe Programme ausgeführt werden.
Ab 1968 war Licklider dann Leiter von Project MAC.

"Man-Computer Symbiosis" als *.pdf gibt es hier zum Angucken und Behalten: licklider.pdf






Douglas Engelbart

Douglas Engelbart
Ähnlich wie Licklider, so setzte es sich auch der 1925 geborene Doug Engelbart zum Ziel Technologien zu entwickeln, um direkt mit dem Computer kommunizieren zu können. Zu diesem Zweck gründete er ARC, das Augmentation Research Center, wo er mit vielen anderen Forschern an der Umsetzung dieser Ideen arbeitete.
Was dabei heraus kam, stellte er 1968 in der "Mother of all Demos" seinen erstaunten Kollegen vor. Bei dieser Demonstration zeigte er viele damals revolutionäre Ideen und Konzepte, die für uns heute zum Standard gehören und sich nur schwer weg denken lassen. So zum Beispiel eine grafische Oberfläche (Bitmapping) und die Maus. Damals noch aus Holz.
Wer sich davon selbst einen Eindruck verschaffen will: Diese Demonstration wurde damals mitgefilmt, und diesen Film gibt es immer noch unter dieser Adresse.


Die Ur-Holz-Maus sah im Übrigen so aus:

Engelbarts Maus

Alan Kay

Alan Kay
Genau wie seine pionier-haften Vorgänger weiter oben, widmet sich Alan Kay der Architektur und Entwicklung von graphischen Benutzeroberflächen. Geboren wurde er 1940, ab 1970 war er Forscher im Xerox PARC.
Für sein "Dynabook", quasi den Vorläufer des heutigen Laptops, entwickelte er Engelbarts Idee der graphischen Benutzeroberfläche noch weiter (überlappende Fenster) und erfand die erste objekt-orientierte Programmiersprache. Sie heißt Smalltalk. Ihm war dabei wichtig, dass die Bedienung und das Arbeiten am "Dynabook" so intuitiv wie möglich abläuft. Beeinflusst wurde er dabei von Seymour Papert, der eine Programmiersprache für Kinder entwickelte. Sie heißt Logo und gibt dem Nutzer die Möglichkeit, die direkten Auswirkungen seiner Befehle zu sehen. Man programmiert dort nämlich eine "Schildkröte", die Linien zeichnet. Wer sich das nur schlecht vorstellen kann, dem sei der Download einer der zahlreichen Implementationen empfohlen, es macht echt Spaß. Zumindest eine Weile...;)

Mehr über das "Dynabook" vom Entwickler selbst gibt es hier als *.pdf: kay.pdf


Die Infonauten
Ted Nelson
Ted Nelson
Im letzten Abschnitt seines Buches widmet sich Howard Rheingold seinen sogenannten Infonauten. Also Menschen, die auf der Arbeit der Patriarchen und Pioniere aufbauen, mit ihnen aufgewachsen sind, und nun die Entwicklung weiter führen könnten. So erwähnt er zum Beispiel Avron Barr, der sich der Entwicklung von Expertensystemen verschrieben hat. Expertensysteme werden als eine Form künstlicher Intelligenz betrachtet und sollen helfen, Wissen zu speichern und präzise anzuwenden.
Ein anderer Infonaut ist Theodor Holm "Ted" Nelson, Jahrgang 1937. Er entwickelte schon 1963 den Begriff des „Hypertext“ und bastelt seit dem an seinem "Project Xanadu". In "Project Xanadu" sollte im Grunde ein großer Wissens-Pool entstehen, auf den alle Nutzer Zugriff haben und ihn manipulieren und verlinken können, wie sie wollen. Von der heutigen Entwicklung des "Hypertext" ist Mr. Nelson nicht sehr begeistert, wie man auf seiner Projekt-Seite erfahren kann. Auch sonst ist er immer für einen netten Spruch zu haben. Diese One-Liners kann sich der geneigte Leser hier gerne mal zu Gemüte führen. Ich kann es nur empfehlen.
Es bleibt festzuhalten, dass Nelson trotz aller Anstrengungen vielleicht etwas zu "visionär" daher kommt und seine Pläne doch mehr oder weniger im Sande verlaufen. Trotzdem ist sein Hauptanliegen, für normale Leute einen einfachen Zugang zu Computern zu schaffen, ein grundlegender Ansatz und seine Ideen und Äußerungen durchaus nachvollziehbar.
Ein sehr schönes Zitat von ihm dazu lautet: „A user interface should be so simple that a beginner in an emergency can understand it within ten seconds.” Ich finde, Software-Entwickler sollten sich diesen Satz auf ein Kissen sticken...