Freie Software Weblog

Winfried Mueller, www.reintechnisch.de

05.05.2013 :: Gelungene Kapselung von Komplexität

Anfangs war Linux und freie Software nur was für Freaks, die ihre Herausforderung darin sahen, jedes Detail eines Systems zu erkunden und zu verstehen. Ein paar Jahre später wurden die Benutzerschnittstellen so gut, dass mittlerweile normale Anwender gut damit arbeiten konnten. Darin wurde Linux immer besser, so dass man schon vor 10 Jahren sagen konnte, damit kann nun eigentlich jeder mit umgehen. Es ist nicht komplizierter als Windows. Mitunter sogar einfacher und durchdachter.

Da gab es jedoch ein großes ABER: Immer wieder passierte etwas, womit man als Benutzer völlig überfordert war. Dann musste man auf die Shell und dort wilde Zaubersprüche eintippen, um das System wieder ans Laufen zu bekommen. Und es brauchte tiefgreifende Analysen, alles jenseits der einfachen Benutzeroberfläche. In Foren tummelten sich immer mehr Leute, die eigentlich keine Ahnung von Linux hatten und nach Schritt für Schritt Lösungen suchten, wie man ein bestimmtes Problem lösen kann. Auch wenn man Null Ahnung davon hat, was man da eigentlich im System rumschraubt.

Dieser Zustand war eigentlich noch unvollständig und heute wird sehr schön klar, was eine gelungene Kapselung von Komplexität ist. Sie ist dann gelungen, wenn man ein System in allen Belangen einfach benutzen und vor allem am Laufen halten kann. Wenn man also nie hinab in den Keller steigen muss, um irgendwas kompliziert reparieren zu müssen. Zumindest gilt das für den Consumermarkt, wo man nicht ständig einen Administrator dafür bezahlen kann, sein Betriebssystem wieder zu flicken.

Damit freie Software in den Massenmarkt vordringen konnte, brauchte es diese Komplexitätskapselung. Dass man also als Benutzer nie komplizierte Zaubersprüche auf eine Kommandozeile eintippen muss. Dass es einfache Werkzeuge gibt, die ein System wieder lauffähig machen oder Fehler bereinigen.

Heute gibt es viele Beispiele, wo diese Komplexitätskapselung gelungen ist. Die Android-Handys und Pads haben gezeigt, dass es geht. Solche Produkte wären nicht verkaufbar, wenn man immer wieder auf Kommandozeile irgendwas reparieren müsste.

Wo mir diese Komplexitätskapselung auch positiv aufgefallen ist, sind die Synology NAS-Laufwerke. Hier kommt man wirklich sehr weit, ohne irgendwie Ahnung von Linux zu haben. Man kann sein System einrichten und die Konfiguration wegspeichern. Auch Betriebssystem-Updates sind kinderlicht über die Oberfläche machbar. Und wenn mal gar nichts mehr läuft, spielt man Betriebssystem und seine gespeicherte Konfiguration neu ein und alles ist wieder in Ordnung.

Natürlich kann man mit Linux Fachwissen noch viel mehr aus so einer Box herausholen. Das zeigt auch Android. Worum es aber eigentlich geht: Ein Benutzer ohne Fachwissen kann einen gut abgesteckten Teil der Leistungsfähigkeit nutzen, ohne jemals im Regen zu stehen. Er kann diesen Teil der Leistungsfähigkeit komplett in allen Lebenslagen in Betrieb halten, warten und reparieren. Er ist somit unabhängig von Leuten, die Ahnung davon haben. Er muss nicht mehr selber basteln und stundenlang googeln, um irgenwelche Zaubersprüche auf eine Kommandozeile einzugeben. Es reicht, die relativ simple Benutzeroberfläche zu verstehen und zu erkennen, was man damit alles machen kann. Inklusive der Bugs und Undurchdachtheiten, die jedes Gerät natürlich auch bei heutiger Komplexität mitbringt.

Ich finde das eine sehr gute Entwicklung, auf die ich viele Jahre gewartet habe. Ich hoffe, auch die gängigen Linuxdistributionen machen in den nächsten Jahren alles in diese Richtung rund.

26.01.2007 :: Geregelter Updateplan wird immer wichtiger

Warum ist Ubuntu Linux so erfolgreich? Ein Grund ist sicherlich, dass Ubuntu viel Wert auf regelmäßige Updates legt. Das war auf der anderen Seite bei Debian oft ein Punkt, der für viel Ärger und Streit gesorgt hat. Es dauerte vielen einfach zu lange, bis eine neue Version da war. Bei dem Entwicklungstempo gerade im Desktopbereich sind Releasezyklen von 2-3 Jahren nicht zeitgemäß.

Mittlerweile merken immer mehr Projekte, dass der Schlüssel für Erfolg in dem Versprechen liegt, regelmäßig Updates rauszubringen. Firefox, Thunderbird, Ruby on Rails, Wordpress, Ubuntu-Linux, KDE, Openoffice - alle kümmern sich um regelmäßige Release-Zyklen.

Das Bedürfnis nach regelmäßigen Releases ist auch klar einsichtig. Bei Internet-Applikationen sind es die regelmäßigen Sicherheitsupdates, die man braucht. Aber auch sonst schreitet die Entwicklung im Bereich Software so schnell voran, dass man schon nach wenigen Jahren veraltet und inkompatibel ist. Dann stellt der Webbrowser viele Internetseiten nicht mehr dar oder die Textverarbeitung öffnet keine Dokumente mehr, die man per Mail zugesandt bekommt. Mit einem Acrobat Reader 4.0 bekommt man mittlerweile auch viele Dokumente nicht mehr angezeigt. Und die Softwareentwickler können mit den installierten Bibliotheken auf alten Systemen auch nichts mehr anfangen. Mit einem alten Ruby 1.6 (Debian Woody 2002) ist heutzutage z.B. kaum noch was zu reißen.

Auch die aktuell angebotene Hardware fordert immer wieder nach neuer Software oder neuen Betriebssystemen als Grundlage für ihre Funktionsfähigkeit.

Und dann ist noch der Bereich der Emotionen. Man möchte eine coole und moderne Oberfläche, tolle Effekte. Man möchte "In" sein, den neuesten Schrei mitmachen. Man möchte teilhaben an der Entwicklung und dem Fortschritt und nicht mit einem alten gammeligen System arbeiten. Obwohl - seine Arbeit hat man auch damit erledigt bekommen, manchmal sogar schneller ;-)

Ein Firefox Browser ist heute nicht mehr nur ein Werkzeug. Es ist ein Stück Lebensgefühl, es ist eine Beziehung, die man mit diesem Teil eingeht. So, wie andere sich freuen, wenn die "eigene" Fußballmannschaft gewinnt, freut man sich hier, wenn Firefox es mal wieder besser macht, als Microsoft. Wie traurig wäre man, wenn Firefox jetzt einfach stagnieren würde und Microsoft wieder alles besser kann. Dann würde man sich gleich selbst auch als Versager fühlen, nicht mehr auf der Siegerwelle reiten.

Moderne Linuxsysteme sind cool und die Software dazu auch. Linux ist nicht mehr das kryptische System, was keinen Wert auf Hübschheit legt, wo nur innere Werte interessieren. Immer mehr nutzen es, weil es cool ist, weil es hübsch ist. Und damit wird auch der Schrei nach regelmäßigen Releases lauter.

Bleibt nicht zu guter letzt der Hunger nach Neuem. Die Welt wird langweilig, wenn man sich mit Gewohntem umgibt. Vielleicht ist unsere Gesellschaft süchtig nach Neuem. Im Informationszeitalter werden wir täglich zugeschüttet mit Neuigkeiten. Das löst nicht selten einen Reiz in uns aus, der irgendwie nach "Mehr" schreit. Man will was neues sehen, was neues haben. Und dieses Bedürfnis wird mittlerweile auch von vieler freier Software bedient.

28.05.2006 :: Bedürfnis-Orientierung

Ich lese gerade ein Buch von Marshall Rosenberg über gewaltfreie Kommunikation. Dabei geht es zentral um die Frage, wie man konstruktiv Konflikte löst.

