Developpez.com - Rubrique AJAX

Le Club des Développeurs et IT Pro

AngularJS 2.0 : résultat d'un sondage parmi les développeurs

Le framework JavaScript fait le point sur sa future version

Le 2015-06-27 12:29:33, par pcouas, Membre éprouvé
Bonjour,

A ce que j'ai cru comprendre Angular2 sortira officiellement fin 2015.
Il n'est pas trop compatible avec AngularJS.
Quel est actuellement l’état de son développement, ainsi que les IDE pour améliorer la productivité.
Peut on commencer un nouveau projet avec ce framework ?

Merci d'avance
Phil
  Discussion forum
19 commentaires
  • slim
    Membre expérimenté
    Bonjour,

    Oui, AngularJS ressemble à Game of thrones. Il ne faut "s'attacher" à aucun personnage... (dixit Romain Linsolas).
    Trêve de plaisanterie, la version 2 apporte beaucoup de nouveautés (dont la compatibilité avec ES6) et à ce titre je te renvoie au talk devoxxFr 2015 (vidéo) de Romain Linsolas justement parlant de la version 2 d'Angular.
    Ceci dit, la version 1.5 devrait préparer à la version 2 et sera compatible avec les versions antérieures. De plus, elle sera maintenue pendant 3 ans.
    Donc oui, nous avons largement le temps de créer des projets avec la première version et migrer par la suite.
    Dans tous les cas, la migration ne devrait pas trop faire de mal car on retrouve dans la 2, ce qui est préconisé dans la version 1. A savoir :

    - N'utiliser les contrôleurs que pour les binds (ils disparaissent dans la 2);
    - Utiliser les directives le plus possible;
    - ...

    Ce sont les templates qui seront à modifier en profondeur...

    concernant les IDE, je te conseillerais Webstorm (payant).
  • Marco46
    Expert éminent sénior
    Un nouveau billet sur le blog officiel est sorti le 25 aout dernier.

    On y apprend qu'une application Angular 1 pourra importer Angular 2 permettant d'entamer une migration incrémentale.

    L'injecteur du 1 cohabitera avec le nouveau système d'injection du 2.
    Dans une vue, les composants développés avec le 1 pourront cohabiter avec ceux développés avec le 2.
    Etc ...
  • devyreham
    Membre régulier
    sur AngularJS, en général, les besoins des entreprises sont très en retard comparés aux fonctionnalités disponibles. On a produit des applications sur la version 1.0.x qui tournent encore. D'autre en 1.2 (alors qu'il y a une énorme différence entre 1.0 et 1.2, moins entre 1.2 et 1.4...)

    Simple avis: l'application aura 2 ans+ de durée de vie, si tu commences un projet en 1.x. Dans mon domaine on livre avec des versions figées -> maintenance. Je n'utilise les versions n+1 des librairies que pour les nouvelles iterations - sachant qu'AngularJS n'est qu'une brique de l'ensemble. Ca laisse largement le temps de passer à AngularJS2
    Dans certains domaines, ils veulent être en "edge" (j'imagine des startup ou web agency) car c'est leur argument de vente. Je pense qu'il y aura deja des concurrents à Angular2 sur le hype des Web Components (Polymer).
  • Marco46
    Expert éminent sénior
    * Pourquoi etre obliger de passer par du pyton pour le test en local python -m http.server ?
    Ca doit avoir un lien avec webdriver via protractor. Python est une dépendance de ce mécanisme.

    * Pourquoi dans des tutos on a $ tsc --watch -m commonjs -t es5 --emitDecoratorMetadata --experimentalDecorators app.ts et dans d'autres tutos app.es6 ? EcmaScript 6 a t'il complétement remplacé EcmaScript 5 ?
    Angular2 sera full ES6.

    Tu ne devrais pas t'initier à Angular directement avec le 2, tu perds ton temps, le code est instable et le contenu va sans cesse bouger, c'est une version alpha. C'est utile pour les experts du code source du framework de trifouiller pour tester mais c'est contre-productif pour les débutants.
  • sekaijin
    Expert éminent
    Envoyé par devyreham
    sur AngularJS, en général, les besoins des entreprises sont très en retard comparés aux fonctionnalités disponibles. On a produit des applications sur la version 1.0.x qui tournent encore...
    Tu veux rire là!
    Car Angular tout comme les autres framework du marché ne couvre pas tous les besoins des entreprise.
    Il couvre une partie des besoins plutôt bien. Mais il ne couvre pas tous. Et même les versions récente sont dans ce cas. Ce qui est normal vu qu'Angular n'a pas cette ambition.

    Il ne faut pas confondre besoin et précipitation sur les nouvelles versions. Choisir de passer à une version supérieur demande du travail. on ne jette pas de millions de lignes de code à la poubelle pour être au goût du jour. En entreprise on ne met pas à mal la productivité de 100 000 personnes parce que la version 1.2 apporte une fonctionnalité de plus que la 1.0. Soit l'entreprise a besoin de cette fonctionnalité et elle avait déjà développé un moyen de l'obtenir, soit elle n'en a pas besoin. Mais dans un cas comme dans l'autre ce n'est pas l'apport d'une fonctionnalité qui fait changer de version. C'est le rapport coût de changement de version, gain de productivité des utilisateurs.

    quant à 2 ans de durée de vie en entreprise ça ne s'appel pas une application mais un bricolage ou un palliatif. Une application ça dure. Je commence un projet d'au moins 15 ans, je suis sur un qui à 5 ans et qui en a encore pour au moins 20.

    A+JYT
  • Traroth2
    Membre émérite
    Envoyé par Vlozer
    1. Aller sur le billet d'origine.
    2. Faire Ctrl+F "Dart".
    3. Pleurer...
    Pourtant :

    "Angular 2 APIs fully support coding in today's JavaScript (ES5), the next version of JavaScript (ES6 or ES2015), TypeScript, and Dart."

    "We officially support Angular 2 development in today’s JavaScript (ECMAScript 5), ES6, TypeScript, and Dart. Angular 2, like Angular 1, will additionally work with other compile-to-JavaScript languages like CoffeeScript and ClojureScript.
  • Marco46
    Expert éminent sénior
    Envoyé par Kevin-lourenco
    Reformulation: Qu est-ce que angular fait de mieux que jquery ? Je rappel à Monsieur que jquery est déjà un framework !
    Non jQuery est une bibliothèque. AngularJS est un framework.

    jQuery ne structure pas une webapp, il offre une collection d'outils hétéroclites là où Angular structure tous les aspects de ta webapp et est spécialisé sur les SPA alors que jQuery est générique.

    Les deux outils n'ont vraiment rien à voir.

    Donc au final, Angular fait tout mieux que jQuery lorsqu'il est utilisé dans sa cible qui est webapp en SPA parce qu'il répond à toutes les problématiques (bindings, gestion des templates, architecture logicielle, routage, tests unitaires et e2e, etc ...).
    Angular est un mauvais choix dès qu'on sort du contexte SPA.
  • Marco46
    Expert éminent sénior
    Envoyé par pcouas
    Bonjour,

    A ce que j'ai cru comprendre Angular2 sortira officiellement fin 2015.
    Il n'est pas trop compatible avec AngularJS.
    Quel est actuellement l’état de son développement, ainsi que les IDE pour améliorer la productivité.
    Peut on commencer un nouveau projet avec ce framework ?

    Merci d'avance
    Phil
    Sur les problématiques entre angular 1.x et angular 2 tu as aussi qui est excellente.

    TLDR : C'est compatible si tu structures ton appli et que tu écris ton code correctement. Enfin yaura un coût de migration comme à chaque changement majeur de version d'un framework mais tu conserveras l'essentiel de ton code.

    Peut-on commencer un nouveau projet avec Angular 1.x ? Ben oui, par exemple je viens de démarrer une mission pour une refonte d'une quinzaine de webapp. Simplement on prévoit dès le départ qu'il faudra migrer donc on prend ça en compte sur la manière de concevoir les frontend.

    EDIT : Pour l'environnement de dev pour ma part c'est Webstorm + tout l'écosystème javascript qui va autour des projets fronts modernes (npm, bower, grunt/gulp, yeoman, etc ...)
  • pcouas
    Membre éprouvé
    Bonjour

    Je souhaite commencer un Dev "Perso" en Angular2, une Application de Gestion de congés ecrite en Android afin de voir à quoi cela ressemble, et je cherche par ou commencer.

    Merci
    Phil
  • Marco46
    Expert éminent sénior
    Il faut mieux expliquer. Tu veux que ton appli s'exécute en natif sur Android ? Dans un navigateur sur Android ?