Wer nach fundierter Literatur zur Programmiersprache R sucht, hat nicht viel Auswahl. Sekunde bitte, wieso R, John Chambers Buch behandelt S, oder etwa nicht? Korrekt, aber die Unterschiede zwischen S und R sind so marginal, dass man sie die meiste Zeit ohne schädliche Folgen vernachlässigen kann. Wer R lernen will, begeht keinen Fehler, sich intensiv mit der Literatur zu S zu beschäftigen. Wahrscheinlich ist das sogar der einzige Weg, sich systematisch und mit vertretbarem Zeitaufwand in R einzuarbeiten -- das online verfügbare Material des R-Projekts hat leider deutliche didaktische Schwächen.
Der übliche Anwendungsfall für R oder S ist die *statistische Datenauswertung*, aber während das Literaturangebot zu diesem Aspekt vergleichsweise reichhaltig ist, sieht es, wie schon gesagt, eher mager aus, wenn man lernen will, die Möglichkeiten der Sprache(n) auszuschöpfen und eigenen Code dafür zu entwickeln.
John Chambers ist einer der Schöpfer und Architekten von S. Mit "Programming With Data" hat er 1998 ein Referenzwerk zu dieser Sprache vorgelegt, das sich durch viele Qualitäten von anderen Büchern abhebt. Auffällig ist dabei der gleichmäßig freundliche und zugewandte Ton des Autors -- Herr Chambers kennt sein Thema, er hat das Anliegen, es nachvollziehbar darzustellen und sein Wissen weiterzugeben, und das gelingt ihm auch, und zwar hervorragend. Zwei Merkmale seines Stils zeigen das meines Erachtens besonders deutlich: (1) er schafft es durchgängig, die technischen Details der Sprache in den großen Zusammenhang einzubinden (konsequenterweise ist einer seiner häufigsten Ratschläge, immer das "big picture" im Auge zu behalten); (2) er ist wie jeder Sachbuchautor mit didaktischem Geschick in der Lage, Verständnisschwierigkeiten vorauszusehen und gezielt abzufangen -- Herr Chambers reiht keine Fakten aneinander, er leitet einen Lernprozess an.
Ein weiterer positiver Aspekt, der für den Autor und sein Buch einnimmt, ist die geduldige und nachsichtige Grundeinstellung, die er vermittelt. Jeder, der einmal als Anfänger mit einer Programmiersprache gerungen hat, kennt die Frustration, die in der ersten Lernphase oft auftritt. Chambers ermutigt dazu, die eigenen Programmierkenntnisse als Entwicklungsprozess zu verstehen, der Zeit braucht und mit den wachsenden Ansprüchen viele Revisionen des eigenen Codes mit sich bringt; trotzdem ist es möglich, mit R (oder S) schnell zu produktiven Ergebnissen zu kommen -- psychologisch erweist er mit dieser Sichtweise sowohl seinen Lesern als auch der Sprache R (bzw. S) einen großen Dienst.
Es ist hilfreich, eine andere Programmiersprache halbwegs zu beherrschen, wenn man von diesem Buch profitieren will, aber, wie der Autor selbst betont, keine zwingende Voraussetzung. Obwohl ich bereits durch diverse Skriptsprachen vorbelastet an das Buch herangegangen bin und deshalb aus der Grundgesamtheit der Absoluten-Nicht-Programmierer herausfalle, kann ich dem Autor, glaube ich, trotzdem Recht geben: auch komplette Neulinge sollten es schaffen, R (oder S) mit Hilfe dieses Buchs programmieren zu lernen. Der Autor behandelt alle wichtigen Aspekte der Sprache hinreichend ausführlich; der ausdrückliche Schwerpunkt des Buchs liegt darin, die Programmierung von Klassen, Funktionen und Methoden im S4-System darzustellen. *Nicht* behandelt wird aus verständlichen Gründen die Entwicklung von Erweiterungspaketen für R, aber das lässt sich verschmerzen.
Ein wichtiger Aspekt ist die Sprachbarriere. Kann man sich als deutscher Nicht-Programmierer mit einem englischen Buch eine Programmiersprache aneignen? Im vorliegenden Fall würde ich sagen, ja, unbedingt, vorausgesetzt, man ist mit dem Englischen durchschnittlich vertraut. Die Sprache des Buchs ist insgesamt sehr präzise, transparent und verständlich, ein weiterer Aspekt, der den Autor als wirklichen Experten ausweist.
Das einzige, was ich bedaure, ist die Tatsache, dass ein zeitraubender und frustrierender Umweg nötig war, bis ich mich für dieses Buch entschieden habe. Es war ein kapitaler Irrtum anzunehmen, es wäre leichter, R mit einem deutschen Buch zu lernen, anstatt sich mit einem englisches Buch zu S zu befassen. Was ich über R gelernt habe, habe ich zu etwa 70% aus Chambers "Programming with Data", zu 25% aus der frei verfügbaren Dokumentation, und vielleicht zu 5% aus einem deutschen Titel zu R (ebenfalls bei Springer erschienen). Ehre, wem Ehre gebührt.