Eine zentrale Aussage von ihm ist sinngemäß: Schau dir die Bedürfnisse beider Parteien an. Die Bedürfnisse sind das wichtigste, um was sich alles dreht.

Das Umfeld der freien Software hat eine ganz besondere Beziehung zum Thema Bedürfnis. In der kommerziellen Entwicklung steht das Bedürfnis des Kunden im Mittelpunkt, worum sich alles dreht. Sollte es zumindest, wenn es gut gehen soll. Der Kunde zahlt und bekommt dafür etwas, was er haben möchte, womit er seine Bedürfnisse möglichst gut befriedigt bekommt. Konkurenz sorgt dafür, dass es für jede Bedürftigkeit etwas gibt und das man sich als Firma anstrengen muss, um den "Nerv des Kunden" zu treffen.

In der freien Softwareentwicklung geht es aber nicht um die Befriedigung von Kundenbedürfnissen. Es geht vielmehr oft um die Befriedigung eigener Bedürfnisse. Mir fehlt eine Software für meinen Zweck und ich schreibe sie vordringlich für mich. Andere können davon partizipieren, aber ich entwickle nicht in erster Linie für die anderen. Richtig? Ja und nein.

Freie Softwareentwicklung ist schwer zu packen, weil es kein einheitliches geradliniges Modell ist, was man in eine Schublade packen kann. Motive freier Sofwareentwicklung sind sehr vielfältig, aber sicherlich ist mein geschildertes Motiv - die eigene Bedürfnisbefriedung - ein nicht selten anzutreffendes.

Freie Projekte, die stark in diese Richtung gehen, sind für andere oft nur suboptimal. Man kann sie irgendwie nutzen, aber so recht Freude macht der Einsatz nicht. Solche Software ist einfach zu stark von den Bedürfnissen und den Vorlieben der Entwickler geprägt, die oft nicht mit einer breiten Masse kompatibel sind. Sie ist zu egozentriert.

Es gibt aber auch freie Projekte, die ganz stark "kundenorientiert" sind, also im Blickwinkel für eine breite Masse konstruiert werden. Die Softwareentwickler wachsen über ihre eigene Bedürftigkeit hinaus. Sie schauen eher: "Wie kann man das Produkt möglichst so bauen, dass sowohl meine wie auch die Bedürfnisse vieler anderer berücksichtigt werden." Und diese Orientierung ist nicht nur aus selbstlosen Motiven geboren. Wenn ein Projekt wachsen möchte, braucht es die Energien vieler Menschen. Und viele Menschen fühlen sich dann angesprochen, wenn eine Software sich an diesen orientiert und nicht nur an Bedürftigkeiten der Entwickler.

Ich habe es öfters erleben können, wie ein Projekt von einer breiten Masse begeistert aufgenommen wurde. Auch das nährt ein wichtiges Bedürfnis von Entwicklern: Anerkennung für ihre geleistete Arbeit zu ernten. Zu spüren, dass man etwas wirklich gutes in die Welt gesetzt hat. Diese Freude ist oft nährender und universeller, als nur sein Problem gelöst zu haben.

Typische Projekte dieser Art sind z.B. Firefox und Thunderbird. Man spürt einfach, dass sie nicht von einigen persönlichen Vorlieben einiger Entwickler geprägt sind, sondern dass man sich Gedanken gemacht hat, wie man ein gutes Produkt für die Masse bauen kann. Bei Ubuntu Linux, KDE oder Gnome ist es ähnlich, auch hier wird immer wieder geschaut: "Was braucht die Welt wirklich?". Die Antwort ist oft einfach, wenn man erstmal diesen Blickwinkel einnimmt. (Ja, ja, ich weiß, dass in einer realen Welt auch genügend Streitigkeiten entstehen, was denn nun die Welt wirklich braucht. Gerade in Bezug auf Gnome...)

Wenn freie Software diesen Blickwinkel einnimmt, dann hat sie große Chancen, was für die Masse zu werden. Und das ist enorm wichtig, möchte eine Software genug Energie bekommen, damit sie wachsen und sich entwickeln kann. Und Energie bekommt eine Software aus unterschiedlichsten Bereichen - von begeisterten Entwicklern, von begeisterten Anwendern, die es weiterempfehlen und die Fragen in Foren beantworten, von Firmen, die sie im Unternehmen integrieren und die Geld für die Weiterentwicklung investieren.

Im Bereich Hardware und Treiber ist es enorm bedeutsam, dass Linux & Co von einer breiten Masse angenommen werden, denn nur dann machen Hersteller sich die Mühe (geben Energie ins Projekt), auch diese Plattformen zu unterstützen.

Also: Bedürfnisse von Menschen zu erkunden, die etwas mit meiner Softwareidee anfangen können, ist enorm wichtig. Es ist der Schlüssel, dass ein freies Softwareprojekt eine breite Unterstützung erfährt. Dabei muss man nicht seine Identität und seine Handschrift verlieren. Jeder hat seine Art, wie er den Nerv der Nutzer trifft. Und jede kann irgendwie genial sein.

Weblinks:

28.05.2006 :: Kubuntu Dapper - da kommt Freude auf

Eigentlich warte ich ja immer lange ab, bis etwas wirklich reif ist. Die Ubuntu Dapper Drake Release kommt ja erst Anfang Juni. Diesmal musste aber gerade ein neuer Server aufgezogen werden und Dapper Drake soll ja die ultimative Server-Distribution sein, weil sie 5 Jahre gewartet werden soll.

Bisher habe ich Debian eingesetzt, was ich weiterhin für sehr geeignet für Server halte. Allerdings hab ich mir auch nicht selten den Kopf zerbrochen, wie ich bestimmte Pakete aktualisiert bekomme, z.B. Ruby, Samba oder Postfix. Backports machen da nur selten wirklich glücklich, zu viele Probleme rundherum entstehen. Oder man findet keine Backports in ausreichender Qualität. Und um selber Pakete zu bauen, dazu fehlte mir die Zeit, um mich da einzuarbeiten.

Da habe ich doch lieber die Option, nach einem halben Jahr ein Dist-Upgrade machen zu können, wenn wirklich wichtige Pakete neu sein müssen. Und das bietet Ubuntu oder Kubuntu.

Zuerst wollte die Installation nicht gelingen, ständig stürzte mir das Installprogramm ab. Immer mehr bekam ich den Eindruck, dass der Release-Candidat doch noch viele Macken hat. Irgendwann merkte ich aber, dass meine Hardware nicht stabil lief (Ich Depp, Kubuntu gut). Ein Memtest, was auch auf der Install-CD ist zeigte mir dann auch, dass meine Ram-Module sich nicht verstanden und jede Menge Fehler zeigten. Peinlich, wo ich doch sonst immer erstmal einen Hardwarecheck mache, gerade wenn ich ein neues Ram-Modul einbaue. Wenn man es eilig hat, macht man Fehler, die einem dann mal eben 4 Stunden umsonst bescheren.

Als der fehlerhafte Ram entfernt war, ging alles reibungslos. Und das begeisterte mich. Die Installation ist wirklich einfach geworden und mit Mausklick durchführbar. Dafür wird zuerst ein Live-System mit KDE hochgefahren, von dem man dann einfach Install aufruft, was auf dem Desktop rumliegt. So stelle ich mir einfache Installation für die breite Masse vor. Lediglich bei der Partitionierung muss man etwas Ahnung haben, aber das ist nunmal prinzipbedingt so.

Nach einer Stunde war auf einem 800MHz Rechner alles fertig installiert. Das Booten geht überraschend schnell, überhaupt kann ich nirgendwo diese zähe Trägheit erkennen, die ich sonst so von KDE auf langsameren Rechnern mit nur 256MB Ram kenne. Der Desktop ist wunderbar aufgeräumt. Man wird nicht erschlagen mit tausenden von installierten Programmen.

