Die Bücherseite widmet sich diesmal Skriptsprachen: Das erste Buch behandelt Ruby für alltagstaugliche Skripte, das zweite möchte mit Scipy und Numpy auch Wissenschaftler zu Python bringen.
Management-Tools wie Puppet zeigen, dass neben Bash und Perl auch Ruby als Programmiersprache für Adminstrationsaufgaben taugt. Wie damit hochwertige Skripte für die Kommandozeile entstehen, erklärt David Bryant Copeland auf Englisch in “Build Awesome Command-Line Applications in Ruby”.
Tools in Ruby
Kapitel für Kapitel vermittelt der Autor, was ein gutes Programm ausmacht: Bedienungsfreundlichkeit für neue wie für erfahrene Nutzer, sinnvolle Standardeinstellungen und lesbare Dokumentation. Dabei lernt der Leser viel über Befehlszeilen-Tools im Allgemeinen: Kommandos, Schalter und Argumente gehören genauso dazu wie Exitcodes, Signale und die korrekte Benutzung von Standard- und Fehlerausgabe.
Das alles führt Copeland Schritt für Schritt in Ruby vor, mit zwei Beispielprogrammen, die einfach beginnen und im Laufe des Buches zu perfektionierten Anwendungen reifen.
So vermittelt das Buch, wie die Programmiersprache mit der Klasse »OptionParser« und Bibliotheken wie GLI Argumente verarbeitet sowie eine Hilfe-Option und eine Manpage direkt aus dem Anwendungscode erzeugt. Konfigurationsdateien im Yaml-Format und die Distribution des selbst geschriebenen Codes als Rubygems sind weitere Themen.
Schließlich kämmt der Autor den bisher produzierten Quelltext noch einmal durch, um mit Tests dessen Qualität zu sichern. Diese Reihenfolge ist aber nur dem Buchaufbau geschuldet: In der Praxis empfiehlt der Verfasser, die Tests als Erstes zu schreiben und Test Driven Development (TDD) zu betreiben.
Copeland sieht Kommandozeilenprogramme in bester Unix-Tradition als Teile von Pipelines. Daher fordert er Ausgabeformate wie etwa CSV, die sich vom nächsten Tool wieder leicht einlesen lassen. Dem menschlichen Anwender dagegen gönnt er eine Pretty-Printing-Option, die sich angenehm lesen lässt.
Mit seiner gründlichen Darstellung absolviert das Buch sowohl Pflicht als auch Kür mit Bravour. Der Anhang stellt weitere nützliche Frameworks und Gems für den Ruby-Programmierer vor.
Info
David Bryant Copeland:
Build Awesome Command-Line Applications in Ruby
Pragmatic Programmers, 2012
220 Seiten, 27 Euro
ISBN 978-1-93435-691-3
Python für Wissenschaftler
Programmierer, die in Wissenschaft und Forschung mathematische Probleme mit großen Datensätzen bearbeiten, setzen in der Regel auf C und Fortran. Interpretierte Sprachen wie Python und Perl sind für diese Zwecke zu langsam. Eli Bresserts Buch “SciPy and NumPy” möchte aber diese Zielgruppe darauf aufmerksam machen, dass Python dank zweier Pakete durchaus eine Alternative ist: Numpy erlaubt den optimierten Umgang mit mehrdimensionalen Arrays und Matrizen, Scipy setzt auf Numpy auf und bietet eine Vielzahl an mathematischen Funktionen aus verschiedenen Anwendungsbereichen.
Die Einführung in Numpy ist gelungen und macht auch Neulingen klar, wo die Vorteile seiner Datentypen gegenüber klassischen Python-Listen liegen. Anders sieht es beim Scipy-Teil des Buches aus: Da selbst Mathematiker nur in wenigen Spezialgebieten gleichzeitig das nötige Expertenwissen haben, dürften bei den meisten Lesern große Teile unverständlich bleiben. Bressert wirft hier mit Fachbegriffen um sich, deren Bekanntheit er voraussetzt.
Auch viele Beispielprogramme bleiben mangels Erklärungen unverständlich, sodass sie zwar illustrieren, dass Problemlösungen mit sehr kompaktem Python-Code gelingen, aber kaum die Anpassung an den eigenen Bedarf erlauben. Einige Abbildungen leiden außerdem darunter, dass der Autor sie nicht für den Schwarzweißdruck angepasst hat, so sind etwa verschiedenfarbige Funktionsgraphen dank ihres gleichen Grauwerts nicht mehr unterscheidbar.
Wünschenswert wäre eine deutlich erweiterte Version des Buches, die mehr Erklärungen zu der zugrunde liegenden Mathematik und vor allem eine brauchbare Dokumentation der Beispielprogramme enthält. In der vorliegenden Form nützt es nur Lesern, die bereits mit den eingesetzten Methoden vertraut sind. Der Preis von rund 11 Euro erscheint für ein 60 Seiten dünnes Büchlein gerade noch akzeptabel, wenn man die recht kleine Zielgruppe bedenkt.








