Developpez.com - Rubrique Dév. Web

Le Club des Développeurs et IT Pro

AngularJS

Les développeurs dans le trouble au sujet de la version 2.0, quel va être l'avenir du framework JavaScript de Google ?

Le 2015-01-15 10:16:54, par Golgotha, Membre expert
AngularJS, les développeurs dans le trouble au sujet de la version 2.0


Depuis l'annonce à la conférence ng-europe, le 22 et 23 octobre à Paris des précisions sur la version 2 du framework AngularJS (lire également ceci), de nombreux développeurs s'interrogent.

En effet, cette annonce avait fait l'effet d'une bombe au sein des utilisateurs du célèbre framework AngularJS qui avait pourtant pris la tête de la course devant Backbone.js, Ember.js, Knockout.js, etc.
L'équipe d'angularJS avait annoncé entre autre qu'une rétro-compatibilité entre la version en cours de développement et la version actuelle n'était pas à l'ordre du jour, de plus, c'est pratiquement tout le concept d'AngularJS qui y est remis en cause, ce qui implique pas mal de chose :

  • Ré-investir du temps pour ré-apprendre les nouveaux concepts/langages liés à la version 2.
  • Ré-investir du temps pour re-développer des applications faite avec la version 1.
  • Expliquer à vos supérieurs que la version 1 n'est plus compatible avec la version 2.


Si vous aviez pris du temps pour faire des guides ou des tutoriels sur le version 1, accepter que ce temps et cette énergie n'ai pas été aussi utile que vous le pensiez.

Avec ce changement, Google prend le risque de voir toute sa communauté se diviser, alors qu'ils ont gagné sa confiance et une popularité tellement difficile à avoir lorsque l'on sait le nombre de frameworks qui sortent et ne voient jamais le succès. Certains se demandent déjà si la communauté va reprendre la version 1 et la maintenir, on verrait alors deux versions distinctes de AngularJS se mettre en place, d'autres ont déjà quitté le navire en apprenant la nouvelle puisqu'il y avaient investi beaucoup de temps.

Quelques commentaires en réaction sur le blog de Shawn Wildermuth qui titrait sont article "It Is Too Soon to Panic on AngularJS 2.0" (Il est trop tôt pour paniquer à propos de AngularJS 2.0).

Dirk, rassurant nous dit qu'il n'y a pas de problème selon lui, il suffit de garder la version 1 sur les projets qui fonctionnent, et de passer sur la nouvelle version sur de nouveau projet.

Envoyé par Dirk
If it isn't broken don't fix it! It's simple, in my opinion.
If Angular 1.x works for you and you don't have the resources to upgrade, don't.

Pour Khalid Abuhakmeh, Le message de Shawn est bien beau mais dans la réalité, il faut faire face aux réactions des hommes qui ont investis des millions dans des projets avec AngularJS et à qui ont dois malheureusement annoncer que leur investissement ne sert plus à rien.

Envoyé par Khalid Abuhakmeh
I like how you say that so cavalierly. If I were in the spot, It would not be fun to see the reaction of the business that just sunk a million dollars into the AngularJs experiment just to find out there is no future there for the investment that they just made

Justin Asmussen se demande si l'équipe d'AngularJS n'a pas été trop vite pour annoncer la version 2.

Envoyé par Justin Asmussen
Perhaps the Angular team announced too much of 2.0 too early, I don't understand why everyone is so surprised that a web technology is going to change, ummm duh!

D'autres, comme Kendrick, se demandent s'il ne serait pas mieux de changer de nom étant donné la trop grande différence entre les deux versions.

Envoyé par Kendrick
if AngularJS 2.0 is so radically different from 1.x, thus requiring a rewrite then why call it AngularJS? Why not start a new web framework based on AtScript and ECMA 6 web components?

Pour finir il y a de nombreuses réactions violentes comme celle de Hawk. Pour lui, la réponse est évidente, il ne faut pas utiliser AngularJS, ni en version 1, ni en version 2. Il explique entre autre que les performances ne sont pas bonnes, et qu'il est plus raisonnable d'utiliser de plus petites librairies couplées entre elles, et conseille d'apprendre le JavaScript plutôt que AngularJS.

Envoyé par Hawk
I know what to do. And the answer is obvious. Don't use this POS framework. NOT 1.2, NOT 1.3, and NOT 2.0. It is a giant waste of time. It is not a good idea to build an enterprise level web application on a javscript FRAMEWORK. Notice I saw framework and not library.


Pour ma part, j'avais vu en AngularJS un vrai plus pour la communauté. Maintenant que cette annonce est faite, je m'interroge sérieusement sur l'utilité d'aller me former sur un technologie qui sera obsolète dans quelques temps, je vais donc surement attendre la prochaine version avant de m'y mettre, malheureusement...

Et vous ?

Que pensez-vous de la version 2.0 ?
  Discussion forum