Ich habe immer wieder den Eindruck, dass die Ubuntu/Kubuntu Entwickler ein gutes Gefühl dafür haben, was die Welt wirklich braucht. Jemand, der mit einem neuen System anfängt, will nicht erschlagen werden. Er braucht erstmal was einfaches überschaubares. Und dann kann jeder für sich beginnen, Stück für Stück neue Programme zu installieren. Das halte ich für den besseren Weg.

Mit Dapper Drake habe ich nach 10 Jahren Linuxerfahrung das erste mal das Gefühl, eine wirklich saubere und schnell installierbare Lösung für den Desktop zu haben.

Desktop? Wollte ich nicht eigentlich einen Server aufziehen? Ja, schon, aber ich dachte gleich darüber nach, auf ein paar alten Rechnern Dapper Drake zu installieren, um sie ein paar Bekannten hinzustellen, die bisher noch überhaupt keinen Rechner haben. Ein paar Modems hab ich jetzt schon für kleines Geld bei Ebay ersteigert. Wenn die erstmal sehen, wie praktisch das Internet ist, hat das bestimmt Sinn gemacht. Und Linux ist mittlerweile wirklich reif, damit auch blutige Anfänger mit umgehen können und ihren Spaß daran haben. Um nicht zu sagen, es ist mittlerweile echt cool geworden, was die Oberfläche angeht. Schönheit ist halt auch etwas wichtiges, wenn man die Lust darauf wecken will. Das Auge ißt mit...

09.05.2006 :: Problem-Lösungsnähe

Es gibt einen ganz essentiellen interessanten Aspekt bei freier Software. Betrachtet man das Gesamtsystem Software und Nutzer, so ergeben sich in diesem System Spannungsfelder. Diese resultieren daraus, dass eine Software nicht das tut, was der jeweilige Nutzer braucht. Entweder ist sie fehlerhaft oder es fehlen ihr Eigenschaften, die dieser Nutzer benötigt. Dieses Spannungsfeld tritt nun bei diesem Nutzer auf. Oder bei mehreren Nutzern, die ein ähnliches Nutzungsprofil haben. Ein Spannungsfeld drängt nach Lösung. Und hier wird es bei freier Software interessant: Dieses Spannungsfeld kann potenziell auf direkte Weise von diesen Nutzern gelöst werden: In dem man selber Hand anlegt und die Software so erweitert, dass sie um die fehlenden Möglichkeiten erweitert wird. Mit dem Nutzen für alle, die jemals die Software einsetzen werden und diese Funktionalität benötigen.

Diese Nähe von Spannungsfeld und direkter Lösungsmöglichkeit durch die Betroffenen ist eine der mächtigsten und konstruktivsten Eigenheiten freier Software. Hier unterscheidet sich freie Software auch von herkömmlicher Softwareproduktion.

Bei der herkömmlichen Art der Softwareentwicklung hat der Nutzer oft keinen direkten Einfluss auf die Weiterentwicklung. Der Ort, wo ein Spannungsfeld auftritt, ist ein anderer, wo dieses gelöst werden könnte. Die Kommunikation zwischen diesen beiden Orten ist oft völlig unzureichend. Ebenso die Interessenlage und Motivation. Denkt man z.B. an Standardsoftware, so hat ein Benutzer kaum eine Einflussmöglichkeit auf die weitere Entwicklung.

Die Struktur bei freier Software, dass dort, wo das Spannungsfeld auftritt, auch gestaltet werden kann, ist also etwas sehr fruchtbares.

Praktisch betrachtet funktioniert freie Software an dem Punkt jedoch alles andere, als ideal. Dies hat verschiedenste Gründe:

  • Wer ein Softwaresystem gestalten will, braucht Spezial- und Expertenwissen. Viele haben dies nicht und auch nicht die Zeit oder die Ressourcen, um sich dieses anzueignen.
  • Um ein System zu ändern, braucht es mitunter ein sehr tiefes Verständnis, was mit einem Lernaufwand verbunden ist, der den Aufwand für die eigentliche Problemlösung bei weitem übersteigen kann.
  • Eine Vielzahl von unterschiedlichsten Barrieren können auftauchen, die eine schnelle und einfache Mitgestaltung unmöglich machen. Dies kann sowohl technischer wie zwischenmenschlicher Natur sein.
  • Es bedeutet oft mehr Aufwand, ein Problem in der Art zu lösen, dass es für eine größere Nutzergemeinschaft sinnvoll ist. Dies bedeutet oft einen viel höheren Abstraktionsgrad, mehr Kommunikation unter den Nutzern, Entscheidungs- und Einigungsprozesse usw. Auch die dauerhafte Pflege von Softwareerweiterungen für die Gemeinschaft nimmt viel Raum ein. Eine Lösung für das konkret persönliche Problem ist hingegen schneller und mit weniger Aufwand möglich.

Man sieht hier, dass es eher theoretischer Natur ist, dass jeder überall mitgestalten kann. Praktisch ist dieses Möglichkeit oft nicht gegeben. Die meisten Menschen werden z.B. nicht mal eben in den Tiefen des Linux-Kernels eine Änderung machen können.

Und trotzdem bringt dieses System, das jeder überall mitwirken kann, ungeahnte Synergien mitsich. Denn die Möglichkeiten, mitzuwirken, sind sehr vielfältig. Jeder kann irgendwas und kann dies mit einbringen. Einige Beispiele:

  • Jemand kann gut schreiben und verfasst Dokumentationen
  • Jemand kann gut hardwarenah programmieren und schreibt Treiber
  • Ein weiterer tauscht sich gerne mit anderen aus und gibt sein erarbeitetes Wissen in Foren und Mailinglisten weiter.
  • Ein nächster ist von einer Software fasziniert und verbreitet sie in seinem Bekanntenkreis. Inkl. Einweisung, wie man sie benutzt. Je mehr eine Software genutzt wird, um so mehr Potenzialität erfährt sie.

Ein wichtiger Punkt ist sicherlich auch, dass sich eine Kultur verbreitet, die diesem freien Gedanken zuträglich ist. In diesem Zusammenhang gibt es sicherlich viel zu lernen. Man muss erstmal eine Weile im Umfeld freier Software "gelebt" haben, um die Vorteile zu verstehen und diese Kultur zu unterstützen. Gesellschaftlich sind wir eher anders geprägt: Eine starke Aufteilung von Verantwortlichkeit und Zuständigkeit. Wir erwarten, z.B., dass ein Autohersteller uns ein ideales Auto anbieten kann und bestimmen nur indirekt mit, wie ein Auto sich gestaltet. Auch leben wir eher in einer egozentrierten Kultur und nicht in einer, wo man immer wieder die Vorzüge einer starken Gemeinschaft erfährt.

Neben der Kultur sind auch Werkzeuge wichtig, die den Austausch und eine einfache Mitgestaltung ermöglichen. Dies zeigt sich an dem Erfolg der Wikipedia: Jeder kann auf einfachste Weise mitgestalten. Die Einstiegshürde ist sehr gering. Mit einem Klick wird jeder zum Gestalter. Internetforen zeigen, wie einfach weltweite Kommunikation funktionieren kann. Denn das ist auch ein wichtiger Punkt: Dadurch können sich räumlich getrennte Nutzer mit gleicher Problematik vernetzen und in Kontakt treten. Und das bringt wiederum Synergien. Energie bündelt sich und gerade im Softwarebereich ist räumliche Trennung heutzutage kaum noche eine Barriere.

09.03.2006 :: Open Source Jahrbuch 2006

Das Open Source Jahrbuch 2006 ist draußen: http://www.opensourcejahrbuch.de/2006/

26.01.2006 :: Warum nicht so einfach wie unter Windows?

In den letzten Tagen habe ich Kubuntu-Linux installiert. Ich war positiv überrascht, wie gut alles funktionierte. Die Installation war intuitiv und völlig problemlos, die Hardware - ein IBM-Thinkpad T23 - wurde gut erkannt. So selbstverständlich ist das nicht, gerade mit Sound und ACPI gibt es ja immer wieder Probleme. Eine Knoppix konnte z.B. damit nicht umgehen.

Der KDE-Desktop macht einen wirklich guten Eindruck, da hat sich in den letzten Jahren nochmal viel getan. Auch nett, dass es mittlerweile viele Anwendungen gibt, die sich vom Look&Feel direkt in KDE integrieren.

