Benutzer:Matthieu/WS08-OSP-Zsfg
Inhaltsverzeichnis
Diese Seite bitte derzeit nicht bearbeiten - Danke! (Under Construction)
Ich bin derzeit dabei, aus den Transkripten eine Stoffzusammenfassung zu erstellen.
Dazu verwende ich LaTeX; die Ergebnisse werde ich auch als PDF hochladen und hier ins Wiki stellen.
Vorläufige PDF-Version: herunterladen
LaTeX-Quelldateien: herunterladen
Status: 55%
Erwartete Fertigstellung: Erste Märzwoche
Open Source Philosophie
- a0600222 Christian Sieberer nach Prof. Herbert Hrachovec
Zusammenfassung
Dieses Dokument ist eine Abschlussarbeit zur von Prof. Herbert Hrachovec im Wintersemester 2008/09 gehaltenen Vorlesung "Open Source Philosophie". Nach einführenden Betrachtungen über die Informatik an sich beinhaltet es eine Stoffzusammenfassung der Vorlesung, die auf den online verfügbaren Audio-Mitschnitten der Vorlesungseinheiten und den entsprechenden Transkripten im Philo-Wiki basiert und auch eigene Kommentare enthält.
Einleitung
Zum Selbstbild der Informationstechnik
Nach zweieinhalb Jahren im Informatikstudium will ich mir vorbehalten, unser Umfeld ausreichend genau beobachtet zu haben, um einige Grundaussagen über unsere Wissenschaft und die darin vorherrschenden Mentalitäten treffen zu können. Ich tue das, weil ich der Meinung bin, dass die Technik, mit der Menschen sich jahrelang beschäftigen, diese eingehend formt und deren Denkweisen dabei verändert. Die Informatik ist keinesfalls ohne Philosophie; sie hat jedoch Prinzipien, die - wie es in der Vorlesung bzw. den Transkripten genannt wird - deutlich von denen Unserer Philosophie, wie wir sie heute kennen abweichen. Und will man das Phänomen Open Source verstehen, kann es nicht verkehrt sein, zunächst einen Blick auf die Informatik an sich zu werfen.
(Bemerkenswerterweise wird freie und Open Source Software erst im dritten Jahr des Informatikstudiums explizit behandelt, und zwar in der Vorlesung "Sozial- und Geisteswissenschaftliche Grundlagen der Informatik"
Natürlich ist die folgende Liste keinesfalls vollständig; sie soll vielmehr dazu dienen, die Kultur der Informatik über die Implikationen der Technologie verständlicher zu machen.
- Informatik ist per definitionem interdisziplinär.
Unsere Fachrichtung benutzt gerne Abkürzungen und hat daher auch eine solche zum Namen gewählt. Informationstechnik impliziert natürlich, dass die zu bearbeitende Information - zumindest wenn sie einen praktischen Nutzen haben oder erzeugen soll - aus einem Anwendungsbereich kommt, den die Naturwissenschaften ebenso bilden können wie die Medizin, die Kommunikationswissenschaften oder die Betriebswirtschaft.
Meiner Meinung nach ist es daher keinesfalls abwegig, sondern geradezu folgerichtig, Philosophie und Informatik auf der Ebene von Konzepten und Phänomenen wie Open Source zu verbinden. - Wir müssen alles formalisieren.
Computer sind Maschinen und werden es mit der gegenwärtigen Technik auch bleiben; selbst wenn wir derzeit gerne von "semantischen Informationssystemen" sprechen und hochtrabend behaupten, dass Rechnernetze Informationen nicht nur interpretieren, sondern auch verstehen könnten - hier spielen Kontextdefinitionen über das weithin bekannte XML (Extendible Markup Language) eine wichtige Rolle - so kann ein Computer doch nicht mehr tun, als Zeichen zu lesen (Eingabe), nach genau spezifizierten Regeln zu verändern (Verarbeitung) und auszugeben.
Zu diesem Zweck sind alle Computer in der Lage, mit einer Reihe von Regelsätzen (Grammatiken) umzugehen, die hierarchisch angeordnet sind und die Sprachen definieren, in denen wir Programme schreiben können. Eine relativ einfache Grammatik bestimmt etwa die Bedeutung von elektronischen Schaltkreisen; eine etwas komplexere die der Maschinen- oder etwa Assemblersprache, die für uns Menschen im Vergleich zu den höheren Sprachen wie C++, Fortran 90 oder Java nur recht schwer zu lesen sind.
Eines ist jedoch all diesen Sprachen gemeinsam: Sie sind vollständig formal definiert. Das bedeutet, dass auf syntaktischer Ebene alle Regeln völlig exakt einzuhalten sind, um ein Programm - egal in welcher Sprache es geschrieben sein mag - zum Laufen zu bringen (und zwar mit genau dem semantischen Inhalt, den der Programmierer durch seinen Code vorgibt; ungewünschte und Fehlfunktionen eingeschlossen). Wenn wir also einen Ablauf aus einem Anwendungsgebiet durch den Computer unterstützen wollen, müssen wir diesen Ablauf zuallererst formalisieren, um ihm dem Computer mitteilen zu können. - Wir sehen die Welt so einfach wie möglich.
Glücklicherweise besteht die Welt, in der wir uns im Alltag bewegen, nicht aus 0 und 1; da ein Computerspeicher aber auf diese beiden Zahlen beschränkt ist, wird jedes Programm durch die oben genannte Hierarchie an Grammatiken letztendlich in eine Folge aus diesen beiden Zahlen gebracht, was eine Reihe von Konsequenzen mit sich bringt:- Je näher die Repräsentationsarten von Daten und Programmen an dieser "natürlichen Computersprache" sind, umso effizienter (= schneller) ist in der Regel deren Ausführung.
- Je simpler die von Programmen ausgeführten Operationen, umso effizienter die Programme. Auf der physischen Ebene lassen sich alle Programme durch eine Abfolge von nur drei Grundbausteinen darstellen: Die Boole'schen Operatoren AND, OR und NOT.
- Je weniger Operationen eine Programmiersprache anbietet, umso effizienter sind deren Programme. Konzeptuell lassen sich alle Programme als Kombinationen von vier Grundoperationen darstellen.
In der Regel profitieren wir also von Vereinfachungen und gehen in der Praxis nach Prinzipien vor, die ihre Effizienz daraus beziehen, uns alles so einfach wie möglich und nur so komplex wie nötig gestalten zu lassen - wir sind also professionelle Minimalisten (KISS - Keep it simple and stupid) und verwenden so oft wie möglich abstrahierende Modelle und Diagramme, um Sachverhalte darzustellen.
- Wir sind doch keine Programmierer.
Korrekt müsste es eigentlich heißen Wir sind nicht nur Programmierer, doch die erste Fassung ist als beruhigend gemeinter Ausspruch zwischen Hörern von Informatikvorlesungen deutlich häufiger anzutreffen. Der Einfachheit halber sei im Folgenden jeder Vorgang, der dem Computer etwas Ausführbares beibringt, als Programmierung bezeichnet, auch wenn wir dabei nicht immer selbst klassischen Code schreiben (je nach Einstellung: müssen/dürfen). Und wenn - etwas überspitzt ausgedrückt - wir als studierte Informatiker uns auch oft als zu gut zum Programmieren sehen, hat doch alles, was wir tun, mit (Programm-) Code zu tun und verlangt eine gute Kenntnis von Programmiertechnik und deren Grenzen. Was wir auf jeden Fall auch sind: Analytiker, Architekten, Mathematiker, Modellbildner, Systemdesigner, Teamarbeiter - und, ob wir wollen oder nicht: der Computer stellt ein brillantes Mittel zur Rationalisierung von Abläufen in einem Unternehmen dar. - Ohne uns läuft nichts.Sir Tim Berners-Lee (links) und Robert Cailliau, Pioniere des WWW. Quelle: http://www.w3.org/2005/06/W3C10-Photos/cailliau-bernerslee.jpg
Ein beliebtes Beispiel, um die Bedeutung von Informations- und Kommunikationstechnik (IKT) zu verdeutlichen, ist die Tatsache, dass keine Bank der Welt länger als 48 Stunden ohne sie überleben könnte. Das Design, die Programmierung und der Betrieb von IT-Systemen bringt also eine Menge an Verantwortung mit sich, die zwar in der Praxis nicht an die ausführenden Einzelpersonen zurückübertragen werden kann (dafür gibt es Verantwortungsträger), die aber trotzdem ständig zu bedenken ist. (Zum Management von Risiken existieren in der IT selbstverständlich vielfältige Ansätze, wie etwa sogenannte IT-Management-Frameworks, siehe zum Beispiel ITIL oder COBIT.)
Eine Grundhaltung, die ausdrückt, wie Selbstorganisation in der Kultur der informatischen Teamarbeit - und damit besonders in Open-Source-Projekten - aussehen kann, wurde von Robert Cailliau, einem der Väter des WWW, folgendermaßen formuliert:
- "We do not believe in kings, presidents and voting. We believe in rough consensus, factual approach and running code."
(Robert Cailliau; ähnlich von David D. Clark, Mitglied der Internet Engineering Taskforce (IETF)
- "We do not believe in kings, presidents and voting. We believe in rough consensus, factual approach and running code."
Informatik und Philosophie
Ich muss gestehen, mit Philosophie im klassischen Sinne nur insofern vertraut zu sein, als ich in der Oberstufe des neusprachlichen Gymnasiums ein Schuljahr lang ein gleichnamiges Unterrichtsfach besucht habe. Vergleiche ich aber die Vorlesung OSP mit denen aus Informatik, so fällt mir ein Unterschied besonders auf:
(Ich beschreibe hier natürlich meine persönliche Sichtweise - es handelt sich also um Beobachtung und Meinung, nicht um Fachwissen; auch wenn ich um Neutralität bemüht bin, muss ich daher darauf hinweisen, dass man zu jedem der in diesem Kapitel genannten Punkte abweichende Meinungen finden wird.)
- "Da dies mein erster Beitrag in diesem Wiki ist, sei es mir vorab erlaubt, als bislang staunend beobachtender Informatikstudent einige Bemerkungen vorauszuschicken: Zuallererst - ich bin begeistert von der Vortrags- und Diskussionskultur in dieser Gemeinschaft, die mir im Vergleich zur gewohnten von außergewöhnlicher Empathie, Behutsamkeit und zugleich Produktivität und Zielstrebigkeit geprägt zu sein scheint."
(Philo-Wiki)
- "Da dies mein erster Beitrag in diesem Wiki ist, sei es mir vorab erlaubt, als bislang staunend beobachtender Informatikstudent einige Bemerkungen vorauszuschicken: Zuallererst - ich bin begeistert von der Vortrags- und Diskussionskultur in dieser Gemeinschaft, die mir im Vergleich zur gewohnten von außergewöhnlicher Empathie, Behutsamkeit und zugleich Produktivität und Zielstrebigkeit geprägt zu sein scheint."
- Im Gegensatz dazu läuft Kommunikation im Bereich der Informatik vielfach kurz ab und verwendet einfache Begriffe, um im gegebenen Kontext möglichst unmissverständlich zu sein;
- Den Prozess der Diskussion, der in der Philosophie den Reiz auszumachen scheint und der bereits dadurch, dass er überhaupt stattfindet, Wert generiert (um es banal auszudrücken), empfinden wir in Vorlesungen oft als störend;
(eine typische Szene aus einer Informatik-Vorlesung: Haben Sie Fragen? - keine Reaktion - Gut, wer von Ihnen hat das jetzt verstanden? - keine Reaktion - Wer hat es nicht verstanden? - dito - Also, Sie überlegen noch. - vereinzeltes Nicken. - Ebenso wie wir eine neue Perspektive auf ein "gelöstes" - also mit derzeitigen Mitteln zufriedenstellend genau berechenbares - Problem eher als redundant denn als bereichernd wahrnehmen;
- Unsere wissenschaftlichen Arbeiten lesen sich oft äußerst trocken, vor allem wenn sie auf Deutsch verfasst sind;
- Wir verwenden gängigerweise Powerpoint-Foliensätze als Vorlesungsskripten;
- Und viele von uns unterschätzen, wie wichtig eine ansprechende Präsentation ist, um guten Arbeitsergebnissen überhaupt die Chance zu geben, bemerkt zu werden.
Stoffzusammenfassung
Einheit I - Lippenbart und Remixing
- Schlagwörter - Remixing, Bart, Zitat, Nachlass Wittgensteins und Nietzsches, Lev Manovich, Assembling, YouTube, Open Source Modell, Was ist Open SourceLev Manovich. Quelle: http://www.uweb.ucsb.edu/~stevenwolfson/manovich.jpgTed Nelson. Quelle: http://www.w3.org/2004/Talks/w3c10-HowItAllStarted/tednelson.jpg
- Wie ist der Zusammenhang zwischen Open Source Software und Philosophie?
"Strukturphilosophie" (Einordnung in einen klassischen Bereich der Philosophie) vs. "Sushi-Philosophie" (Zielgruppenorientierung mit leicht "schleißigem" Touch): OSP soll eine neuartige Betrachtungsweise für ein neuartiges Phänomen sein - pragmatisch an der Zielgruppe jener Leute orientiert, die sich für Open Source interessieren - Welche Anknüpfungspunkte zur traditionellen Philosophie gibt es?
- Rechts- und Sozialphilosophie (geistiges Eigentum etc.)
- Geschichte und Theorie des Eigentums (marxistisch-sozialistische Theorien)
- Griechische Philosophie - antike gesellschaftspolitische vs. heutige technisch-gesellschaftliche Entwicklungen in der Informatik: damals konnte die Philosophie einen Beitrag zur Demokratisierung leisten (Radikaldemokratie) - Philosophie kann daher auch entscheidend viel mit dem "basisdemokratischen" Open Source zu tun haben.
- Die Betrachtung des Phänomens Open Source kann daher den Blick auf die Philosophie selbst verändern
- Welche Botschaft soll Remixing vermitteln?
Remixing funktioniert über Zitate: Man nimmt einen bekannten Fixpunkt her, dessen Bedeutung bisher klar schien (z.B. das Gemälde der Mona Lisa) und fügt neue Elemente dazu (z.B. einen Oberlippenbart im Salvador-Dalí-Stil), sodass etwas Neues entsteht (kulturelle Intervention).
Lev Manovich (Who is the Author? Sampling / Remixing / Open Source): Remixing in der DJ-Szene ab den 1970ern - basierend auf der digitalen Verarbeitung treten neue Formen der Kreativität auf, bspw. das Mischen von unterschiedlichen Tonspuren, die auch wieder auseinander genommen werden können.
Strukturell sind die Nachlässe von Wittgenstein und Nietzsche nach dem Remix-Prinzip aufgebaut. - Was ist Assembling?
"Zusammenstoppeln" von Inhalten wie etwa bei YouTube verändert die Aussage und Aussagekraft von Inhalten, stellt neue Bedeutungen und Assoziationen her - hier kommt die Möglichkeit zur politischen Intervention mit enormer Reichweite ins Spiel
Verschiedene Formen der politischen Beteiligung:
- Live-Veranstaltungen (Protestplakate etc.) - klassisch
- Aufzeichnung der Veranstaltung durch Medientechnologie (Foto, TV) - modern
- Remixes von vorhandenem Material (relativ risikolos, da man nicht so leicht abgeführt werden kann) - vollkommen neuartig durch Plattformen wie YouTube
- Was ist das Open Source Modell?
Ted Nelson - perfekt bugfreie Verweisungsstruktur bei Büchern, bevor es Hyperlinks gab; Links als Remix-Form, die vom User interaktiv und individuell zusammengestellt wird. - Was ist Open Source?
Das gesamte Geschäftsmodell der Softwareindustrie, allen voran das von Microsoft, basierte bis vor kurzem auf der (Ab-) Geschlossenheit und Nicht-Verfügbarkeit des Quellcodes (= jene Dateien, die die Programmbefehle in einer bestimmten Programmiersprache enthalten).
Man bezahlte also für ein (mehr oder weniger) fertiges Endprodukt, das man selbst nicht verändern konnte.
Alternative: Offener, garantiert stets frei verfügbarer Quellcode - erstmals in einem größeren Projekt verwirklicht bei Linus Torvalds' freiem Betriebssystem Linux mit der GNU General Public License (GPL; GNU steht für GNU is not Unix - eine rekursive Definition) von Richard Stallman.
Die GPL erlaubt es, Software beliebig zu verändern, solange die neue Version auch frei zur Verfügung gestellt wird (es gibt keinen Ausweg aus der GPL) In der Philosophie ist das so nicht möglich - bspw. weil es keine objektiven Quelldateien gibt, die von allen Maschinen auf gleiche Art ausgeführt werden könnten; Philosophie spielt sich zu sehr im Kopf ab, um wirklich Open-Source-tauglich zu sein. - Kommentar: Wie sinnvoll ist ein offenes Betriebssystem für Laien?
Hier könnte man provokant anmerken, dass Microsoft mit seinem Monopol der Computernutzung hervorragende Dienste leistet. Man bedenke dazu beispielsweise folgende Punkte:- Kompatibilität - Um auf verschiedenen Betriebssystemen laufen zu können, müssen Programme meist angepasst werden (Ausnahme: bspw. Java-Applikationen - hier bezahlt man die Portierbarkeit aber mit vergleichsweise langen Lade- und schlechten Ausführungszeiten)
- Wartbarkeit - Es existiert eine große Menge an Wissen zu MS Windows
- Benutzerfreundlichkeit - Man versuche, einen neuen Grafiktreiber auf einem Linux-System zu installieren!
- Flexibilität und Austauschbarkeit von Rechnern und Schulungsaufwand für Mitarbeiter
Andererseits steht man gerade als etwas fortgeschrittener Anwender bei einem Windows-System vor einem interessanten Dualismus: Einerseits versucht Microsoft nämlich ganz gezielt, alles als "so einfach wie möglich" zu präsentieren, wie es ja beispielsweise die Werbung für Windows XP unmittelbar nach der Jahrtausendwende suggerierte. Solange man als Benutzer keine allzu hohen Anforderungen an das System stellt, und vom Brennen einer DVD bis zum Bearbeiten der Tags von MP3-Dateien "brav" die integrierten Tools verwendet, wird man damit auch einigermaßen klar kommen; interessant wird es in der Praxis aber oft dann, wenn man sich aus der Bevormundung von Windows befreien will und feststellt, dass doch nicht alles so einfach ist wie es scheint: Gerade wenn Registry-Schlüssel betroffen sind, ist es oft notwendig, an mehreren, meist schlecht dokumentierten Stellen schlicht zu experimentieren, um ein Problem zu lösen.
Windows ist - wie viele Produkte von Microsoft - also hier etwas gespalten: Der Durchschnittsuser hat das Gefühl, damit seinen Computer mehr oder weniger zu beherrschen, während der genervte - plakativ ausgedrückt - Profi das Betriebssystem samt Firma belächelt und den Eindruck gewinnt, Microsoft halte seine Benutzer für naiv.
Meiner Erfahrung nach eignen sich hingegen viele Open Source Produkte nicht für Einsteiger, während sie für den fortgeschrittenen Benutzer überaus mächtige und flexible Funktionalitäten bereitstellen, viel leichter individuell anpassbar und gleichzeitig sehr robust und stabil sind - als Beispiele könnte man hier LaTeX ebenso nennen wie Mozilla Firefox, den Gnome Desktop für Linux, simple Texteditoren wie JEdit oder Emacs, oder auch die beliebte Entwicklungsumgebung Eclipse.