Ich hatte vor rund 1,5 Jahren mal jeweils einen kurzen Ausflug nach Backbone und Angular unternommen. Backbone wirkte auf den ersten Blick zugänglicher, weil es konsequent auf jQuery setzt und die Anzahl seiner Methoden überschaubar schien. Im Gegenzug muss man allerdings eine zusätzliche Template-Engine einbinden und Funktionen selber bauen, die in Angular als Direktiven bereits vorhanden sind. Angular erschien mir vom Einstieg her komplexer, brachte aber mehr Komponenten mit und schien mir näher an 'richtigen' MVC Frameworks zu sein.
Im vergangenen Oktober hatte ich mich beim Zusammenstellen des Technology-Stacks für eine SinglePage App mit Social-Network-Funktionalität dann für Angular entschieden und kann insofern etwas mehr darüber erzählen.
Der Einstieg in Angular gestaltet sich relativ einfach, solange man auf der 'high-level'-Ebene bleibt, d.h. die vorhandenen Services und Direktiven verwendet. Beim schreiben eigener Komponenten steigt die Lernkurve aber exponentiell und gelegentlich frage ich mich, warum manche Dinge so umständlich sein müssen. Mit meinen 6 Monaten Angular-Erfahrung würde ich mich noch als 'Junior' einstufen, und um mit diesem Framework wirklich versiert zu werden, sind sicherlich 1-2 Jahre notwendig. Da Angular zunehmend an Bedeutung gewinnt und die eigenen Ressourcen begrenzt sind, sollte man sich darauf spezialisieren, anstatt einen Streifzug durch mehrere Frameworks zu unternehmen und nachher keines zu beherrschen.
Hinzu kommt, dass Angular in relativ kurzen Zeiträumen neue Releases nachschiebt. Aktuell ist Version 1.3x, mit der 1.4 Beta in den Startlöchern und 2.x vor der Tür. Was bedeutet, dass es trotz der Popularität relativ wenig aktuelle Lern-Ressourcen gibt und man alles vor Mitte/Ende 2014 vergessen kann. Ich hatte vergangenes Jahr mehrere Bücher erworben und würde davon keines mehr für einen Einsteiger empfehlen. Angular lässt sich nur durch praktische Erfahrung meistern. Der schnellste Weg ist, sich durch die Lernressourcen auf der offiziellen Seite zu arbeiten und anschließend ein Projekt zu starten. Andere Quellen würde ich erst mal komplett ignorieren. So dass dort vermittelte Wissen nicht veraltet ist, hat man es vergessen, wenn man es braucht und muss dann doch bei Stackoverflow nachschlagen.