Software Nachinstallation klappt mit apt-get wunderbar. Zumindest so einige wenige Sachen, die ich probierte. Auch die Integration in die KDE-Oberfläche wird bei der Installation berücksichtigt.

Vieles klappt also schon genauso leicht, wie unter Windows. Manches geht sogar komfortabler. So habe ich z.B. nach der einstündigen Installation schon viele Anwendungssoftware gleich installiert auf dem System. Die Bedienung der Anwendungen ist manchmal ausgefeilter, als unter Windows, wirkt komfortabler. Das System stockt auch nicht so oft, läuft runder.

Was mich dann aber wieder aufregt, sind so einige Macken, die wohl im Linux-Bereich irgendwie nie auszurotten sind. Warum hat mein Firefox im Menübereich Super-kleine Schriften? Alle Programme verhalten sich gleich, benutzen gleich Fonts im Menübereich, wie man das unter Windows kennt. Nur Firefox tanzt aus der Reihe. Also ist wieder googeln angesagt und nach einer halben Stunde habe ich auch die Lösung gefunden: Firefox muss eigenständig mit einer css-Datei im Chrome-Bereich gefüttert werden, nimmt also nicht Bezug auf den Standard des restlichen Systems. Warum muss sowas sein? Unter Windows klappt doch alles und keiner würde es hier akzeptieren, einen Texteditor zu bemühen, um da ein paar Zaubersprüche loszuwerden, damit das tut, was man standardmäßig erwartet.

Merkwürdig ist auch, dass im KDE-Controlcenter vieles auf deutsch erscheint, einiges aber in englisch. Warum ist nicht alles in deutsch? Mich stören solche Sachen persönlich eigentlich nicht - ich kann mit englisch gut umgehen. Ich denke aber oft daran, normalen Benutzern Linux nahezubringen. Und da höre ich schon den Aufschrei: "Ich kann kein englisch, warum ist das nicht in deutsch, wie bei meinem Windows?"

Das sind nur einige Beispiele, die mal wieder zeigen: Trotz vieler Forschritte scheint man es nur schwer in den Griff zu bekommen, Linux wirklich zu einem Normal-Benutzer tauglichen System zu machen. Warum ist das eigentlich so?

Einige Gründe sehe ich darin:

  • Linux entsteht in einer ganz eigenen Kultur. Diese Kultur produziert einerseits Unglaubliches und schafft es oft, völlig ohne finanzielle Interessen etwas entstehen zu lassen. Sie kann aber andererseits wichtige Anforderungen an Software nicht realisieren. Anforderungen, die für viele Freaks irrelevant sind, die aber für den Markt der "ahnungslosen konsumorientierten Nutzer" von großer Bedeutung sind.
  • Zur Kultur der freien Software gehört diese Einstellung: "Ich mache, was mir gefällt und ich cool finde. Jeder kann schauen, ob er damit was anfangen kann oder ob er es erweitern will. Ich bin nicht dafür verantwortlich, deine Bedürfnisse zu befriedigen." Zur Kultur eines kommerziellen Unternehmens dagegen gehört die Einstellung: "Wir sind für dich Kunden da. Wir versuchen zu verstehen, was du wirklich brauchst und was dir am besten gerecht wird. Und wenn du das bezahlen kannst, machen wir das alles für dich." Eine Kundenorientierung ist eine komfortable Angelegenheit für den Kunden, insofern er es bezahlen kann. Freie Software ist eine interessante Angelegenheit, weil man alles kostenlos nutzen kann. Man muss eben nur schauen, ob es für einen passt oder man es sich passend machen kann. Selbst was zu tun, ist Pflicht im Umfeld freier Software. Wobei man noch eine Unterscheidung treffen muss: Ein Projekt, was hauptsächlich von einem Einzelkämpfer entwickelt wird, ist stark von dem Charakter und den Vorlieben dieser Person abhängig. Sobald ein Projekt aber auf einer breiten Community-Basis steht, entsteht oft eine gute "WIR-Kraft", die eine Software ganzheitlicher fördert und damit etwas für eine breitere Masse kompatibleres hervorbringt. Auch können bezahlte Kräfte ins Spiel kommen, die mit einem bestimmten Augenmerk eine freie Software fördern. So ist das z.B. bei KDE oder OpenOffice.
  • Linux muss von sich aus viel komplexer als Windows sein, weil es auf so vielen unterschiedlichen Plattformen laufen will. Jede weitere Plattform bringt neue Anforderungen an die Flexibilität des Systems.
  • Zur Linux-Kultur gehört es, dass jeder überall Hand anlegen kann, dass nur flexible Systeme "cool" sind, die man überall tunen und für seinen Zweck abstimmen kann. Es gibt keine klaren Grenzen zwischen Anwendern, Administratoren und Programmierern. Alles greift ineinander und viele ziehen eine große Befriedigung gerade daraus, ihr System überall nach eigenen Vorstellungen anzupassen und zu tunen. Hierfür ist Linux geschaffen. Linux ist wie Lego. Windows dagegen ist ein System, was eine saubere Lösung für den normalen Anwender anbieten soll, der gar nicht rumbasteln möchte, der es einfach nur benutzen will. Windows ist Anwenderorientiert, Linux ist Bastlerorientiert. Mit allen Vor- und Nachteilen.
  • Die Entwicklung von Linux und freier Software ist ein verteilter Prozess, dem manchmal die integrierende Kraft fehlt. Jeder fühlt sich für einen kleinen Teil verantwortlich, aber niemand so recht für das Ganze. Das aus dem Ganzen was wirklich Vernünftiges wird, ist im Linux-Umfeld mitunter schwer zu realisieren. Distributionen wie Unbuntu, Debian, Suse, Redhat geben sich große Mühe dabei und investieren viel Zeit. Nur ist es reiner Wahnsinn, zentralisiert zu versuchen, 20.000 Softwarepakete unter allen Umständen fehlerfrei ans Laufen zu bringen. Kommen noch die vielen Basteleien hinzu, die jeder an seinem System betreibt und die die Bedingungen verändern, dass etwas funktioniert. Um bei dem Firefox Beispiel zu bleiben: Ubuntu hat nicht die integrative Arbeit leisten können, die Schriften durch ein Skript bei Firefox automatisch anzupassen. In einem kommerziellen Unternehmen entsteht oft dadurch eine integrative Kraft, dass viel Verantwortung bei einer Person oder einem eng zusammenarbeitenden Team liegt. Hierarchische Machtstrukturen sorgen dafür, dass etwas aus einem Guß entsteht, weil nur einer sich um diesen Guß kümmert. Wäre ich in einem kommerziellen Unternehmen dafür verantwortlich, eine deutsche Software-Version rauszubringen, würde ich es nie dulden, dass zwischendurch englische Dialoge auftauchen. Einfach weil ich weiß, dass dies wieder meine (konsumorientierten) Kunden nicht akzeptieren würden.

Wenn ich mich mit Linux beschäftige, fühle ich oft diese Gespaltenheit: Einerseits könnte ich mich über vieles aufregen aus Unverständnis, warum manches Ärgernis wohl nie aufhört. Meist bin ich dann in einer bequemen Konsumentenhaltung. Und für mich als Konsument ist einfach alles nervig, was man für mich bequemer hätte lösen können. Andererseits bin ich dankbar, dass es so viel interessante Software kostenlos gibt und so viele interessante Menschen, die ihr Herzblut da hinein stecken. Ich liebe auch diese Form der gemeinschaftlichen Arbeit. Und dann bin ich auch gerne bereit, mir dieses System nutzbar zu machen, mich selber reinzuknien, zu googlen, zu lesen, zu konfigurieren, zu fluchen und dann doch wieder seelig zu werden. Oft mit viel größerer Freude, als mit einem kommerziellen System mich täglich rumärgern zu müssen, weil ich vieles eben nicht anpassen kann. Und ich für jede Serviceanfrage gleich 1,90 Euro pro Minute telefonisch bezahlen muss.

