Developpez.com - Rubrique JavaScript

Le Club des Développeurs et IT Pro

Aurelia : un sérieux concurrent à AngularJS ?

Ce framework JavaScript MV* est le successeur du framework Durandal

Le 2015-01-30 20:30:42, par SylvainPV, Rédacteur/Modérateur
Aurelia : un sérieux concurrent à AngularJS ?
Ce framework JavaScript MV* est le successeur du framework Durandal


Il y a quelques mois encore, Rob Eisenberg faisait partie de l'équipe de développement d'Angular. Il a ensuite décidé de la quitter pour travailler sur son propre framework au sein de sa startup Durandal. Le résultat est maintenant dévoilé en preview et porte le doux nom d'Aurelia. Son créateur le décrit comme un framework de la prochaine génération, successeur de Durandal, le framework qu'avait déjà créé la boîte du même nom. On ne pourra toutefois pas s'empêcher de le comparer à la future branche 2.0 d'AngularJS avec laquelle il partage beaucoup de fonctionnalités et d'ambitions communes.

Aurelia est un framework JavaScript client de type MV* (Model, View, et ce que vous voulez pour relier les deux), gratuit et open-source, écrit avec les dernières spécifications EcmaScript 6 et 7 (noté ES6/7 et encore à l'étude, rappelons-le). Le code est transpilé en ES5 et des polyfills sont ajoutés afin de garantir son support sur tous les navigateurs modernes. Il s'accomode très bien avec TypeScript, CoffeeScript ou AtScript selon son auteur.

Le framework ne nécessite pas de dépendances et s'avère très modulaire, décomposé en différents composants indépendants et relativement simples. Il est donc possible de n'utiliser qu'une partie du framework, parfois même en dehors du périmètre initial d'Aurelia (le module d'injection de dépendances sur un environnement Node.js par exemple).

Parmi sa longue liste de fonctionnalités, on peut citer :
  • un data-binding adaptatif très complet, avec deux fallbacks possibles (Object.observe en ES6, getter/setters en ES5 ou dirty checking en dernier recours pour le reste des navigateurs) ;
  • une forte intégration des Web Components au sein des templates ;
  • une notion de "comportements liés" permettant d'étendre les fonctions d'éléments HTML existants ;
  • un routeur client avancé qui est une amélioration de celui de Durandal 2 ;
  • un mécanisme d'injection de dépendances combiné à l'utilisation des modules ES6 ;
  • de la génération à la volée de modèles, vues et contrôleurs en fonction de données reçues à l'exécution.


http://vimeo.com/117778145

Eisenberg insiste sur la vision à long terme de ce framework qui sera soutenu par l'équipe de Durandal et une communauté qu'il espère grandissante. Au vu des choix techniques ayant été faits, en particulier ES6/7, Aurelia devrait montrer tout son potentiel dans les cinq années à venir tout en restant fonctionnel et éprouvé sur les navigateurs plus anciens.

Le site d'Aurelia.

Et vous ?

Que pensez-vous des choix faits par ce framework ?
Pensez-vous que ce framework puisse concurrencer Angular ?
Songez-vous à essayer Aurelia dans un futur projet ?
  Discussion forum
40 commentaires
  • Traroth2
    Membre émérite
    Le rythme de sortie de nouveaux frameworks JS est toujours aussi soutenu. Donc c'est Aurelia, le framework de la semaine ?
  • yahiko
    Rédacteur/Modérateur
    Le framework Aurelia à l'instar d'AngularJS 2.0 devrait supporter nativement TypeSCript lorsque le langage atteindra la version 1.5 (c'est-à-dire dans quelques semaines selon Microsoft).

  • SylvainPV
    Rédacteur/Modérateur
    Mon premier contact avec Aurelia aura été difficile... Toute l'installation requiert de nombreuses dépendances Github chargées via JSPM. Je viens de passer deux heures à essayer de configurer jspm, npm et git pour passer outre le proxy de mon entreprise... en vain. Je ne sais pas où trouver une version compète et prête à fonctionner tel quelle. C'était la belle époque quand il suffisait de télécharger un fichier JS pour son framework client...
  • sekaijin
    Expert éminent
    Il y a beaucoup de facteur quant à l'adoption d'un framework

    Son accessibilité. s'il est diffusé de façon anecdotique il n'a quasi aucune chance de se diffuser.
    Sa maintenant et son évolution. il est nécessaire d'avoir une vision claire de la façon dont est organisé le support, même si celui-ci est purement volontaire et non pro.
    Son paradigme. il faut que le concept phare sur le quel est bâti le framwork soit clair.
    Son apport. il est important de comprendre comment il se situe par rapport à la concurrence. Paradigme original, même paradigme mais plus simple à utiliser, plus léger, plus rapide, plus efficace plus efficient ...

    etc...
    pour le moment c'est un de plus. mais rien ne le faire ressortir du lot.

    A+JYT
  • frfancha
    Membre éprouvé
    Envoyé par Tarh_
    Non. Le compilateur le comprend, mais ne le traduit pas en ES5. Le code compilé doit ensuite être exécuté par une VM ES6.
    Une VM ES6 n'exagérons rien, même IE (11) comprend let.

    Et ils ne le traduisent pas pour des raisons de perfs (https://github.com/Microsoft/TypeScr...pt/issues/1690)
  • yahiko
    Rédacteur/Modérateur
    Un développeur a récemment fait une petite comparaison entre du code Angular 2 et du code Aurelia. C'est assez intéressant et montre qu'Aurelia semble être plus concis.

    Partie 1
    Partie 2
  • Paleo
    Membre éclairé
    Il s'agit de Rob Eisenberg, le créateur de Aurelia. Cette comparaison a le goût de la provocation.
  • SylvainPV
    Rédacteur/Modérateur
    J'espère vraiment qu'Angular va réagir, car si c'est avéré qu'on ne peut pas simplifier le code Angular 2 montré, alors Aurelia est clairement grand gagnant. Certes, on est sur le blog d'Eisenberg donc objectivité zéro, mais il a le mérite de montrer les gros points faibles de la syntaxe actuelle d'Angular 2.

    Aussi, je trouve la syntaxe HTML d'Angular 2 à vomir... ces crochets et ces parenthèses autour des attributs ne riment à rien
  • SylvainPV
    Rédacteur/Modérateur
    J'ai l'intention de faire prochainement une comparaison entre Angular et Aurelia sur une petite appli démo (un book store). Je posterai le code et vous ferai un debrief quand j'aurais terminé.
  • yahiko
    Rédacteur/Modérateur
    Un article intéressant où un bloggeur relate son retour d'expérience sur Aurelia et React.

    Concernant Aurelia, voici un extrait :

    The benefits of using such a relaxed framework are pretty obvious when you write your first few lines of Aurelia. You don’t have to extend anything, you don’t have to decorate your HTML with weird attributes, no strange scoping issues like you might encounter in Angular and you don’t have to organise your code in a specific way. As far as conventions go, Aurelia doesn’t make you do anything nor enforce strict conventions.
    Les bénéfices d'un tel framework accomodant sont assez évidents lorsque vous écrivez vos premières lignes d'Aurelia. Vous n'avez pas à étendre quoi que ce soit, vous n'avez pas à décorer votre HTML avec des attributs bizarres, pas de problèmes étranges liés au scope comme ceux que vous pourriez rencontrer avec Angular et vous n'avez pas à organiser votre code de façon spécifique. Même en considérant la notion de convention de façon large, Aurelia ne vous oblige pas à faire quoi que ce soit qui puisse contrevenir à ces conventions.

    Blog de Dwayne Charrington