Das Buch ist etwas älter, aber nach ein paar nachdrücklichen Empfehlungen habe ich es mir endlich zugelegt. Der Autor ist immerhin der “Entdecker” von JSON.
Der erste Eindruck: Mann, was für ein dünnes Buch. 145 Seiten (ohne Index). Allerdings nimmt Douglas Crockford schon im Vorwort den Mund reichlich voll:
This is not a book for dummies. This book is small, but it is dense. There is a lot of material packed into it. Don’t be discouraged if it takes multiple readings to get it. Your efforts will be rewarded.
Aber das ist OK, denn er liefert auch. Nach ein paar allgemeinen Ausführungen im ersten Kapitel (“Global variables are bad, mmmmkay?”) geht es direkt los: Die Grammatik der von Crockford favorisierten Teilmenge von JavaScript wird anhand von Syntaxdiagrammen erklärt. Code-Beispiele tauchen nur auf, wenn eine klärende Darstellung erforderlich ist.
In den restlichen Kapiteln wird das Tempo beibehalten. Allerdings notwendigerweise mit mehr Beispielcode. Objekte, Funktionen, Vererbung, Arrays, Reguläre Ausdrücke, Standardmethoden und ein paar Kapitel zum Programmierstil werden knapp, aber erschöpfend abgehandelt. Es ist, wie angekündugt, ab und zu nötig ein Kapitel mehrfach zu lesen um es richtig zu verstehen (bei mir z.B. “Vererbung” drei mal), aber wenn man endlich begreift, was der Autor einem sagen will, dann klickt es auch richtig.
In den Anhängen werden dann die schrecklichen und schlechten Features von JavaScript vorgestellt, mitsamt kurzer Erklärung für die Bewertung. Wer also seine Lieblingskonstrukte vorher im Buch vermisst hat, wird hier fündig. Dann noch eine kurze Einführung in JSLint und JSON und schon ist man durch.
Insgesamt ein gutes Buch, auch wenn ich nicht zu 100 Prozent mit dem Autor konform gehe was die besten Teile von JavaScript sind, bin ich bei den guten, schlechten und schrecklichen doch ganz seiner Meinung. Das Buch ist ideal, wenn man sich ein paar Gedanken über die Art machen will, wie man JavaScript (oder auch andere Programmiersprachen) einsetzt. Die Botschaft besseren Code durch den konsequenten Verzicht auf den Einsatz fragwürdiger Features zu schreiben, ist eine die ich noch nicht oft gehört habe, aber die zumindest bei mir angekommen ist. (Ich habe mehrfach gehört, dass es in Firmen die C++ einsetzen üblich sei, eine “legales” Subset der Sprache für zu definieren. Aber bei C++ wundert mich das jetzt auch gar nicht.)
Fazit: kein Tutorial, nicht unbedingt für Anfänger geeignet, mehr Meinung als Fakten (aber auf eine gute Art), super Gedankenfutter.
Kleine Anmerkung: Der Link ist ein Amazon-Partnerlink. Macht mich reich!