25 commentaires
  • SylvainPV
    Rédacteur/Modérateur
    Angular 1.x m'a toujours paru comme une version preuve de concept de ce qu'aurait dû être réellement Angular. Beaucoup des mécanismes au coeur du framework doivent être repensés intégralement, tels que l'injection de dépendances, le $scope ou le dirty checking. Je dirais même que plusieurs de ces mécanismes doivent tout simplement disparaître car ils ne sont plus pertinents. Cette remise à plat qu'est la version 2.0 est donc nécessaire, avec comme objectifs :
    - modularisation du code, builds personnalisés
    - simplification des concepts, l'ensemble étant bien trop compliqué : https://docs.angularjs.org/guide/concepts
    - réécriture en ES6 avec une version transpilée ES5 pour les vieux navigateurs
    - remplacement de tous les mécanismes de dirty checking par des proxies

    Toutefois, cette histoire d'AtScript a de quoi faire peur : c'est sorti de nulle part et l'intérêt d'une étape de transpilation est très discutable. Je pense que les développeurs Dart ont aussi beaucoup de mal à digérer ça. En admettant que ce choix est vraiment justifié, ils se sont quand même bien plantés dans la communication.

    La bonne nouvelle dans tout ça est que ça va permettre à Angular de descendre de son piédestal pour mettre en lumière ses plus gros défauts ; et peut-être inciter les développeurs à s'intéresser à des solutions alternatives qui font tout aussi bien, même quand on a pas le tampon Google.
  • Traroth2
    Membre émérite
    Pour deviner quel sera l'avenir d'Angular, il suffit de regarder ce que sont devenus les projets précédents de Google en matière de développement logiciel, comme GWT, Go ou Dart. Je pense que Go ou Dart ont une composante "on voudrait que tout le monde utilise notre technologie parce que ça améliore notre prestige" que GWT ou Angular n'ont pas. Comme GWT, Angular est essentiellement un outil interne à Google auquel Google donne accès, mais qui évolue strictement en fonction des besoins de Google. Et comme GWT, tôt ou tard, Google va créer quelque chose de mieux et va l'abandonner. Oh, proprement, en créant une organisation pour le supporter ou en le refilant à une organisation existante. Mais ça passera de mode, et plutôt tôt que tard.
  • Marco46
    Expert éminent sénior
    Envoyé par SylvainPV
    Beaucoup des mécanismes au coeur du framework doivent être repensés intégralement, tels que l'injection de dépendances
    C'est quoi le problème avec l'injection ?

    Pour le reste, Angular reste un framework fabuleux, qui demande certes pas mal d'investissement en terme de formation mais qui offre une puissance fabuleuse (comme d'autres framework JS) et une excellente testabilité.

    Le gap entre une application développée avec de simples librairies (jQuery, ...) et un framework js est tout simplement gigantesque. C'est comme passer du bloc note à un EDI.

    Le commentaire de Hawk est d'une stupidité affligeante, probablement motivé par la colère.

    Pour ma part je pense que Angular 1.x sera encore supporté d'une manière ou d'une autre pendant des années. Il apporte tellement au dev de webapp qu'il ne peut pas disparaitre comme ça malgré son jeune âge.
    La v2 est encore à un stade embryonnaire et on aura rien de concret avant au moins un an.

    Bref, ce drama est bien dommage mais si Angular a pris tant de place c'est tout simplement parce qu'il répond à une problématique concrète et le fait très bien.
  • polaroid62
    Membre habitué
    Et qu'adviendra -t-il d'Angular Dart ?
  • yopiyop
    Membre régulier
    il est temps de relire le bon billet de sami :

    http://www.dng-consulting.com/blogs/...a-revol?blog=1
  • SylvainPV
    Rédacteur/Modérateur
    Meteor et Angular ne sont pas comparables... Meteor est une solution fullstack tandis qu'Angular est juste un framework client MVC.
  • Luc1an0
    Membre confirmé
    Au vue de la présentation de AngularJS 2.0, j'ai été assez désorienté. Après avoir passé pas mal de temps à bosser avec la v 1.x, j'avais trouvé, certes des axes d'améliorations, mais d'ordre plus général, une architecture vraiment bien pensée. Il y avait certes des choses à revoir, mais là, ils ont tout revu, ou presque.

    J'aurai un peu la même opinion que l'auteur, à savoir la grande question de savoir si l'on souhaite passer du temps à apprendre une techno' qui, force est de constater, a 1 chance sur 2 d'être obsolète au bout de 12/18 mois.

    Les gros projets peuvent prendre autant de temps, et les "utilisateurs" (= développeurs utilisant les frameworks mis à disposition) ont bien plus à faire que de passer du temps à apprendre de nouvelles technos qui changent presque radicalement d'une version majeure à une autre...

    Un peu dommage.
  • SylvainPV
    Rédacteur/Modérateur
    Envoyé par Marco46
    C'est quoi le problème avec l'injection ?
    L'injection par analyse introspective du code des fonctions est sur le plan technique très astucieuse, j'en avais parlé ici, mais elle pose problème avec les minifieurs de code type uglify. Cela a obligé les développeurs à un rétropédalage avec une syntaxe un peu différente et beaucoup moins intéressante. Si on la compare avec d'autres solutions d'injection de dépendances (il y en a un paquet), elle ne rivalise pas en termes de fonctionnalités et de praticité. Donc je comprends parfaitement la décision de la team Angular de profiter de la 2.0 pour repenser ça de zéro.
  • guive
    Nouveau membre du Club
    Je voulais m'y mettre, finallement je crois que ça va attendre.
  • bruneltouopi
    Membre confirmé
    Voilà un problème qui devient de plus en plus récurrent avec la panoplie des frameworks qui sortent.
    Quelques fois on a l'impression que le framework a été construit à la va vite pour résoudre les problèmes à un instant T et se faire une place dans le marché.je prends l'exemple d'un autre framework java comme PLAY je l'ai abandonné pour les mêmes raisons de la version 1 à 2 il y'a eu trop de divergences.
    Désormais je préfère intégrer des outils sous une base solide d'un existant pour éviter des surprises comme la non mise à jour rapide,les forks,les régressions incompatibles.