Viele Diskussionen um dieses Thema zeigen mir auch immer wieder: Sowohl in der kommerziellen wie in der freien Softwarewelt gibt es Freud und Leid, Licht und Schatten. Und viele sinnlose Auseinandersetzung ensteht erst dadurch, dass der eine nur Licht und der andere nur den Schatten sieht.

14.01.2006 :: Jahresrückblick 2005

Letztes Jahr sehe ich bei freier Software vor allem große Erfolge im Bereich Anwendungssoftware. Hierdurch wurde freie Software auch in der breiten Öffentlichkeit wahrgenommen.

3 Produkte fallen mir da ein:

  • Mozilla Firefox - Der Zeitpunkt war günstig. Der Microsoft Internet Explorer ist mittlerweile ziemlich in die Jahre gekommen. Man vermisst eine Reihe an Funktionalität, z.B. Tabbed Browsing (Mehrere Fenster in Reitern). Dann waren da noch die vielen Sicherheitslücken, die permanent für Verunsicherung gesorgt haben. Die Qualität und Kompatiblität von Firefox ist seit einem guten Jahr ausgezeichnet und mit Erscheinen der Version 1.0 etwas für die breite Masse. Groß angelegte Werbekampagnen sorgten dafür, dass viele umstiegen. Und der Umstieg ist ja auch völlig unproblematisch. Die Präsentation des Produktes war gut und einstiegsfreundlich - etwas, was man bei freier Software oft vermisst. Viele freie Projekte arbeiten noch nach dem Motto: "Von Hackern - für Hacker.". Einsteiger finden sich dort nicht zurecht. Nicht so bei Firefox. War 2003 lt. meiner Logfiles das Internet noch überwiegend in der Hand des Microsoft Explorers, surften 2005 schon 30-40 % meine Seite mit einem Mozilla-Produkt an. Heise spricht von 20 Prozent Marktanteil in Europa und 30 Prozent in Deutschland (Heise Ticker). Weil Firefox mittlerweile solch eine Bedeutung hat, geben sich mittlerweile alle großen Websiteanbieter auch Mühe, sie kompatibel zu halten.
  • Openoffice - Schon die 1.x Versionen waren sehr gut. Mit der Version 2, die Ende 2005 erschien, ist nun für viele der Umstieg eingeleutet. Wichtig war hier vor allem nochmal die Änderung des Dokumentenformates in das "Open Standard Document Format". Dies ist gerade für Firmen und Verwaltungen wichtig, wenn es um Langzeit-Archivierung geht. Dokumente sollen auch noch nach vielen Jahren gelesen werden können. Hier braucht es eine Basis mit langer Zukunftsperspektive. Wer heute nicht mehr darauf angewiesen ist, Word- und Excel-Dokumente zu bearbeiten, kann problemlos auf Openoffice umsteigen. Der Schulungsaufwand ist gering, weil die Bedienung sehr ähnlich ist. Word-Dokumente wechselseitig mal mit Word und mal mit Openoffice zu bearbeiten, ist dagegen nicht sinnvoll.
  • Mozilla Thunderbird - Es ist schon komisch, dass es bisher kaum eine freie Alternative für E-Mail-Verarbeitung für die Windows-Welt gab. Zumindest keine anwenderfreundliche, mit der jeder sofort klar kommt. Dies hat sich jetzt durch Mozilla Thunderbird geändert. Seit erscheinen der Version 1.0 anfang 2005, kann man damit gut arbeiten. Es ist damit eine gute Alternative zum kostenlosen Outlook Express von Microsoft. Auch hier gilt ähnliches, wie beim Internet Explorer: Outlook Express ist in die Jahre gekommen und vor allem unsicher. Thunderbird ist mehr auf Sicherheit getrimmt. Und es bietet auch Spamschutzmöglichkeiten. Vor allem aber hält sich Thunderbird besser an Internetstandards, wie dem konformen zitieren von Mails. Für Fortgeschrittene Mailnutzer lässt Thunderbird noch einiges vermissen. Und auf langsamen Rechnern ist es eher träge. Jedoch fließt in die Entwicklung von Thunderbird wie Firefox sehr viel Entwicklerpotenzial, weshalb man davon ausgehen kann, dass sich auch 2006 einiges tun wird.

Für mich ist noch die Entwicklung von PmWiki von Bedeutung. Ich setze diese Wikisoftware für eine Reihe von Internet- und Intranetprojekten ein (auch für diese Homepage). War der Übergang von Version 1 zu Version 2 nach meinem Gefühl etwas verfrüht, so liegt jetzt eine gut gepflegte und stabile Version 2 vor. Das Interesse an dem Projekt ist für viele ungebrochen, die Mailingliste ist enorm aktiv. Und auch Patrick Michaud, der Projekt-Initiator ist seit 3 Jahren beständig dabei, das Projekt zu betreuen und viel Programmierarbeit einzubringen. Hier zeigt sich auch, dass Projekterfolg nicht nur eine technische Sache ist, sondern auch von der Fähigkeit abhängt, eine gute Kommunikation in der Community zu pflegen. So manch ein freies Projekt ist schon wegen schlechter Kommunikation gestorben oder zumindest stark gelähmt worden.

Und dann war da noch Ubuntu Linux, eine recht neue Linux Distribution, die stark eingeschlagen hat. Was macht Ubuntu so interessant? Ubuntu hat Manpower, um etwas zu bewegen. Ubuntu setzt auf Debian auf, bietet also alle Vorteile, die Debian auch zueigen sind. Ubuntu bringt aber jedes halbe Jahr eine neue Release heraus. Das ist etwas, was wohl viele Debianer vermisst haben. 3 Jahre auf eine nächste stabile Version zu warten, ist gerade im Desktop Bereich unerträglich. Ubuntu hat es auch geschafft, cool und einstiegsfreundlich zu sein. Kein langes Gebastel, sondern vieles, was aus der Tüte funktioniert. Und dazu völlig kostenlos.

Bei Ubuntu zeigt sich auch wieder, das ein Projekt mehr braucht, als nur eine gute Software. Es braucht eine gut funktionierende Community, irgendwas, was einen Hype auslöst, genügend Öffentlichkeitsarbeit, leichte Einstiegsmöglichkeiten, funktionale Internetseiten, soziale Kompetenz, genügend Manpower, Geldgeber und auch kommerziell Interessierte. Alles unter einen Hut zu bekommen, gelingt nicht all zu oft. Ubuntu hat es meiner Ansicht bisher ganz gut hinbekommen. Als Debian-Fan war Ubuntu für meinen Desktop natürlich ein willkommenes Geschenk.

2005 bin ich auch immer mehr ein Fan der Wikipedia geworden. Diese hat für mich schon eine ähnliche Bedeutung, wie Google. Immer, wenn ich zu etwas mehr wissen will, schaue ich in der Wikipedia nach. Ok, nicht alles ist dort zufriedenstellend erklärt, trotzdem findet sich gerade in Spezialbereichen erstaunlich viel. Mehr und aktueller, als in manchem Lexikon. Die Möglichkeit, selber mit dran zu wirken, finde ich auch genial. Ich glaube jedoch, dass die jetzige Form, das jeder sofort dran verändern kann, nicht über Dauer funktionieren wird. Der Aufwand und die Ärgernisse, die damit einhergehen, sind heute schon enorm. Ich wäre dafür, dass man sich registieren muss, um auch Artikel verändern zu können. Lediglich die Diskussionsseiten zu Artikeln sollten offen bleiben.

14.01.2006 :: Wahrnehmung von Linux und freier Software

Folgender Ausspruch von Mahatma Gandhi trifft die Wahrnehmung von freier Software aus der Sicht großer Softwarekonzerne. Angekommen sind wir bei Bekämpfung. Microsoft hat gerade in den letzten 2 Jahren viel Geld in Kampagnen gegen Linux gesteckt. Nicht ohne Grund.

Zuerst ignorieren sie dich,
dann lachen sie über dich,
dann bekämpfen sie dich
und dann gewinnst du.

Dabei glaube ich aber nicht, dass Linux irgendwann Windows ersetzen wird. Freie Software wird die Position einer echten Alternative aber ganz bestimmt ausbauen.

