+ Répondre à la discussion Actualité déjà publiée
  1. #1
    Membre régulier

    Homme Profil pro
    Inscrit en
    juin 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : juin 2011
    Messages : 8
    Points : 71
    Points
    71

    Par défaut Damo : pour ne plus compter que sur Angular

    Damo : pour ne plus compter que sur Angular
    grâce à ce framework JavaScript MVC two-way data binding

    Nom : DamoLogo.png
Affichages : 1438
Taille : 9,3 Ko

    Salut,

    Voici quelques temps que je programme avec Angular 1, et je dois bien avouer que je suis séduit par sa capacité de "rapid development". Le two-way data binding, c'est top pour réduire le code JavaScript et produire un applicatif dans un délai court.

    En revanche, Angular regroupe bon nombre d'inconvénients dont :
    • une syntaxe spéciale, et donc temps de prise en main long ;
    • des scopes séparés indépendants, sauf en programmation de services ;
    • la difficulté à intégrer des bibliothèques extérieures ;
    • la non pérennité : Angular 2 est incompatible avec angular 1.


    Le dernier de ces points est notamment dramatique car il va falloir reformer les développeurs à une technologie absolument différente d'Angular 1 (plus de 2 way binding, plus de scope, syntaxe encore plus complexe, architecture différente, etc.), et après il faudra re développer ce qu'on avait fait en version 1. Google pousse à un tel investissement au prétexte qu'Angular 2 serait dix fois plus rapide qu'Angular 1. Pour ma part, les performances d'Angular 1 ne m'ont jamais choqué, au contraire d'autres aspects.

    Qui nous garantit que dans deux ans Google ne nous fera pas à nouveau le même coup, avec Angular 3 ? Cette perspective est effrayante.
    Ah ! Si tout était aussi simple, documenté, stable et performant que jQuery !

    C'est muni de ces réflexions que j'ai entrepris de résoudre le problème en programmant un Angular en jQuery. Je cherche ainsi à allier le meilleur des deux mondes. Le résultat est Damo.js, un framework JavaScript MVC two-way data binding.

    J'y ai reproduit toutes les caractéristiques d'Angular 1 :

    • la syntaxe html ;
    • les filtres ;
    • les directives ;
    • le scope ;
    • la modularité .
    • le routing ;
    • etc.


    Je livre le tout en GPL avec un GitHub. Au final c'est une bibliothèque 20 fois moins volumineuse qu'Angular, avec une programmation simplifiée ("à l'ancienne", par exemple sans la syntaxe très spéciale d'Angular), totalement modulaire et compatible avec toute autre bibliothèque extérieure. Je l'utilise actuellement pour développer une nouvelle interface aux bateaux d'OceanVirtuel.com, et je dois dire que ça me facilite grandement la vie.

    Damo est jeune et, à n'en pas douter, il faudra l'endurcir et l'améliorer de nouvelles fonctionnalités. C'est pourquoi je vous invite à participer sur GitHub si vous le souhaitez. Si vous pensez qu'il faut une alternative à Google et son Angular, une alternative stable et pérenne, vous trouverez en Damo un projet qui répondra à votre attente.

    Notez que j'ai pris soin de la documentation et aussi de proposer un exemple simple, téléchargeable, qui aide à la prise en main.

    Cordialement.

    La page de Damo.

    Et vous ?

    Que pensez-vous de cette bibliothèque ?


    Retrouver les cours et tutoriels sur les frameworks JavaScript.

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    novembre 2012
    Messages
    3 154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2012
    Messages : 3 154
    Points : 9 222
    Points
    9 222

    Par défaut

    Hello,

    Les frameworks de data-binding sont déjà très nombreux et c'est difficile de se faire une place aujourd'hui. Je m'y suis essayé à un moment, mais j'ai finalement laissé tomber en voyant que d'autres solutions existantes faisaient déjà très bien ce que j'essayais de produire. En regardant la doc de Damo, je vois une très forte similitude avec mon propre projet (Databinder), et par association avec les alternatives plus populaires vers lesquels j'ai finalement choisi de m'investir (Riot en tant que traducteur de la doc FR, et Vue en tant que financeur Patreon)

    C'est pour ça que je pose la question, pour peut-être t'éviter de faire la même erreur que moi : as-tu déjà fait le tour des autres solutions de data-binding, en dehors de Angular ? Il y en a énormément, trop pour toutes les essayer à vrai dire... C'est toujours très enrichissant de travailler sur ses propres solutions, mais ça ne dessert pas vraiment la communauté qui se plaint depuis des années du trop grand nombre de frameworks et de la difficulté de parier sur le bon framework JS. Et les gens ont tendance à se méfier des projets en solo question pérennité. Dans tous les cas, contribuer sur d'autres projets permet de gagner en expérience et peut donner de bonnes idées d'amélioration pour les projets persos qu'on garde dans les tiroirs

    Pour en revenir à Damo, je suis un peu confus entre l'usage de l'attribut id et damo-id. On trouve les deux dans la doc et je ne comprends pas la différence. L'usage de l'attribut id m'inquiète, car cela voudrait dire qu'on ne peut pas choisir un autre id pour l'élément, ni faire deux bindings vers la même valeur sans avoir un duplicat d'id dans le document. J'ai aussi regardé la démo et je la trouve un peu gâchée par le trop grand nombre de reflows au chargement de page (4 si j'ai bien compté, et ils sont nettement visibles). Je me doute que c'est parce que la lib est encore jeune et que ça va s'améliorer, mais 4 reflows ça m'inquiète un peu quand même (déjà qu'un seul reflow sur Angular causait beaucoup de soucis qu'ils ont dû fix avec ng-cloak).

    Je t'ai laissé une petite PR sur un correctif dans un code de la doc. J'ai vu aussi quelques petites fautes d'anglais mais mon niveau n'est pas assez bon pour te faire une correction exhaustive, donc il vaut mieux laisser ça à quelqu'un d'autre.
    One Web to rule them all

  3. #3
    Invité
    Invité(e)

    Par défaut

    Sympa, cette idée de mettre du 2 way Binding dans du Jquery.

    Voici mon avis sur Angular, qui n'est que personnel:
    La syntaxe de angularJs 1.x est très sympa au contraire. Les scopes séparés dans angularJs 1.5, c'est justement ça que j'aime bien , lorsqu'une vue plante, l'autre ne plante pas.

    Les librairies externes ? Il y a déjà beaucoup à faire avec celles qui sont spécialisées angularJs 1.5 : AngularCharts, et des tonnes d'autres... gratuites

    En revanche, la syntaxe de AngularJs 2.0 m'a convaincu de ne vraiment Jamais utiliser le nouveau Framework, et de conserver AngularJs 1.x , et son modèle MVC très structuré pour mes futurs projets, pendant 5 ans, probablement, si je ne trouve pas l'envie de faire du ES6 et des classes et constructeurs Javascript.

    En plus, le 2 way binding ça déchire, et la syntaxe AngularJs1.x est un plaisir pour les gens qui ont pas un gros niveau comme moi, par contre on avance vraiment sur les projets avec AngularJs1.x, c'est pleins de librairies annexes qui déchirent(modules), et tout, bref tout est génial dans AngularJs 1.5 pour réellement créer de vrais projets , et pas se souler avec des syntaxes incompréhensibles ou anglo saxonnes comme dans angularv2.0

    Pour des gens comme moi, plutôt " rentre dedans", et un peu bétas, aimant aller vite, c'est bien .

    Avec angularJs 1.5, tout est logique, y'a le modèle de donnnées, les vues HTML, les contrôleurs qui pilotent les données et les affichent dans les vues, même les directives sont sympas, ça suffit largement pour créer des apps francophones très sympas, faut juste faire gaffe à pas "overloader" le 2 way binding, c'est tout ! Il ne reste plus qu'a coder, en donnant des noms français à ses fonctions et ses variables, c'est le top de pas faire d'anglo saxon, c'est surtout ça que j'adore, au final on ne voit presque plus d'anglo saxon dans un code angularJs version 1.5, j'adore ça parce que too-much-anglo-saxon-code=vomit !

    AngularJs1.5 a simplifié toute la manière de créer des applications WEB, et ng-repeat, ng-if, ng-show, ng-hide, tout ça, c'est des trucs trop biens qui déchirent mec ! Pas question de passer sous AngularJs2.0, la création d'applications n'est pas une question de mode ! Ca n'a rien à voir avec la sortie du dernier Iphone qui fait frétiller les gogos, ce que l'on recherche, c'et la solution la plus simple et effective pour créer des applications Web et mobiles francophones, et AngularJs 1.5 remplit bien ce rôle.

    Si un jour une de mes apps fonctionne, et que je dois employer quelqu'un qui travaillera sur mon code, je préfère 1 milliard de fois plus lui expliquer mon code ANGULAR JS 1.5 qu'un autre code. Je ne me vois pas une seule seconde tenter de lui expliquer du code angularJs V2.0, je sais par avance que le nouvel employé n'y piffrera strictement rien . Dans AngularJs1.5 , c'est du MVC. Les components ? Hors de question d'utiliser cela.

    J'en veux pour exemple cet anglo-saxon qui a publié un "starter Kit" AngularJs v2.0 :https://github.com/blacksonic/angular2-esnext-starter
    On l'ouvre? on regarde 5 minutes, puis on dit ... "Ha ben désolé ca ne va pas le faire, hors de question d'utiliser cette technologie et cette syntaxe absurde, par effet de mode."
    Alors qu'un projet AngularJs v1.5, le vrai angular, on comprends tout de suite la logique des fichiers, de l'ordonnancement MVC etc ... Bref, il ne faut jamais utiliser AngularV2, et justement, il faut compter sur AngularV1.5 pour les 5 ans à venir, peu importe les élucubrations de Google, lol
    S'extasier devant de nouveaux concepts, c'est bien, mais lorsque c'est ineffectif dans la réalité, pas question de l'utiliser.
    Dernière modification par Invité ; 22/05/2016 à 23h55.

  4. #4
    Membre éclairé
    Homme Profil pro
    chomeur
    Inscrit en
    avril 2015
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : chomeur
    Secteur : Distribution

    Informations forums :
    Inscription : avril 2015
    Messages : 389
    Points : 769
    Points
    769

    Par défaut

    j'ai fait le compte et tu a écrit 25 fois le mot angular peut mieux faire

  5. #5
    Modérateur
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2005
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : août 2005
    Messages : 2 664
    Points : 8 084
    Points
    8 084

    Par défaut

    Non mais ce qui est fabuleux c'est que dans le wall of text qu'il écrit ya une ligne (la 1ère) qui parle du sujet et dans les 30 lignes qui suivent il nous rebat les oreilles de son sujet préféré à savoir : angular 1.x c'est plus mieux que angular 2
    "Toute personne croyant qu'une croissance exponentielle peut durer indéfiniment dans un monde fini est soit un fou, soit un économiste."
    Kenneth E. Boulding

    "/home/earth is 102% full ... please delete anyone you can."
    Inconnu

    Trust me, i'm an engineer !
    https://www.youtube.com/watch?v=rp8hvyjZWHs

  6. #6
    Membre régulier

    Homme Profil pro
    Inscrit en
    juin 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : juin 2011
    Messages : 8
    Points : 71
    Points
    71

    Par défaut

    Citation Envoyé par SylvainPV Voir le message
    Hello,
    Pour en revenir à Damo, je suis un peu confus entre l'usage de l'attribut id et damo-id. On trouve les deux dans la doc et je ne comprends pas la différence. L'usage de l'attribut id m'inquiète, car cela voudrait dire qu'on ne peut pas choisir un autre id pour l'élément, ni faire deux bindings vers la même valeur sans avoir un duplicat d'id dans le document.
    Oui, tu as raison, j'avais commencé par ne considérer que l'id, mais je me suis rendu compte que nombre de bibliothèques se basaient aussi sur l'id (comme jquery-ui par exemple), j'ai donc modifié en damo-id. Cela dit j'ai pu oublier id dans certains coins de la doc.

    Oui, j'ai été voir ce qui existait en 2 way binding, et cela ne m'a pas emballé, mais j'ai pu en oublier. A vrai dire Damo apporte une originalité, celle du data model applicatif, base structurant toute l'application.

    Merci pour ton aide. Je vais aller revoir la doc.
    Cordialement

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/11/2007, 20h55
  2. plus grand que sur une variable BigDecimal
    Par Bindy dans le forum Langage
    Réponses: 2
    Dernier message: 14/06/2007, 10h52
  3. Plus d'image sur certains codecs, que du son
    Par totofweb dans le forum Mandriva / Mageia
    Réponses: 5
    Dernier message: 16/01/2006, 21h56
  4. [D7] composants plus rapides que dbExpress pour Oracle 8i
    Par Magnus dans le forum Bases de données
    Réponses: 2
    Dernier message: 10/10/2005, 13h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo