Destinée à concevoir des interfaces utilisateurs interactives pour les applications web, la bibliothèque Ractive s’adresse à des développeurs qui ne sont pas forcément rompus aux arcanes de JavaScript. Pourtant, elle leur apporte des capacités que l’on trouve normalement dans des frameworks complexes à utiliser. De fait, l’équipe qui se trouve derrière le projet Open Source souhaite rendre la programmation web plus accessible aux développeurs qui ne disposent pas d’une expertise avancée en la matière. Rich Harris, journaliste à theguardian.com et l’un des créateurs de la bibliothèque, a présenté la technologie à la conférence Applicative de l’ACM (Association for Computing Machinery) qui s’est tenue à New-York du 25 au 27 février.
« JavaScript a grandi, mais il a perdu son innocence. Les outils n’ont jamais été aussi sophistiqués, notre communauté n’a jamais été aussi dynamique, et pourtant se lancer dans le développement web n’a jamais été aussi déroutant », résume-t-il dans la présentation de sa session sur Ractive.js, intitulée « Démonter les barrières à l’entrée ». Selon lui, la bibliothèque simplifie radicalement la création d’applications web interactives pour les développeurs débutants. Il considère qu’il est urgent de le faire, car les outils de création de site web actuels sont trop abstraits et trop complexes pour les non-programmeurs qui veulent créer leurs propres sites web. La promesse originelle du web était que chacun pourrait le faire en utilisant les bases du langage HTML. Si ce dernier fournit toujours les fondations pour poster du texte et des images, en revanche, les capacités de programmation avancées ne sont pas accessibles aux novices, pointe Rich Harris.
Cet exemple d’horloge réalisé avec Ractive.js montre comment on peut transformer simplement des données brutes en une vue qui les utilise de différentes façons.
Ractive permet d’insérer de la logique métier dans les pages
Ractive requiert tout de même un minimum de compétences pour des utilisateurs non spécialistes, mais il propose une approche plus intuitive à ceux qui disposent d’un début d’expérience en HTML et JavaScript. Avec cette bibliothèque, le développeur accède à des fonctionnalités qu’il aurait été trop laborieux de coder. Les pages web peuvent être automatiquement mises à jour avec des données qui sont personnalisées par l’utilisateur. Ractive permet aussi à l’utilisateur d’insérer de la logique métier dans les pages web, par exemple pour cacher ou monter des parties de la page en fonction des préférences de l’utilisateur.
Dans de nombreux cas, les sites web disposant de telles fonctionnalités utilisent des frameworks tels que Ruby on Rails ou Django pour Python qui sont construits sur une architecture de type MVC (Model View Controller). Cette dernière insiste sur la séparation entre la gestion des données et de la logique. Cela permet de gérer des opérations web très étendues, mais le code qui en résulte peut être difficile à comprendre dans sa totalité, même pour les développeurs expérimentés, estime Rich Harris. Par ailleurs, les bases de code MVC présentent, avec le temps, le risque d’être endommagées si des changements sont effectués, ajoute-t-il. D’autres bibliothèques JavaScript, telles que jQuery ou Angular.js permettent aussi de travailler avec les données des utilisateurs sur les sites web, bien qu’elles peuvent déboucher sur du code non structuré, difficile à gérer. Dans le cas de jQuery, ce résultat est souvent qualifié de « code spaghetti ».
Des didacticiels et des exemples de code
Constituée en partie dans le cadre de la fondation Bill et Melinda Gates, la bibliothèque Ractive a donc été conçue pour être utilisée par des programmeurs novices. Elle ne requiert pas de dépendances externes, ni de programmes à installer avant que le logiciel puisse être utilisé. Le site du projet propose un ensemble de didacticiels, avec du code qui peut être facilement copié et réutilisé.
Plusieurs sites web déployés à grande échelle utilisent déjà Ractive.js, comme Yellow Pages, National Foot League et le groupe français Axa. Le Guardian l’utilise de son côté pour la plupart de ses graphiques interactifs. D’un point de vue technique, Ractive fournit au programmeur la possibilité de créer un jeu de modèles qui peut être dynamiquement rempli avec des données ou des processus logiques. La bibliothèque fonctionne comme un modèle de document objet (DOM) virtuel ou comme un intermédiaire au propre DOM du navigateur et que celui-ci utilise pour analyser le code HTML. Ractive n’est pas la seule bibliothèque JavaScript à le faire. Meteor.js et la dernière mise à jour de Handlebars.js utilisent une approche similaire. « Pour moi, cela signifie que cette idée a du sens », souligne Rich Harris.