Evènements

DevFest 2012 : Les nouveaux langages Web

Publié le : Auteur: Florent DUPONT Laisser un commentaire
evenement

On continue cette série d’articles sur DevFest 2012 pour parler des nouveaux langages du Web selon Google.

HTML 5 se démocratisant de plus en plus, les navigateurs prenant plus de place (et de capacités) et les applications Web prenant de plus en plus d’intelligence, il est évident que le langage JavaScript se voit soudain mis au rang d’honneur des langages les plus en vogue et que l’on voit débouler un grand nombre de frameworks et « langages » afin d’en simplifier le développement.
Google n’est pas en reste en proposant plusieurs langages dont AngularJS et Dart…

Angular JS

L’objectif d’AngularJS est simplifier le code en évitant le boilerplate code (vous savez, ce code long et sans intérêt que vous écrivez quand vous développez une application) et de simplifier la vie du développeur Javascript.
Techniquement, ce n’est pas un langage, mais bien un framework JS que l’on inclus dans la page HTML 5. Par contre, il est tellement adaptatif et extensible qu’il simplifie énormément les développements Web.

  • Il est pensé avec une optique de tests (en interne mais également pour le développeur) notamment de par son Pattern MVC (philosophie Global Test is Evil => privilégiez les TU !).
  • Il s’appuie sur un système de templating à la mustache qui va constituer le HTML.
  • Il propose une programmation déclarative, très adaptée pour la présentation et qui réduit grandement le boilerplate code.
  • Il inclus également un système d’injection de dépendance.

L’autre gros intérêt est qu’il soit extensible !
Il est possible de créer ses propres balises HTML et ainsi créer son propre DSL. On pourra par exemple, ajouter des balises, ou des attributs qui sont propres à notre métier et qui n’existent pas en HTML, il suffit de créer ses extensions (todo.directive) pour qu’AngularJS les comprenne.

Plus d’info : le site officiel

Dart

Avec Dart, Google va encore plus loin : l’idée est carrément d’être une alternative à Javascript. Javascript est un peu vu comme un langage de bidouilleur de site Web, mais surtout il est difficile de le maîtriser et de l’industrialiser…
Dart est donc un langage à part entière prévu pour être exécuté sur le navigateur et peut être dans le futur sur le serveur…
Du code Dart sur le navigateur, oui mais comment ? Pas de magie, Le code Dart est compilé en Javascript pour être exécuté sur les navigateurs. Sur Chrome, on va plus loin : la DartVM (machine virtuelle Dart) exécute directement le code Dart pour le navigateur.
Dart, c’est également 6 environnements en 1 : Dart Editor, DartVM, Dartium, Dart2JS, Pub (gestion de dépendances), Dartdoc.

Concernant le langage, pas de révolution (ni même d’évolution…), mais surtout une idée d’éviter les pièges de JS et de rendre le langage plus « propre » :

  • Tout est Purement Objet : String, mais également int, etc…
  • Pas de coercion de type (en JS par exemple 1 == « 1 » argghh!!)
  • On rend privé par convention de nommage les attributs : avec ‘_’ l’attribut est privé.
  • Pas de surcharge possible (mais constructeurs nommés)
  • Pas de concaténation possible de string avec le ‘+’ > On passe par du templating « Hello $x »
  • plus : génériques, Mirrors (introspection),

Plus d’info : site officiel

Dart, AngularJS, les langages du futur ?

Pas vraiment. Il existe beaucoup de concurrence sur le marché des langages Web.
AngularJS a pas mal de concurrents aux travers de Knockout, Ember ou Sencha, et pour l’instant, même s’il a l’air prometteur, il ne se démarque pas vraiment des concurrents.

Pour Dart, il est peu probable que tous les navigateurs du marché proposent la DartVM. Le langage en lui même n’est pas révolutionnaire. Il s’agit encore d’un produit jeune (avec ses défaut : performances, communauté, visibilité, pérennité) sur lequel il serait risqué de parier…

La question qu’il faut se poser est de savoir pourquoi Google investit sur des technologies aussi proche les une des autres : qui s’imposera entre AngularJS, Dart, GWT ? Pas toutes, c’est évident !