Mittwoch, August 23, 2006

Schlechter ist besser, und anderes

Ich bin mal wieder in die Tiefen der Wikipedia abgeschweift - nur weil mich jemand aus London nach Dateisystemen gefragt hat.
Da wäre Plan 9 from Bell Labs. Ein Betriebssystem, das als Research-Nachfolger von Unix konzipiert wurde (Wie stellt man einen Forschungsantrag für so ein Projekt, das über 15 Jahre gelaufen ist und wahrscheinlich keinen Cent eingebracht hat?) wurde geschrieben von einigen der illustresten Köpfe im Unix-Bereich: Rob Pike (Tausendsassa, z.B. Erfinder des ersten Window-Managers, von UTF-8, oder von Sawzall), Ken Thompson (hat als erster reguläre Ausdrücke implementiert), Dennis Ritchie, Brian Kernigham (Erfinder von C), Bjarne Stroustrup (Erfinder C++), Tom Duff ("Duff's Device", heute bei Pixar), Douglass McIlroy (Erfinder Unix-Pipes). Mit Sicherheit also keine Co-Autoren des Unix Haters Handbook.
Was hat das mit Dateisystemen zu tun? Plan 9 hat das Konzept des Unix-Dateisystems ins Extrem getrieben - alles wird zur Datei: Drucker, Prozesse, andere Rechner, Sockets, Windows. Spezielle Arten von Links konnten verschiedene Quellen in ein Verzeichnis mounten. So werden lokale und verteilt laufende Prozesse transparent.
Link 2 wäre Worse is Better, der "New Jersey Style" des Programmierens. Einfachkeit sollte das wichtigste Ziel der Implementation sein. Einfachkeit der Implementierung ist wichtiger als Einfachkeit der Schnittstelle. Korrektheit steht an zweiter Stelle, Konsistenz an dritter, und Vollständigkeit an vierter. Das mag manchmal nicht immer korrekten, zu inkonsistenten, und am wenigsten vollständigen Lösungen führen, die aber dafür einfach sind. Dem kann ich mittlerweile nur zustimmen. Lucene ist für mich ein Beispiel dafür, wie man ein komplexes Problem auf einfachste Art lösen kann.
Link 3: Die Seite über die Unix Design-Philosophie. Bekannte Namen von oben.