FLUG Logo

Freiburger Linux User Group


The Art of UNIX Programming

Buchinformationen:
Eric S. Raymond. The Art of UNIX Programming. Addision-Wesley. ISBN 0-13-142909-9. 525 Seiten. 35 Euro.
Rezensent: Walter Harms (10/2004) für die Freiburger Linux User Group.

Rezension

Das Buch gehört zur "Professionals Computing Series" von Addision-Wesley. Der Autor Eric Raymond ist als Programmierer und als Linux Evangelist bekannt. Er kann aus langjähriger Erfahrung schöpfen und hat für sein Buch mit vielen der ursprünglichen UNIX Entwickler gesprochen. Als OpenSource Verfechter hat es sein Buch auch komplett mit OS Tools geschrieben. So wurde es unter EMACS in XML-DocBook geschrieben und mit Hilfe von xmlto, xsltproc, dvips, groff und tex in ein Druckform gebracht. Das Coverbild wurde mit GIMP erstellt.

Nachdem wir nun festgestellt haben, dass der Autor vom Fach ist und dazu Konsequent, wie steht es mit dem Inhalt? Letztendlich will der Autor die Kleinkinder Frage nach dem "warum" beantworten.

Der Inhalt teilt sich in 4 Teile: Context, Design, Implementation, Community.

Der erste Teil beschreibt wie UNIX entstanden ist, die sogenanaten UNIX Kriege ("UNIX Wars") und ihre Folgen. Nach welchen Prinzipien UNIX Programme entstehen und warum die UNIX-Kultur so einzigartig ist. Aus welche Wurzeln haben sie die Ideen gespeist die das System prägen. Die UNIX Philosophie wird in 10 einfachen Regeln zusammengefasst, die wieder in einer einzigen Enden (K.I.S.S. "keep it simple stupid" ).

Im Zweiten Teil werden die Regeln aus Teil 1 beleuchtet. Er bleibt bei Leibe nicht an der Oberfläche. Datenformate und Inter-Prozess-Kommunikation werden ebenso behandelt, wie die Frage warum TCP/IP sich durchsetzen konnte. Es wird gerne kritisiert, dass er sein Programm "fetchmail" gerne in den Mittelpunkt stellt. Hier muss ich sagen ist es korrekt. Er ist der Autor. Er weiß warum dieses und jenes gemacht wird und solches nicht. Auf jeden Fall stehen neben "fetchmail" noch viele andere Programme als Beispiel zur Verfügung wovon dann auch ausgiebig gebrauch gemacht wird.

Teil 3 Implementation: Der UNIX Kernel ist in C geschrieben. Aber warum? Welche Tools neben EMACS benötigt ein Programmierer noch?

Als Ausbilder bin ich immer wieder verblüfft, was bei Auszubildenen so hängen bleibt (das gilt auch für Informatikstudenten). Und nicht selten auch was für einen Unsinn man ihnen erzählt. Oft Fehlen die Grundlagen, da ist es um so erfrischender zu sehen, dass es noch jemanden gibt, der sich um Grundlagen sorgt.

Teil 4 Community: Wer das Buch ließt, weiß das der OpenSource-Gedanke und die Idee Community eigentlich alt sind. Dennoch sind mit dem Internet neue Formen und Qualitäten entstanden. Orte wie Sourceforge oder Freshmeat sollten jedem Programmierer ein Begriff sein. Andere Wege wie Usenet haben hingegen verloren. Mailing-Listen sind immer noch wichtig.

Nach dem schnellen Überblick, für wen ist das Buch? Eigentlich für jeden, der unter UNIX programmiert und die Frage "warum" noch stellen kann. Warum leitet TAB in "make" ein Kommando ein? Warum sollte ich konfigfiles in ASCII machen?

Wer nach "wie" fragt, ist hier garantiert falsch. Listings sucht man daher vergebens. Mit diesem Buch kommt man den "Programmieren lernen" näher. Der Realität kommt man jedenfalls näher als so manches Buch der Informatik, welches Studenten erzählen möchte wie man programmiert.

Früher wurden das Wissen von Programmierer zu Programmierer weitergegeben, eine verlorenen Tradition, die die Universität nicht ersetzen konnte. Dieses Buch ist wichtig, weil diese Informationen, die die Grundlagen der Ideen bilden, darin verzeichnet und begründet sind.