Bonjour à tous.

Je suis actuellement en grande réflexion pour le choix d'un stack pour le développement d'une application web.
Voilà actuellement ou j'en suis dans mes longues réflexions.

Je suis à l'origine développeur Java, je connais bien ce langage et je souhaite continuer avec.
J'ai développé durant 3 ans une app à base de JSF1.2, Rifaces, Spring, MyBatis. Je développe régulièrement des WebServices à base de Spring, Hibernate Validator, Jersey, MyBatis
Ce que j'en retiens aujourd'hui de ces expériences :
  • Je ne veux plus de JSF/Richfaces. JSF/Richfaces permet de développer rapidement des application riches mais le code généré coté client est lourd et complètement indébugable. Je souhaite de plus me tourner vers des technologies stateless pour plus de scalabilité.
    |*]Je veux rester proche de l'HTML "de base" et comprendre le DOM en entier
  • Je suis de plus en plus convaincu pas les architectures construites autour d'API REST. J'aime le concept, j'aime le fait que ces API puissent servir à plusieurs fin (App web, mobiles etc.)

Après ces expériences, c'est tout naturellement que je me suis tourné vers le développement d'application HTML5/CSS/Javascript et je me suis notamment beaucoup intéressé à AngularJS que j'ai testé pendant deux mois.
J'adore le concept d'AngularJS : 2 way data binding, call ajax natifs, directives, code clair etc mais plusieurs choses font que ce framework me freine.
Tout d'abord, j'ai du mal à imaginer développer un site entier reposant uniquement sur AngularJS, la communauté Angular préconisant en effet de ne pas mélanger les techno server-side et client-side.
Ensuite,je crains le caractère "lourd" du framework au fur et à mesure que l'application grossisse. La communauté préconise de multiplier le fichier .js pour mieux découper l'application. Je n'imagine pas le client garder en mémoire l'ensemble des possibles centaines de fichier javascript nécessaires au fonctionnement du site. De plus, le lazy loading n'existe pas nativement et je trouve que même en utilisant requireJS, angularAMD ou même oclazyload, on relève plus du bricolage que d'autre chose.
Ensuite, le concept de route, bien que bien fait me semble limité dans le cadre d'un site comprenant des centaines de routes différentes.
Enfin la future version d'AngularJS, de ce que j'ai pu lire ici ou la est une refonte du framework actuel : Pas spécialement l'envie de tout refaire une fois cette nouvelle version disponible...

Tout ça pour dire qu'à l'heure actuelle, je souhaite garder l'API REST server-side et trouver une solution client-side. Pourquoi pas un mélange client/server de Spring MVC ou autre avec un Framework javascript client-side pour retrouver l'aspect MVC d'Angular (Peut-être BackboneJS, EmberJS ou autre....) sans les contraintes liées à celui-ci. Je n'ai ni avis ni expérience la dessus.

Je ne sais où me diriger aujourd'hui, avez vous des retours d'expériences sur ce type d'architectures sur de larges applications ?

Merci !