Gleich im Anschluß an die Lektüre von "Head First HTML" las ich "Head First JavaScript", mein bisher fünftes und leider auch schlechtestes Head First-Buch. Gleich von Anfang an unangenehm aufgefallen ist mir die Tatsache, daß der Aufbau der Themen nicht besonders optimal gestaltet wurde. Der Autor fällt dem Leser gleich mit Event-Handling und dem Aufruf von Methoden auf Objekten ins Haus, ohne diesen Techniken vorher ein Kapitel gewidmet zu haben. Ich hätte mir gewünscht, daß die Grundlagen zuerst erklärt werden, bevor damit gearbeitet wird, was eigentlich die Grundvoraussetzung für alle Head First-Bücher sein sollte (und nicht nur für diese). Das Kapitel über Objekte kam jedenfalls viel zu weit hinten (als Java-Entwickler bin ich zwar mit Objekten vertraut, aber wäre ich es nicht, hätte ich bei einigen Beispielen das Nachsehen gehabt, was das Verständnis angeht). Die beiden Kapitel über if-Abfragen und Schleifen sind viel zu lang geworden, dabei sind weder if-Abfragen noch Schleifen besonders schwer zu verstehen, weshalb man diese Techniken selbst für JavaScript-Neulinge auf wesentlich weniger Seiten hätte unterbringen können. Warum der Autor dafür über 100 Seiten verbraten hat, ist mir ein Rätsel. Ebenfalls ein Rätsel ist das Kapitel über Debugging und Troubleshooting, denn den Inhalt dieses Kapitels könnte man auf einige wenige Seiten zusammenkürzen. Mir scheint, daß man hier versucht hat, das Buch zu strecken.
Es gibt aber auch Gutes zu vermelden, denn diverse Grundlagen wie Variablen instanziieren, Browser-Daten auslesen, Funktionen aufrufen und reguläre Ausdrücke erzeugen wurden anschaulich und leicht verständlich in Szene gesetzt. Das Kapitel über reguläre Ausdrücke ist sogar ziemlich gut geworden, nur das Beispiel zum Überprüfen eines Datums ist etwas unglücklich gewählt. In diesem Beispiel wird mit Hilfe von regulären Ausdrücken geprüft, ob das Datum aus zwei Zahlen, nochmal zwei Zahlen und nochmal vier Zahlen besteht. Das bedeutet aber, daß auch 12/34/5678 als gültiges Datum anerkannt wird, was keine gute Datums-Validierung darstellt. Am besten gefiel mir das Kapitel über DOM zum dynamischen Manipulieren von HTML-Seiten. Leider ist dieser Abschnitt viel zu kurz ausgefallen. Abgerundet wird das Buch mit einem Kapitel über Ajax, was ebenfalls sehr informativ ist und Appetit auf mehr macht. In Ajax programmieren kann man danach zwar noch lange nicht, aber immerhin hat man eine Ahnung davon erhalten, wie Ajax ungefähr funktioniert.
Ziemlich nervig fand ich die permanenten Übungsaufgaben, die ich allesamt nicht gemacht habe. Wenn ich ein Fachbuch kaufe, dann will ich nicht alle paar Seiten eine popelige Übung sehen, die mich fragt, wie man dieses oder jenes Problem denn eventuell lösen könnte. Wenn ich ein Fachbuch kaufe, dann erwarte ich, daß mir klipp & klar und kurz & bündig Wissen präsentiert wird, das ich in meiner täglichen Arbeit einsetzen kann, aber genau das kann ich mit "Head First JavaScript" leider nicht, oder nicht in dem Maße, wie ich es erwartet hätte. Wer noch nie zuvor mit C++ oder Java programmiert hat, für den ist "Head First JavaScript" sicherlich ein guter Einstieg, aber wer bereits Programmiererfahrung hat, der sollte sich für David Flanagans Referenzwerk entscheiden. Letzteres gilt auch für all diejenigen, die beruflich mit JavaScript arbeiten wollen, denn mit "Head First JavaScript" kann man vielleicht im privaten Bereich ein bißchen herumexperimentieren, aber im Beruf läßt sich damit nicht viel anfangen, zu schnell stößt man an die Grenzen des dargebotenen Wissens. Ich würde mir "Head First JavaScript" jedenfalls nicht mehr kaufen und mich stattdessen für das Buch von David Flanagan entscheiden, denn ein Referenzwerk braucht man eigentlich immer, wenn man professionell mit einer Sprache programmieren will. Wer dagegen lieber eine professionelle Einführung in JavaScript lesen möchte, dem sei "DOM Scripting" von Jeremy Keith wärmstens empfohlen. "DOM Scripting" enthält alle relevanten Informationen, die auch in "Head First JavaScript" vermittelt werden, nur kürzer und vor allem viel besser, denn Jeremy Keith schreibt brillant!