Je me te tâte à arrêter le tuto Angular 37


Malgré les critiques, j’aime beaucoup AngularJS. Mais à l’annonce de la version 2 d’Angular complètement incompatible avec la version 1, seulement quelques années après sa sortie, des questions se sont posées sur l’avenir du framework.

J’utilise AngularJS pour certains de mes projets, je suis payé pour former sur AngularJS et j’ai commencé à écrire un guide sur le sujet.

Mais je me demande franchement si ça vaut le coup de s’investir plus.

Je vais continuer à l’utiliser pour mes projets actuels, tout en regardant du côté de la concurrence ici et .

Si j’écris l’article, ce n’est pas pour vous alarmer. Ni même pour vous dire “arrêtez d’utiliser Angular”. Je pense que la V1 va être maintenue par la communauté pendant des années.

Non, je me demande simplement si ça vaut le coup que je me casse le cul à finir le guide.

J’ai du travail à la pelle, le guide sur les tests en Python, Django une app à la fois, 0bin à porter en Python 3…

Bref, est-ce que vous êtes toujours aussi intéressés par ce guide ?

37 thoughts on “Je me te tâte à arrêter le tuto Angular

  • Trent

    Comme tu le dis, AngularJS 1 va continuer à être supporté pendant des années. Il serait heureux que, pendant des années, on puisse encore accéder à ton guide complété.

    Merci,

    Trent.

  • Johan

    Hello, grave intéressé et même si la v2 n’est pas loin, peut être qu’un article sur une possible migration pourrait venir finaliser tout ça !!!!

  • Kenshineuh

    Perso, oui je suis intéressé, ne stop pas !

    Sinon, faute de frappe dans le titre et dans les liens de la “concurrence”.

  • Rémy

    Je suis toujours intéressé par ta doc angular, qui est beaucoup plus compréhensible que la doc officielle imbuvable et anglophone.

  • Mike

    De but en blanc j’aurai répondu non, pour moi votre blog est plutôt connu pour ces articles sur Python, que ce soit les explications sur les générateurs, les décorateurs, les tests, Django… Il reste une valeur sûre pour les Dev fr qui souhaitent approfondir le sujet, et même débuter la programmation Python pour certains.

    Mais au vue des commentaires précédents beaucoup de lecteurs viennent également ici pour les articles sur le JS, étonnant… Du coup il y a peut-être un réel besoin.

    Dans tous les cas si le choix doit être “Articles Python” OU “Articles JS”, je choisis personnellement Python et donc pas de guide sur Angular :)

  • FFFFFFFab

    Je viens justement de prendre quelques jours pour me plonger dans Angular, alors un guide fait par Sam sur le sujet… clairement OUI. Mais j’avoue avoir hâte de voir la suite sur les tests aussi ;-)

    En tout cas merci beaucoup pour tout le taf que vous faîtes ;-)

    PS (et HS) : top l’introduction sur WAMP.

  • Roger sans famille

    Bienvenue dans le monde Javascript où un projet naît et meurt tous les six mois.

    Me concernant, tu peux arrêter de promouvoir Angular, je te préfère largement concentré sur Python.

    De toute façon Javascript c’est pour les gays qui vont aux manifs de chez charlie ;), des gars habitués à l’effet mouton quoi…

  • dineptus

    J’ai testé Angular et je trouve que c’est un bordel sans nom, incompréhensible, lourd et pas efficace, alors je dirais que non.

    Et a côté je suis tombé sur React et j’ai compris en 1 heure comment ca marchait (juste avec la page “thinking in React” en fait http://facebook.github.io/react/docs/thinking-in-react.html , alors que sur le site d’Angular ce qu’il y a de plus clair c’est https://docs.angularjs.org/guide/concepts , autant dire que c’est vraiment imbuvable).

    Par contre j’adore la série sur les tests en python alors gros +1

  • Erase

    Vu le gouffre béant séparant la version 2 de la version 1

    Compte tenu du fait qu’il n’y aura pas de rétrocompabilité

    Et vu que même si la v1 risque (classiquement) d’être forké par un groupe d’allumés dans leur garage, elle n’a plus aucun avenir auprès de Google (et donc plus le même poids et puissance de diffusion/acceptation)

    … bref, pour moi c’est non.

    Tu vas te pêter le cul à monter ta doc pour un truc qui sera obsolète ou en tout cas avec un avenir plus qu’incertain.

    ‘fin c’est en tout cas le gros coup de flip’ que tu évoquais toi même dans tes lignes : avec cette version 2 totalement différente, tant dans les approches que la conception, et sans rétrocompatibilité avec la v1… Bref. {réponse inutile qui ait vâchement avancer les choses}

  • FFFFFFFab

    Bon, je viens de jeter un oeil à React… euh je crois qu’il n’y a pas photo effectivement… En 1 heure on a l’impression de pouvoir bosser tout de suite avec, c’est léger, et sur le papier ça a l’air plus performant. Pfiou, difficile de se positionner en ce qui concerne les technos frontend.

  • Johan

    Comparons ce qui est comparable … AngularJs est un MVC, React pourrait remplacer seulement la partie Directive d’AngularJs.

    On juge un framework, on ne s’amuse pas à dissocier chaque élément et en faire la comparaison avec des bouts de code à droite et à gauche.

    Dans mon cas, j’utilise AngularJs avec Flask et en terme de perf, je suis assez satisfait (Hey oui, les pythonneux que nous sommes sont obligés d’aller voir côté JS pour des solutions de rafraichissement web dynamique).

    Le jour où une solution Flask ou python quelconque permettra d’updater ses var en direct de son DOM, je prend … mais en attendant …

  • bob

    J’ai appris Angular et j’ai un projet en prod qui tourne avec (avec bottle coté serveur), le code source de ton projet de chonomêtre sur github m’a fait gagner du temps, merci à toi, tes publications sont utiles et à priori devraient le rester un bon moment, tout ce que tu peux rajouter c’est un plus.

    A titre personnel franchement si il y a plus pérenne que angular je prends , je vais me tourner vers react qui semble conseillé par les intervenants du forum. Quelqu’un à un retour d’expérience avec react ?

  • dineptus

    @Johan : pas d’accord du tout, la öission de base de React remplace non seulement les Directives mais aussi et surtout les Controllers.

    Sur les templates, la fonction render sert a ca en fait, c’est juste organisé de façon différente à AngularJS, parce que dans Angular tu mets tout ca dans ton HTML et après Angular doit se démerder pour tout parser, alors que dans React tu sépare clairement tout le html dynamique du statique (et on evite au passage les balises HTML non valides …).

    C’est pas parce qu’il n’y a pas plein de notions bizarres que le framework n’est pas complet, il est juste organisé très différemment.

    J’avais commencé une App de cartographie interactive (quand je dis cartographie c’est pour faire des cartes de geógraphie en fait) avec Angular, et ca marchait plutôt pas mal mais c’était un calvaire anti-intuitif pour moi (mais bon je suis plutôt python au départ), et comme c’est pour le fun j’avais arreté car trop chiant. La je reprend à zéro avec React et franchement je trouve ca beaucoup plus naturel et je n’ai pas encore été limité par les possibilités du Framework.

  • Sam Post author

    React remplace effectivement les directives, mais aussi toute la partie templating d’angular.

    React n’a pas de vues, de module, d’injection de dépendances, de service ajax ou cookie, ni les tas de directives de formatages et de gestion d’évements.

    Mais d’un autre côté :

    • il y a des tas de libs qui gère mieux les vues, le routing, l’ajax ou les cookies.
    • le côté d’organisation du code, on peut le faire par convention plutôt qu’injection.
    • beaucoup de formatage et gestion d’events n’a pas besoin d’équivalent puisqu’avec React on peut juste utiliser l’API JS initiale au milieu du render de son composant.

    D’après ce que j’en ai vu :

    • Le templating d’angular fais franchement gagner du temps par rapport à l’approche composant par composant de react.
    • L’organisation forcée d’angular aide à rendre le code homogène à travers les projets au prix d’une courbe d’apprentissage plus élévée.
    • L’approche de react amène à des composants mieux séparés et plus légers (code et perfs).
    • React permets de faire de la dégradation gracieux, et ça c’est top.
    • Comment faire communiquer le modèle, le controleur et les composants react est laissé en exercice à l’utilisateur. Et c’est pas évident à bien faire. Angular propose une approche qui marche out of the box.
    • Angular a de moins bonnes perfs et on doit apprendre à jouer avec $apply, le $scope et les services “aware” ou créer des wrappers.
    • Les transitions sont plus chiantes à faire en React.
    • Ecrire des composants (directive) est une horreur avec Angular, du coup on reste le plus possible dans le template. Avec React, tout est composant, donc la question ne se pose pas.

    Après, jamais utilisé React sur un projet, mais ça me tente bien. J’ai rarement besoin de tout le bordel d’angular, je l’utilise essentiellement pour l’organisation du code et le templating. Si j’arrive à trouver une bonne organisation du code pour React, je gagne la graceful degradation et un code plus facile à reprendre. Ca peut etre intéressant.

  • dineptus

    Plutôt d’accord avec Sam. Dans mon application (cartographie comme je disais), j’avais besoin de plein de directives différentes et c’était un énorme bordel entre les différents scope avec $apply et tout ca, mais pour la partie routing / ajax j’en avais presque pas besoin en fait.

    Je dirais que ce que je codais en une journée je le fais en 2 heures, après 2 jours d’apprentissage de React.

    Il faut dire que dans Angular quand tu as des directives qui doivent utiliser des libs jQuery externes (pas le choix pour le coup) et modifier le scope du parent, c’est vraiment chiant. Et j’ai toujours eu des problèmes de performances avec des signaux qui s’envoient 2-3-4 fois pour la même chose au bout d’un moment (généralement c’est le moment ou le code est tellement bordélique que je vais me coucher).

    C’est aussi et surtout parce que je suis pas un pro formé sur Angular, mais au moins avec React j’ai l’impression de faire un truc propre et efficace beaucoup plus rapidement dans mon contexte. Et AJAX j’ai jamais géré avec Angular parce que la doc m’a fait fuir, donc je peux pas trop dire :p

  • Johan

    @Dineptus : au temps pour moi, je n’avais pas perçu la notion de controller en lisant la doc.

    En revanche, je suis repassé dessus ce matin, y-a-t’il une notion de routeprovider ?

    J’ai commencé angularJs il y a maintenant 3 mois, et la question que je me pose : est-ce que React est vraiment dédié à de gros projets ? Si on reprend l’historique d’Angular, le concept initial était de pouvoir justement bien séparer chaque composant de manière à ce qu’ils soient réutilisables, et SURTOUT d’imposer un distribution et une hiérarchie à de lourds projets, ce qu’offrait difficilement Jquery.

    Avec React, j’ai l’impression qu’on peut structurer un peu tout n’importe comment, et je me demande si dans le temps ça ne risque pas de faire rejaillir l’effet Jquery vs Angular.

    Je suis d’accord sur le fait que l’apprentissage d’Angular est lourd, j’ai du m’endormir 2 ou 3 fois sur leur doc tellement c’était imbouffable, mais d’un autre côté il y a des 100aines de fonctions out of box contre une centaine pour React; et surtout une communauté assez importante côté Angular.

    La seule chose qui pourrait m’amener à jouer avec React ce sont les histoires de performances, un bon nombre de tuto s’amuse à coupler angular et react pour ce gain.

    Tiens Sam et si tu nous faisais un petit tuto React :P histoire d’avoir les idées claires ;)

  • FFFFFFFab

    @Johan : d’après ce que j’en ai compris Flux permet justement d’imposer un pattern qui permet de gagner en clarté au fur et à mesure qu’un projet grossit, et finalement d’écrire moins de code qu’avec Angular par exemple; et de ce fait permet de garder en tête une conception claire de l’application. Bref, à creuser, c’est passionnant en tout cas…

  • Sam Post author

    React est une lib de rendu, Angular est un framework complet. Pas la même surface donc. Mais l’usage que font beaucoup de gens d’angular implique en fait essentiellement le rendu. Parfois le routing, mais qui peut se remplacer avec une lib. Pour ces gens, react est un remplaçant drop in.

    Après, je n’ai pas utilisé React pour un projet, donc si ça se trouve, c’est de la merde. Mais bon, si ça power facebook et instragram, ça doit pas être dégueu.

  • dineptus

    Pour le routing il y a https://github.com/rackt/react-router qui reprend le schéma de routing de Ember, qui est pour moi plus clair que celui d’Angular, mais pas testé donc je peux pas dire si c’est génial ou pourri, car pas besoin dans mon projet actuel.

    Pour l’organisation du code je sais pas trop ce que tu veux dire donc je vais peut être répondre complètement à côté : pour moi le code s’organise en fonction de son équipe et selon les normes qu’on veut, il n’y a pas vraiment d’organisation optimale car ça dépend des compétences de chacun. Si la question c’est de bien organiser, il faut se poser les principes en équipes et pas se reposer sur les normes forcées d’un Framework. D’ailleurs même dans Django ou il y a de base une organisation des fichiers on se retrouve vite avec des arborescences dans tous les sens qui n’ont plus grand chose à voir avec Django de base …

    Si la question c’est comment faire pour ne pas répéter le code et être le plus efficace possible, les mixins sont la pour ça (http://facebook.github.io/react/docs/reusable-components.html#mixins).

    Encore une fois je suis débutant donc si ça se trouve ya plein de limites que j’ai pas encore touché mais pour le moment je trouve ça cool (enfin pour du javascript quoi …). Ptetre que si tout va bien au bout de quelques temps et que j’ai du temps je ferai un petit article sur le sujet :)

  • Sam Post author

    @MrT : non, j’ai lu la doc mais ça m’a pas branché. Devoir utiliser des modèles qui ne sont pas des objets js ordinaire, j’aime pas.

  • Johan

    @Sam: oui enfin facebook leur délire c’est un peu d’écrire et d’utiliser ce que personne n’utilise (force ou faiblesse à débattre), mais quand on voit les nouveaux langages naissants on a parfois du mal à comprendre pourquoi ils se tuent à réécrir le langage php …

    Après chacun y va des ses API et de ses frameworks, on pourrait dire aussi “AngularJs c’est développé et utilisé par Google, ça ne doit pas être si moche que ça” :p

    @FFFFFFFab : J’ai regardé un peu Flux, c’est en gros un concept de VMC non VMC :p qui vient en complément de React. Là le concept est totalement différent de ceui d’angular. “Flux eschews MVC in favor of a unidirectional data flow.”, donc là on l’on avait du two ways data binding avec Angular, on se retrouve avec une archi basée sur l’évènementiel. Du coup je suppose que le concept de Flux suit celui du React, au lieu d’avoir des listeners comme sur AngularJs, on push directement des actions, et un dispatcher s’occupe de l’update, c’est d’ailleurs pourquoi c’est plus rapide. Mais je reste sceptique dans ce cas précis sur le nombre de lignes à coder, car sur AngularJs tout est plutot pas mal automatisé (même si c’est un poil la boite noire), alors qu’avec Flux j’ai l’impression qu’il faut un peu plus travailler sur les états.

    Ca reste mon humble d’avis d’ingé et dev chez Orange (amis d’eburo bonjour :p), je ne fais pas énormément de dev web (seulement depuis flask) mais je sais que dès qu’une solution full python pointe son nez coté web (on peut rever non ?) j’y fonce, car le javascript c’est quand meme un langage caca :D

    Ps: à quand la prise en compte des “Notify me on comments by email” ? :D

  • Johan

    @Sam: oui j’ai beau cocher les Notify comme un dingue, mais je ne reçois pas les mails :)

  • Sam Post author

    Je suis pas là pour vous dire que penser :) Essayer, si ça vous convient, très bien. Perso, j’ai déjà dis ce que je pensais des surcouches de modèles.

  • Walt

    C’est pas parce que vous avez réussi à démarrer en 1H avec React, et qu’Angular parrait dur au début, que d’ici 6 mois la courbe de productivité n’aura pas été inversée.

    Perso j’ai commencé une appli en Angular 1 que j’essaierai à tout prix de ne pas migrer (à condition que les outils comme Ionic restent compatibles avec cette v1).

    Ca reste possible et très intéressant de faire un guide sur la v1, et à la fin de ce guide, avoir : “les trucs à savoir pour migrer vers la v2″.

    Par contre pitié, pas de “comment faire de l’angularJS quand on vient de JQuery“, ça ajoute un pré-requis inutile pour suivre le tuto. Perso, je n’ai jamais fait de jQuery et si le guide passe son temps à faire des références à une techno que je connais pas pour expliquer une techno que j’ai envie de connaitre, pas poffible !

    Merci bisous

  • Sam Post author

    Je vise les utilisateurs de jQuery avec ce guide, si tu veux un guide qui parte de zéro, il t’en faudra un autre. On ne peut pas satisfaire tout le monde.

  • panda_

    Premier post dans le coin, mais habituel lurker, je suis moi aussi très intéressé par cette suite du tuto.

    J’ai déjà fait 2 petits projets avec Angular, mais je pense que je passe à côté de certaines fonctionnalité ou fait mal certaines choses.

    Bref, totalement pour ^^

  • Emma

    Bonjour,

    Je déterre un peu cette discussion mais tout d’abord je tiens à vous remercier pour vos articles, clairs et sympas. Et ensuite je suis de ceux qui veulent que vous écriviez la suite du tuto d’angular ;) Personnellement je suis sur cette techno depuis peu et j’ai vraiment besoin d’infos un peu plus claires!!! Merci à vous ;)

    Ps : je cherche des infos pour un projet qui à été développé avec angular et cordova que je voudrais migrer sur Ionic…

  • Theo

    Alors c’est bon? Vous êtes heureux d’apprendre que la migration d’angular 1 vers angular 2 est un jeu d’enfant?

    Mauvaise langue !

  • Sam Post author

    J’attends de rencontrer mon premier projet pro qui fera la migration pour savoir si c’est vraiment un jeu d’enfant.

Leave a comment

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Des questions Python sans rapport avec l'article ? Posez-les sur IndexError.