Interessant dabei ist, dass manche Bereiche nicht mehr so schnell wachsen, nicht permanent neue Anforderungen auftauchen, die viel Entwicklerpotenzial binden. Und das ist gut für Software. Ist erstmal eine gut funktionierende freie Software in einem Bereich entstanden, hat sie dort ihre feste Bedeutung und behält sie auch. Nur durch eine Veränderung der Anforderungen kann sie diese wieder verlieren.

Ein typisches Beispiel ist die Textverarbeitung. In diesem Bereich hat sich in den letzten 7 Jahren nicht wirklich viel verändert. Und hier hat Openoffice als freie Alternative sich mittlerweile einen festen Platz erobert. Immer mehr steigen um, weil die gleiche Funktionalität gegeben ist. Lediglich Kompatibilitätshürden stellen noch eine kleine Barriere dar.

22.05.2005 :: Software-Entwicklung: Das Ganze sehen

Ein schönes Beispiel, für eine typische Reaktion eines Software-Entwicklers: Die Tage lese ich in den Rubyforen, dass ein Fehler direkt in Ruby gefunden wurde, der zumindest Berechnungen in bestimmten Konstellationen etwas langsam macht. Dann wurde das in die Ruby-Mailingliste gepostet. Einer schrieb daraufhin sinngemäß: "Mach doch einfach diese Änderung hier im Quellcode von Ruby und alles funktioniert so, wie du es willst." Eine typische Reaktion eines Software-Entwicklers, der das Problem, aber nicht das Ganze sieht.

Natürlich ist das konkrete Problem damit aus der Welt. Dem Poster ging es allerdings gar nicht so sehr darum, für sich konkret ein Problem gelöst zu bekommen. Es ging viel mehr darum, die Sprache für alle besser zu machen. Und das ist auch da Potenzial, was generell da drin steckt: Jemand postet ein Problem, was alle Benutzer einer Software betrifft. Es wäre traurig, wenn nun nur ein Einzelner das Problem in seinem Ruby löst, anstatt Millionen davon profitieren. Kommt noch hinzu, dass man so jede neue Version von Ruby wieder selber patchen müsste.

Das Problem ist hier glaube ich, dass zu stark nur auf die technische Lösung eines Problems geschaut wird, anstatt den Blick weiter werden zu lassen. Was bedeutet dieser Fehler für Ruby als Ganzes? Und da kommt einem dann sofort die Antwort, dass es ein Fehler ist, der in Ruby zentral für alle gefixt werden sollte.

Im Grunde ist es eine Änderung der eigenen Grundhaltung: Von egozentrisch (=mein Problem für mich lösen) hin zu Community-zentrisch (=unser Problem für uns lösen). Gerade im Bereich freier Software ist das ein wichtiger Lernschritt. Das fällt hier oft auch besonders leicht, weil eine Weiterentwicklung der Community eigenen Nutzen nachzieht. Die Orientierung zu einem Community-orientierten Denken nützt gleichzeitig mir selbst. Community-orientiertes Denken bietet aber noch mehr. Das eigene Handeln bekommt mehr Sinn. Die gute Kraft, die von mir ausgehen kann, dehnt sich aus und bewirkt viel mehr, wenn sich dadurch eine ganze Community weiterentwickelt. Die Erfahrung, dass durch mein Handeln Gutes für eine ganze Gruppe von Menschen entstehen kann, kann zutiefst befriedigend sein.

Viele Entwickler ziehen daraus mehr Befriedigung, als aus manchem Berufsumfeld, wo solche Sinnzusammenhänge verloren gegangen sind. Ein Freund sagte mir letztens: "Im Job mache ich das, was gemacht werden muss, aber in der freien Software-Entwicklung mache ich das, was mir Spaß macht, mich mit Sinn erfüllt, ich von ganzen Herzem mache."

05.04.2005 :: Schwachpunkt Linux Konfiguration

Linux wird in der Regel so konfiguriert, dass jedes Programm seine eigene Konfigurationsdatei mitbringt. Diese ist in normal in einem Textformat und kann mit jedem Texteditor bearbeitet werden.

Auf der einen Seite ist das sehr praktisch. Grundsätzlich ist damit vieles möglich. Man kann mit einem Texteditor konfigurieren, man kann automatische Werkzeuge über Textdateien laufen lassen, um Konfigurationen auszulesen, kann Programme schreiben, die Konfigurationen verändern usw.

Es gibt jedoch eine Menge Schwachpunkte dieser Philosophie, wodurch sich Linux teilweise unlösbare Probleme einhandelt.

Erster Schwachpunkt ist ein uneinheitliches Konfigurationsformat. Fast jede Anwendung bringt ihre eigene Idee davon mit, wie ein Konfigurationsfile auszusehen hat. Es gibt sicherlich vieles, was ähnlich gelöst ist, trotzdem gibt es eine Menge Unterschiede. Von Spezialformaten wie cron ganz abgesehen, dessen Format für viele einfach eine Zumutung ist.

Dies bedeutet einen großen Mehraufwand an Einarbeitung. Denn bevor man eine Anwendung überhaupt konfigurieren kann, muss man erstmal die Konfigurations-Syntax verstanden haben. Das zieht natürlich auch Fehler nach sich.

Wenn Software auf Konfigurationen zurückgreift, dann braucht es für jede Konfigurationssprache einen eigenen Parser. Wieviele Parser wurden wohl schon für diesen Zweck geschrieben? Und wieviel davon funktionieren fehlerhaft? Und wie gut wäre es, wenn der Programmierer sich um solche Sachen überhaupt keine Gedanken mehr machen müsste. Hätte man eine einheitliche Konfigurationssprache, würde es wenige gute Parser geben und niemand würde mehr auf den Gedanken kommen, einen eigenen Parser zu schreiben.

Das Auslesen von Konfigurationen ist dabei noch recht einfach. Automatisch Konfigurationsdateien zu verändern, ist oft ein heikler Job, weil viele unvorhergesehenen Dinge passieren können.

Hier kommen wir zum nächsten Problem. Wenn eine Konfigurationsdatei einfachen standardisierten Regeln folgt, kann man mit automatischen Werkzeugen diese manipulieren. Will man z.B. eine bestimmte Konfigurationsvariable auf einen Wert setzen, so sucht man danach und verändert den ursprünglichen Wert.

Es gibt aber nun Konfigurationsdateien, die sind schon kleine Programme. Da vermischt sich Konfiguration und Programmcode. Da kann man nicht mehr von standardisierten Einträgen sprechen (z.B. Variable=Wert), sondern von einer völlig freien Aneinanderreihung von Code. Und hier hat man dann keine Chance mehr, das Werkzeuge verstehen können, was das für eine Konfiguration sein soll und wie man die für einen bestimmten Zweck umschreiben muss.

Dies ist ein ganz entscheidender Grund, warum Konfiguration standardisierten Regeln folgen muss und nicht mit Code vermischt werden sollte. Zumindest muss eine standardisierte Basissprache vorhanden sein, die vernünftig geparst werden kann.

Diese Probleme sind dafür verantwortlich, dass Linux z.B. kein integriertes Konfigurationswerkzeug hat, was man auf einer Oberfläche benutzen kann. Sicherlich, es gibt viele Ansätze und Versuche, so etwas zu leisten. Nur macht die darunterliegende problematische Konfigurationsstruktur es nahezu unmöglich, so etwas wirklich erfolgsversprechend umzusetzen. Und so konnte sich da auch noch nichts im großen Maßstab durchsetzen, es blieben fast immer Insellösungen mit vielen Haken und Ösen.

Eine weitere Folge ist, dass eben auch heute noch für viele Probleme in Sachen Konfiguration es heißt: "Da musst du mal die Konfigurationsdatei x oder y mit einem Texteditor öffnen und schauen, ob dort..." Automatische Werkzeuge oder Tools auf einer grafischen Benutzeroberfläche können es oft nicht leisten, Konfigurationsdateien korrekt zu bearbeiten. Immer wieder ist Handarbeit angesagt. Und dann sollte man genau wissen, wie die Syntax der Datei ist und wofür welche Konfigurationsparameter zuständig sind.

