SelfLinux Einleitung Die Kathedrale und der Basar Abschnitt 8 | SelfLinux-0.13.0

| Die Kathedrale und der Basar | Autor Formatierung OPL

#### 8 Was wir von fetchmail sonst noch lernen können

Bevor wir zu den allgemeinen Belangen der Software-Entwicklung zurückkehren, wollen wir noch einige spezifische Lektionen der fetchmail-Erfahrung untersuchen.

Die rc-Syntax beinhaltet die optionalen noise-Schlüsselwörter, die vom Parser einfach ignoriert werden. Sie gestatten eine an Englisch angelehnte Syntax und sind bei weitem lesbarer als die traditionell knappen Schlüssel/Wert-Paare, die man erhält, wenn man diese überflüssigen Schlüsselwörter auslässt.

Diese Schlüsselwörter begannen ihre Karriere als spät nächtliche Experimente, als ich bemerkte, wie sehr die rc-Deklarationen bereits einer imperativen Mini-Programmiersprache ähnelten. (Aus diesem Grund änderte ich auch das ursprüngliche popclient-Schlüsselwort server zu poll).

Mir schien es, als würde eine Anpassung dieser imperativen Mini-Programmiersprache an gewöhnliches Englisch die Benutzung vereinfachen. Obwohl ich ein überzeugter Partisan für die Mach eine Sprache daraus-Schule des Designs bin (Beispiele dafür sind Emacs, HTML und viele Datenbankmaschinen), zweifle ich normalerweise an Englisch-ähnlichen Syntaxen.

Traditionellerweise haben Programmierer eine Tendenz, Steuerungssyntaxen zu bevorzugen, die sehr präzise und kompakt sind und keine Redundanzen beinhalten. Das ist ein kulturelles Erbe aus jener Zeit, als Computerressourcen teuer waren und die einzelnen Phasen des Parsing so einfach und billig wie möglich sein mussten. Englisch auf der anderen Seite, mit seiner 50-prozentigen Redundanz, sah damals nach einem sehr unzulänglichen Modell aus.

Das ist jedoch nicht der Grund, aus dem ich eine der englischen Sprache nahe Syntax normalerweise vermeide. Ich erwähne dieses Argument hier nur, um es zu entkräften. Mit den heutigen billigen CPU-Zyklen und Speicherbits sollte Kompaktheit kein Selbstzweck sein. Heute ist es für eine Programmiersprache wichtiger, für die Menschen bequem in der Handhabung zu sein, als billig für den Computer.

Es bleiben aber andere gute Gründe, um vorsichtig damit zu sein. Einer davon sind die Kosten für die Komplexität des Parsers -- man will die Komplexität ja nicht so weit aufblähen, dass sie eine bedeutende Quelle für Bugs und Verwirrung unter den Anwendern wird. Ein weiterer ist der, dass eine englisch-ähnliche Syntax von ihrem gesprochenen Englisch oft verlangt, dass es in eine groteske Form gepresst wird, die dann mit einer ethnischen Sprache nur mehr oberflächlich zu tun hat und so verwirrend ist wie eine traditionelle Syntax einer Programmiersprache (was man oft bei so genannten Fourth Generation Languages und kommerziellen Datenbankabfragesprachen beobachten kann).

Die Steuerungssyntax von fetchmail scheint diese Probleme zu umgehen, da die Sprache extrem eingeschränkt ist. Sie kommt nicht einmal in die Nähe einer Allzweck-Sprache, und die Dinge, die sich damit ausdrücken lassen, sind nicht sehr kompliziert. Das Potential für Verwirrung bei der Unterscheidung zwischen einer kleinen Teilmenge von Englisch und der eigentlichen Steuerungssprache ist daher gering. Ich glaube, es gibt hier eine breiter anwendbare Lektion zu lernen:

> 16. Wenn Ihre Programmiersprache in keiner Weise Turing-vollständig ist, können Sie sich mit syntaktischer Glasur anfreunden.

Eine weitere Lehre betrifft Sicherheit durch Unsichtbarkeit (security by obscurity). Einige fetchmail-Anwender baten mich, die Software so zu ändern, dass Passwörter in der rc-Datei verschlüsselt werden, so dass Spione sie nicht so leicht entdecken könnten.

Ich folgte dieser Bitte nicht, denn es führt keineswegs zu einem Schutz. Jeder, der das entsprechende Privileg erhalten hat, Ihre rc-Datei zu lesen, wird fetchmail genau wie Sie aufrufen und verwenden können -- und wenn es Ihr Passwort ist, hinter dem er her ist, wird er in der Lage sein, den Dekoder aus dem fetchmail-Quellcode selbst herauszulesen.

Alles, was verschlüsselte .fetchmailrc-Passwörter für Sie tun könnten, ist, Ihnen ein trügerisches Gefühl der Sicherheit zu vermitteln, wenn Sie nicht sehr angestrengt darüber nachdenken. Die allgemeine Regel hier ist:

> 17. Ein Sicherheitssystem ist nur so sicher wie seine Geheimnisse. Hüten Sie sich vor Pseudo-Geheimnissen.