J'ai utilisé Ember et Backbone avec Drupal - mais pas comme vous le pensez.
Ember et Backbone sont tous deux de bons outils pour créer une application Web - mais Drupal n'est pas vraiment un bon outil à utiliser avec eux. Ce que vous désirez lorsque vous créez une application Web, c'est quelque chose de léger et de rapide. Vous voulez qu'il soit rapide pour pouvoir donner à vos utilisateurs le sentiment d'avoir des temps de réponse immédiats. Vous voulez qu'il soit léger pour le rendre plus évolutif. Drupal n'est pas rapide - le bootstrap Drupal complet prend beaucoup de temps (par rapport à beaucoup d'autres options) si tout ce que vous voulez faire est de fournir une API REST pour votre application web. Drupal est PHP, ce qui le rend également assez gourmand en RAM, limitant le nombre d'utilisateurs simultanés.
Donc, si Drupal est si mauvais pour cela, pourquoi l'utiliser?
Vous devriez vraiment utiliser Drupal pour ce que Drupal excelle - un CMS. Ce que j'ai fait dans le passé avec des projets qui avaient besoin d'une application web, c'est d'utiliser Drupal pour créer le CMS autour de l'application web. Pour créer des trucs comme des blogs, des listes de contenu et autres. J'ai également créé des modules pour définir des trucs backend - comme les définitions de schéma, et d'autres trucs où il était logique d'utiliser Drupal - parce que cela a rendu mon développement beaucoup plus facile.
Au lieu d'utiliser Drupal pour créer l'API REST dont la webapp avait besoin - j'ai utilisé Node.js pour créer la véritable API REST et d'autres appels AJAX de vérification que la webapp devait effectuer. Node.js excelle dans ce domaine. C'est extrêmement rapide (temps de réponse aussi bas que 30 ms pour une liste d'objets). Il est également très léger, car JavaScript sur le serveur utilise des actions asynchrones, un serveur Node.js peut généralement gérer des milliers d'utilisateurs simultanés où PHP peut gérer jusqu'à 100. En plus de cela - puisque Node.js est JavaScript, vous pouvez réutiliser beaucoup du serveur de code et du côté client. Vous pouvez littéralement écrire le même code de validation, au lieu d'avoir à implémenter à la fois le côté client en JavaScript et le côté serveur en PHP. Si vous allez à Drupal con à Münich dans quelques semaines - vous devriez envisager de regarder la présentation node.js.
Donc, si vous êtes un développeur, je recommanderais fortement de faire une configuration similaire et d'utiliser uniquement Drupal pour ce qu'il est vraiment bon. Si vous voulez créer une webapp simple et que vous ne vous attendez pas à beaucoup d'utilisateurs, utiliser Drupal comme backend pourrait être une option si cela aide votre temps de développement.
Mettre à jour Drupal 8
Donc, avec la sortie de Drupal 8, certains des éléments ci-dessus sont toujours valables, mais pas dans la même étendue que précédemment. Drupal 8 est comme Drupal 7 pas un outil léger, comme Node.js, Rails, Django etc. Étant donné que les applications JavaScript consomment principalement divers services, vous devez toujours déterminer si Drupal est le meilleur outil pour cela.
Avec Drupal 8, beaucoup de choses ont été améliorées. Les services sont beaucoup plus natifs, Symphony pilotant la demande / réponse. Drupal 8 a beaucoup de possibilités intéressantes avec la mise en cache avancée et toutes les excellentes fonctionnalités. Mais même avec toute la grandeur de Drupal 8, il est toujours beaucoup plus lourd que les applications légères. Il est difficile de dire à quel point Drupal 8 peut être utilisé avec succès comme fournisseur de services Web rapide.
Donc, malgré tout ce qui a été dit et fait, ma recommandation générale reste la même. En tant que développeur Drupal, il est facile d'utiliser Drupal pour tout, car nous le connaissons. Il se sent en sécurité et Drupal peut être utilisé pour à peu près n'importe quoi. N'oubliez pas qu'il est possible d'utiliser Drupal pour n'importe quoi, mais cela ne signifie pas que c'est le meilleur outil pour tout. Faire une analyse solide et comprendre les forces et les faiblesses des outils que vous souhaitez utiliser dans un projet informatique, sera toujours d'une grande aide et vous aidera à éviter de vous retrouver dans une impasse avec un résultat qui ne correspond pas à vos attentes .