Coder, die bislang ihre MVC-Webapplikationen in Zend, Spring, Seam, Struts, Flow, Cake, symfony geschrieben haben, sind in ihrer Laufbahn mit Sicherheit an Javascript-Konzepten im Frontend vorbeigeschrammt. Sei es bei der Entwicklung von Dojo-basierten Form-Frontends mit JFaces oder netten AJAX-Callbacks, die dynamisch Code von einem RESTvollen Server abrufen; mittels JSONP also vielleicht sogar von einem Server, der mit der SOP bricht.
Was liegt näher, als wenigstens einmal auszuprobieren, was passiert, wenn man auch auf dem Server Javascript einsetzt, um den Technologiebruch zwischen den Maschinen verschwinden zu lassen und endlich nur noch mit einem Toolset, Stack und einer Problemdomäne umgehen zu müssen. Also installiert man sich node, npm, startet mit expressjs, connect, backbone, compiled templates (z.B. mustache) und versucht sich zu alledem auch noch an Javascript-orientierten NoSQL-Paradigmen wie CouchDB.
Und dann stellt man sehr schnell fest: verdammt, das popelige Javascript, das ich auf dem Client veranstaltet habe, um meinen Nutzer via oAuth/FBInit bei Facebook anzumelden, reicht nicht, um auf der Serverseite sinnvoll Models, Handler und Callbacks zu schreiben, die im günstigsten Fall auch noch halbwegs objektorientiert wiederverwendet werden können. Das ganze klassenorientierte (!) Java- und PHP-Wissen um Patterns, Best-Practices, Dependency Injection, Polymorphie, Komposition und Wiederverwendung hilft im Kontext Javascript einfach nicht weiter.
Genau an dieser Stelle setzt Soyan Stefanovs Buch an. Sehr viele kleine Beispiel-Schnipsel, ein geradlinig an die Go4-Patterns angelehntes und angenehm knapp und unakademisch gehaltenes Übersichts-Chapter und eine großartige und nachhaltige Einführung in Kompositions, Erzeugungs- und Verhaltensmuster haben mir in den letzten sieben Tagen eine völlig neue Welt eröffnet, nachdem ich 10 Jahre lang klassenorientierten Code fürs Web geschrieben habe.
Um auf dem Server sinnvolle Applikationen für node schreiben zu können (oder natürlich auch komplexere Dinge auf dem Client zu tun, Stichwort Sencha, JQueryUI, YUI), kommt man um das Wissen aus diesem Buch nicht herum. Und ich bezweifle, dass ein langjähriger Java-Entwickler genug Zeit, Muße und Nerven übrig hat, sich das selbe Wissen alleine aus dem Netz herauszufischen. Wer denkt, er hätte Javascript verstanden, sobald er Funktionen als vollwertige Objekte und Callbacks als strukturgebende Sprachkonstrukte anerkannt hat, weiß nicht mal von 10% der Magie, die in Javascript-Code steckt.
Daher: ganz ganz klare Anschaffungsempfehlung als Investition für die nächsten 10 Jahre! Gerade für Java-, PHP-, (.NET?) -Entwickler, die bereits einschlägige Erfahrung mit einem oder mehreren Frameworks gesammelt haben.