Die Lösung aus dem Dilemma funktioniert eigentlich nur, wenn man ein einheitliches Konfigurations-Schemata für alles hat. Typisch für solche Ansätze sind Konfigurationsvariablen, die in einer Baumstruktur verwaltet werden. Konfigurationsvariablen können dabei verschiedenen Typs sein (String, Checkbox, Integer, Binary). Die Windows-Registry wäre ein Beispiel dafür, der Konfigurationseditor gconf unter Gnome ein noch Besseres. Mit einfachen Methoden wie gconf_get() kann man dann beliebige Konfigurationsparameter abfragen.

Man stelle sich mal vor, wir hätten ein Linux, wo alles an Konfiguration in der Art wie Gnome gconf verwaltet würde. Dann wären alle Konfigurationsmöglichkeiten schonmal über die Oberfläche manipulierbar. Nur noch dieses eine Werkzeug für jede Form von Konfiguration. Kein Editor, den man noch bemühen müsste, keine Syntaxfehler, die man machen kann. Eine einfache Schnittstelle, wo jedes Programm Konfigurationen auslesen und auch verändern kann. Konfigurationen, die sich sehr leicht von Rechner zu Rechner übernehmen ließen. Konfigurationen, die man sehr leicht über Werkzeuge miteinander vergleichen kann. Standardisierte Sets von Konfigurationsparametern, die man in Systeme einspielen kann. Schnelles und unkompliziertes verändern von Konfigurationen mit History-Funktion zum rückgängig machen. Protokollierung aller Änderungen an der Konfiguration des Gesamtsystems.

Bei einem Systemupdate könnten ganz gezielt neue Konfigurationsparameter eingefügt und auf Standardwerte gesetzt werden. Jede einzelne Variable könnte mit Leichtigkeit bei einem Update neu gesetzt werden, wenn dies die Applikation erfordert. Heutzutage ist es eher so, dass entweder die ganze Konfiguration ersetzt wird oder die alte komplett belassen wird. Alles dazwischen ist oft zu kompliziert und wird deshalb nicht gemacht.

Das Dateiformat sollte bei so einem neuen System natürlich auch auf verbreitete Standards setzen. Wahrscheinlich bietet sich dabei XML an. Konfigurationswerkzeuge müssen sowohl als Kommandozeilenwerkzeuge wie auch für die grafische Oberfläche verfügbar sein. So, wie das bei CVS auch gegeben ist.

Ich glaube, die ganzen Ideen hier sind nicht neu und auch zutiefst sinnvoll. Das, was der Umsetzung im Wege steht, ist die tiefe Verankerung des jetzigen Systems in Linux. Es müsste also ganz tief an der Basis des Betriebssystems etwas verändert werden. Etwas, was alle Anwendungen direkt betrifft. Und so etwas durchzusetzen bzw. umzusetzen, ist sehr schwierig. Und es bedeutet viel Arbeit. Kompatibilitätsschichten könnten für einen sanften Übergang sorgen.

Es ist ja eine interessante Frage, ob so ein Kollos von Betriebssystem in der Lage ist, sich zu häuten und die Fähigkeit hat, grundsätzliche Veränderungen umzusetzen. Ich bin da auch zuversichtlich, weil es verschiedene Bereiche gibt, wo das in letzter Zeit passiert, z.B. die Veränderungen devfs oder ufs.

Das, was Linux heutzutage braucht, ist ein wirklich ausgereiftes, modernes Konfigurationsmanagment. Die Mängel am jetztigen System treten immer deutlicher zu Tage und produzieren jede Menge Konfigurationsaufwand, Ärger und hemmen die weite Verbreitung. Ein Großteil der heutigen Probleme basiert auf einem völlig veralteten Konfigurationsmanagment.

Weblinks:

30.03.2005 :: Aktualität von Information prüfen

Software verändert sich schnell. Gerade wenn Projekte jung sind, ist alles sehr dynamisch. Damit verändern sich auch Konzepte, die Art, Dinge zu tun.

Was dann oft hinterherhinkt, ist die Dokumentation. Das, was dort drin beschrieben wurde, kann heute schon nicht mehr gültig sein. Und da Dokumentation schreiben viele als unangenehmen Job empfinden, ist sie oft veraltet.

Wenn man sich also an ein freies Projekt heranmacht, sollte man immer eine etwas lockere Einstellung zur Dokumentation bekommen. Nicht festbeißen, weil dort steht, dass man es so oder so machen sollte. Vielleicht ist alles schon überholt.

Wichtig ist, immer auf ein Datum zu achten, wenn man irgendwas liest. Steht irgendwo, von wann die Info ist? Das ist hilft, um sie zu bewerten.

Auch ist wichtig, ein Stück die History eines Projektes zu verstehen. Als Insider wusste ich z.B. dass PmWiki eine ganze Zeit lang in einem ziemlich ungünstigen Zustand auf der Projekthomepage war. Bis Mitte 2004 war z.B. die Version 1 die stabile Version, die auch empfohlen wurde. Dann kam die Version 2 recht schnell voran und bald war die ganze Homepage umgestellt. An die Dokumentation für Version 1 kam man nur noch über Umwege heran und wer das nicht wusste, hatte nur Zugriff auf Version 2. Diese war jedoch noch in einem Betastadium, was auch heute, ein dreiviertel Jahr später, immer noch so ist. Die Homepage war für die Version 2 in einem mageren Zustand, Cookbook-Skripte gab es fast gar nicht.

Wer zu diesem Zeitpunkt auf http://www.pmwiki.org geschaut hat, um dieses Wiki kennenzulernen, musste den Eindruck bekommen, dass das eine halbfertige Sache ist. Ja, hat sich vielleicht geärgert, warum man hier nicht vernünftig Informationen findet. So ist das manchmal, wenn alles in einem starken und schnellem Umwandlungsprozess ist. Und das Entwicklungstempo von PmWiki ist wirklich enorm.

Was an Information nicht aktualisiert ist, findet man zumindest oft in Foren, Mailinglisten oder Newsgroups. Es kann sehr viel Sinn machen, von einem Projekt erstmal für 14 Tage den Strom an Nachrichten zu lesen, der über solche Kanäle geht, ehe man wirklich selber einsteigt, etwas damit zu machen. Dann kennt man schon so manche Fallstricke, hat sich ein Stück in die Szene eingelebt, ist ein wenig eingenordet.

Eine FAQ zu lesen, offenbart auch eine Menge darüber, wo Problempunkte in einer Software zu erwarten sind.

14.02.2005 :: Die Wahrheit über GMX Werbespot?

Derzeit ist der Werbespot von GMX ja in vieler Munde. Das Lied "Die Gedanken sind frei" wurde dafür genutzt. Viele fragten sich, was denn GMX nun mit dieser Botschaft zu tun hat? Ein rechter Zusammenhang lässt sich da kaum erkennen, zumal ja die E-Mails neuerdings vom Staat kontrolliert werden können. Hierzu muss auch GMX eine Schnittstelle bereit halten, wo sich Behörden in den Mailverkehr einklinken dürfen. Das passt nicht so recht zum Thema Freiheit. So ein Lied passt doch vielmehr zu freier Software...

In Wirklichkeit soll alles ganz anders sein, wie mir ein Bekannter erzählte. Eigentlich wäre es so gewesen: Ein enthusiastischer freier Sofwareentwickler wollte eine Hymne für die weltweite FS-Community rausbringen. Nur, wie sollte man sowas finanzieren? Es sollte ja auch ins Fernsehen. Und Fernsehen kostet ja nun jede Menge. Als er so darüber nachdachte und das gerade seinem Freund per E-Mail posten wollte, fiel sein Blick auf die GMX-Adresse, die er gerade in seinen Mailclient eingetippt hatte. GMX! Ja! Die haben bestimmt genug Geld. Zufällig arbeitete er auch in einer großen Werbeagentur. Er dachte: Man müsste eine Werbung für GMX machen, in der eigentlich die Hymne für alle freien Software-Entwickler eingebaut wird. Schnell hatte er mit GMX gesprochen und ihnen eine tolle Werbe-Kampagne vorgeschlagen. Der Deal kam zustande. Bei der Erstvorstellung hatte er große Bedenken, dass GMX vielleicht auffallen könnte, dass es ja eigentlich um eine Hymne für die freie Software Community ging. Es war ja ziemlich offensichtlich. Aber die fühlten sich so geschmeichelt, dass sie sofort einstimmten und den Spot gut fanden.

