[linux-l] Slightly off topic: Jagd auf Spam

Jan Krueger jk at microgalaxy.net
Mi Okt 29 18:49:02 CET 2003


On Monday 27 October 2003 04:22, Peter Ross wrote:
> .. Benutzt Du vielleicht Programmiersprachen, die gewoehnliche
> Programmierer in Bonnies Ranch treiben?
Ich möchte hier einen Vergleich anbringen:
Vor vielen, vielen Millionen Jahren hauste der Mensch in Höhlen oder in aus 
Bambus zusammengestekcten und mit Palmwedeln verbunden und verdeckten 
Behausungen.

Irgendwanneinmal entdeckte ein Mensch den praktischen Nutzen des Faustkeils 
Werkzeug. Womit sich nichts an den Bahausungen änderte. Paar Millionen Jahre 
später kam jemand auf die Idee den Fauskeil an einen Stock zu binden und 
geboren war 

		Der Hammer

oder die Axt, kann man nicht so genau einordnen.
Folglich hatte der Mensch ein geeignetes Werkzeug um sich stabilere 
Behausungen aus Holzbalken zu bauen, Hütten, Holzhäuser, der Hammer war dabei 
sehr nützlich und wurde unentbehrlich, standard sozusagen.

Einige Jahre später baute der Mensch Steinhäuser aus Ziegeln. Auch da war der 
Hammer sehr nützlich, schließlich konnte man noch gut Nägel in verputzten 
Ziegel-Wände schlagen um Bilder zu befestigen oder so. Auch waren die 
Fensterrahmen und Türen aus Holz. Und schließlich wurde der Hammer verwendet 
um Möbel zu bauen. Der Hammer eignete sich aber mehr schlecht als recht um 
Zement auf die Ziegel aufzubringen oder die Wände zu verputzen.

Noch einige Jahre später schließlich erfand der Mensch Beton und konnte damit 
sehr hohe und stabile Häuser bauen. Vorerst noch mit Holzfenstern und Türen, 
später mit Plaste-Fenstern und Holz/Metall/Plaste/Glas-Türen. Der Hammer war 
für die Errichtung des Hauses nicht mehr wirklich von Bedeutung, wurde aber 
immernoch verwendet um Möbel zu bauen und ist nach wie vor in den meisten 
Haushalten anzutreffen. Für das Bauen der Beton-Häuser jedoch hat man 
geignetere Werkzeuge entwickelt mit denen es gelingt den Beton zu beherrschen 
und ungewöhnliche Strukturen zu schaffen.

Zwischendurch hat mal jemand Stahl-Gebäude gebaut, Eiffel-Turm, auch da hat 
der Hammer eine untergeordnete Rolle gespielt und es wurden dem Zweck 
angepaßte Werkzeuge entwickelt und benutzt.

In heutiger Zeit nun beut man komlizierteste Softwaregebäude mit einem Hammer 
und wundert sich dann darüber, daß diese nicht stabil sind oder komische 
Effekte aufweisen. Klar, mit einem Hammer ein Loch in eine Betonwand zu 
hämmern um ein Regal befestigen zu wollen ist nicht wirklich das selbe wie 
eine Schlagbohrmaschine zu verwenden. Das Loch wäre zu groß, unförmig, und es 
würde reichlich lange dauern es zu hämmern. So eine Schlagbohrmaschine schaft 
ein wohldefiniertes Loch in wenigen Sekunden. Die Verwendung des geeigneten 
WErkzeugs ist also für den ERfolg ausschlaggebend.

Wenn also ein Softwareprojet eine bestimmte Komplexitätsstufe überschreitet so 
lohnt es sich durchaus gedanken zu machen, ob man sich weiter am Hammer 
festhalten möchte oder ob man für die verschiedenen Bereiche jeweils 
geeignetes Werkzeug verwendet, zum beispiel eben höhere Programmiersprachen 
oder Sprachen in welchen man jenen spezifischen bereich effizienter und damit 
fehlerfreier ausdrücken kann.

Wenn also jemand einen hinrecihend komplexen Netz-werk-server in C schreibt 
muß er davon ausgehen, daß dieser danach Sicherheitslücken enthält. Oder er 
beschränt die komplexität, so wie es djb tut.
Oder er wält ein geeigneteres Werkzeug, das könnte zb. Erlang sein, muß aber 
nicht.
Spamfilter, welcher sich mit menschlicher Sprache auseinander setzen müssen 
sind vielleicht auch besser in Sprachen zu schreiben in denen man die 
menschliche SPrache am ehesten abbilden kann, zb. Lisp oder Prolog.
Oder Desktop-Umgebungen in Sprachen die ein verteiltes community-arbeiten und 
bescherrschung der Komplexität unterstützen, zb. Erlang und Lisp in 
Kombination oder Rebol

Der Betonhausbauer kannes sich aussuchen ob er zu Hammer oder Bohrmaschine 
greift (Schon mal gezählt wie viele Verschiedene Werkzeige es im Baumarkt zu 
kaufen gibt?)

Der Programmierer kann es sich auch aussuchen. Entweder er nimmt für komlexe 
Sachen C, oder klarer noch wird es mit Assembler, oder höhere Sprachen.
Miot C und Assembler mag er einfache Sprachen haben, muß sich dafür später mit 
Wust an Code auseinander setzen, mit Höheren Sprachen mag die Lernkurve etwas 
flacher ausfallen (sicherlich sind die verschiedenen Sprachen auch nicht 
jedermann gleichermaßen zugänglich, wie bei den menschlichen Sprech-Sprachen) 
dafür kann er das komplexe Gebilde später besser beherrschen.

Gruß
Jan






Mehr Informationen über die Mailingliste linux-l