Und so bekam die freie Software Community einen großen Werbeauftritt im deutschen Fernsehen...

Weblinks:

12.02.2005 Geld motiviert, wo sonst keine Motivation ist

Manche neigen dazu, in der freien Softwareentwicklung die generell bessere Methode zu sehen. Ich glaube eher, dass es eine attraktive Alternative ist, die auch ihre Schwachpunkte hat.

Viele freie Software wird ohne finanziellen Hintergrund entwickelt. Die Motivationen sind also jenseits von Geld. Bei kommerzieller Software hingegen ist Geld eine zentrale Motivation. Unternehmer produzieren sie primär, um Geld damit zu verdienen. Angestellte entwickeln sie, weil sie dafür bezahlt werden.

Das man das oft nicht in Reinkultur vorfindet, sollte klar sein. Angestellte arbeiten nicht nur wegen Geld und freie Software wird auch teilweise bezahlt. Es geht eher um Tendenzen, und da spielt das Geld eine wichtige Rolle als Unterscheidungsmerkmal.

Freie Projekte werden getrieben von Sinnhaftigkeit, Ehrgeiz, Anerkennung, aus Dankbarkeit, aus Technikbegeisterung, als Herausforderung, aus Spaß und vielem weiteren. Das klappt wunderbar, wenn zu verwirklichende Dinge diesen Reiz haben. Eine technische Herausforderung kann so ein Reiz sein, z.B. eine schickere Oberfläche zu erschaffen, als Microsoft das gemacht hat. Oder einen Mangel oder Engpass zu beseitigen.

Es gibt viele Bereiche, wo das wirklich gut funktioniert, wo die Anreize, etwas zu erschaffen, so groß sind, dass erstklassige Dinge dabei heraus kommen. Auch ohne Geld. Wer hätte das gedacht!

Es gibt aber auch Bereiche, die so unattraktiv sind, dass sie ohne Geld kaum jemand macht. Und daran kranken manche freien Projekte. Ein Thema ist immer wieder die schlechte Dokumentation. Tendenziell. Es gibt Projekte, die erstklassig dokumentiert sind, nimmt man aber den Durchschnitt, so gibt es da ganz sicher noch viel Bedarf an guter Dokumentation. Ein ähnlicher Schwachpunkt ist die Präsentation so mancher freier Projekte. Webseiten, die einfach schauderhaft aussehen, Informationen, die weit verstreut und teilweise fehlerhaft ist. Es wird einem vieles nicht möglichst leicht verdaulich präsentiert. Die Nutzung und Installation ist vielmehr ein kleines Abenteuer, die nur die Menschen bewältigen, die sich gut in der Szene auskennen und die Google als besten Freund haben.

Dabei geht es mir gar nicht darum, dies zu fordern. Ich möchte erstmal feststellen, wie es oft ist. Warum das so ist, ist ganz klar. Freie Entwickler denken oft nicht aus der Perspektive des Nutzers. Sie überlegen nicht: "Wie muss ich etwas gestalten, damit die Leute, die es nutzen wollen, so wenig wie möglich Aufwand damit haben?" Dies ist oft nicht der Hauptfokus, auf den sich alles konzentriert. Kommt noch hinzu, dass wenige freie Entwickler eines Projektes gar nicht all die Fähigkeiten mitbringen, die es braucht, um ein ganzheitlich gutes Projekt zu erschaffen. Denn neben der Programmierung gibt es viele weitere Qualitäten, die es braucht.

Bei kommerzieller Software liegt der Hauptfokus oft genau auf dem Aspekt der Präsentation. Kommerzielle Software muss irgendwie beim Kunden ankommen, muss den Wunsch auslösen, es haben zu wollen. Bei möglichst vielen Menschen. Ohne das wäre solch eine Software nicht überlebensfähig. Von daher muss vieles dafür getan werden, ein Produkt zu präsentieren.

Interessant dabei zu beobachten, dass kommerzielle Software oft mit verlockender Oberfläche daherkommt, wo wenig dahinter steckt und es bei freier Software eher umgedreht ist.

Es gibt ganz sicher eine Reihe von Anforderungen an gute Lösungen, die wenig natürliche Attraktivität besitzen. An solchen Punkten hilft Geld. Geld als Motivation für Dinge, wofür sonst keine natürlichen Motivationen gefunden werden.

Einige Unternehmen gehen bereits diesen Weg. Sie bieten freie Software zwar unentgeltlich an. Wenn man jedoch gute Werkzeuge zur einfachen Installation und Konfiguration möchte, muss man bezahlen. Oder aber man bezahlt für Support und Schulung, die den Einsatz von freier Software dann einfach machen.

Ich denke, dass freie Software eigentlich immer wieder Bereiche hat, wo Geld ganz dringend nötig ist, damit ein runde Sache draus wird. Bedenken habe ich allerdings, dass dann aus freier Software ebenfalls eine vordringlich geldgetriebene Angelegenheit werden könnte. Holt man sozusagen einmal das Geld mit ins Boot, versaut dass die ganzen guten Werte, die gute Atmosphäre, das gute Umfeld. Insofern kann ich Menschen verstehen, die bei allen Versuchen, Geld und freie Software irgendwie zusammenzubringen, kategorisch nein sagen.

Ein Weg, wie trotzdem Dinge erledigt werden, die eine gute Software braucht, sind die Interessen der Unternehmen, die mit freier Software irgendwie ihr Geld verdienen. So gibt es z.B. Sun, IBM oder Novell, die viel Geld in die freie Softwareentwicklung stecken. Deswegen, weil sie davon profitieren, weil sie sich damit Märkte erschließen. Oft ist das eine gute Form der Zusammenarbeit, die freie Projekte bereichert. Die GPL gewährleistet dabei, dass die Software dabei wirklich frei bleibt.

Ich habe eine weitere Idee, wie man freie Projekte fördern könnte. Es müsste eine Institution geben, die das Feld der freien Software beobachtet. Interessante Projekte würden dann gefördert, damit sie rund werden, also das bekommen, was ihnen noch fehlt. Diese Institution könnte z.B. viel Erfahrung damit haben, wie man Softwareprojekte zu attraktiven Projekten macht, könnte an Dokumentationen arbeiten, könnte eine gute Präsentation mit Marketingexperten aufziehen, könnte Werkzeuge zur Verfügung stellen, womit der ganze Entwicklungsprozess gestützt wird. Sourceforge bietet hier ja schon eine gute Plattform, es könnte jedoch noch viel weiter gehen. So eine Institution müsste natürlich auch Gelder verfügbar haben, um eben genau die Dinge zu tun, die sonst keiner macht, weil sie von sich aus wenig attraktiv sind.

Keine Ahnung, ob so eine Idee funktioniert. Wichtig finde ich aber: Es gibt so viele gute freie Projekte. Und die meisten haben irgendwo Mängel. Es sind Perlen, die nicht entdeckt werden. Gute Software, die wenig dokumentiert ist oder die man nur schwer nutzbar machen kann. Hier bräuchte es also Unterstützung, damit aus solchen Projekten ganzheitlich gute Produkte werden. An Geld als Motivation wird man oft nicht drumrum kommen.

Projekte wie Mozilla oder Openoffice funktionieren übrigens nach einer ganz ähnlichen Idee: Es gibt eine Institution, die Geld investiert, damit eine runde Sache daraus wird. Und diese Institutionen koordinieren auch einen Teil der Entwicklung, damit ganzheitlich gute Sachen entstehen. Wie man an Firefox, Thunderbird und Openoffice sehen kann, scheint das bisher ganz gut zu funktionieren.