Laboratoire pédagogique du Greta du Velay

Laboratoire pédagogique du Greta du Velay

Choix des technologies pour les outils pédagogiques sur internet

Temps de lecture estimé à 4 min. 30 sec.

Le début de l'interactivité dans les pages web date des années 90. Les fonctionnalités potentielles sont longtemps restées tributaires des contraintes techniques. L'arrivée dans le domaine public de nouvelles technologies aptes à gérer le flux de données, le multimédia et à permettre la déportation du code côté client permet dorénavant d'envisager le web comme de l'applicatif, avec toutes ses possibilités de création d'outils et de ressources.

Nouvelles technologies dans AFIP

D'un point de vue technique, il est opportun de se baser sur les nouvelles fonctionnalités offertes par HTML5, notamment en ce qui concerne la gestion désormais native de l'audio. Malgré cela la qualité de l'interactivité, moins triviale au vu de la structure inhérente à l'architecture client/serveur, nécessite l'utilisation d'autres technologies. Nous avons conclu d'un premier essai avec NetQuiz dans aFIP que l'utilisation de technologies plus ouvertes est nécessaire pour mieux contrôler le flux de données et la réponse aux évènements, et finalement pour mieux répondre aux contraintes spécifiques existantes dans le contexte des outils d'apprentissage.

L'intérêt est triple : contrôler de manière plus complète la technique liée à l'interactivité pour mettre en place des solutions adaptées, utiliser une solution générique transférable à d'autres projets, et profiter des possibilités offertes pour étendre les solutions en matière d'outils de formation.

Processing

Afin de faciliter l'intégration des nouvelles possibilités dans l'architecture web, de nombreuses solutions libres et gratuites ont été développées dans le domaine public, s'appuyant toutes sur javascript (seul langage reconnu par les navigateurs). Dans aFIP et pour l'intégration des tests audios, le choix s'est porté sur le langage Processing, pour les raisons suivantes :

  • facilité d'intégration (Processing se décline en Processing.js, solution javascript) ;
  • simplicité d'écriture (langage objet proche de javascript) ;
  • intégration simple de média images, vidéos et audios ;
  • intégration simple de sources et signaux externes (ouverture sur d'autres possibilités).

L'intégration des tests oraux nous a permis de valider ces points mais également de remarquer que :

  • Processing est pertinent pour des réalisations dynamiques, moins pour des usages plus classiques (cases à cocher, listes déroulantes, …) ;
  • Processing semble pertinent pour du contenu partiel, mais ne peut que difficilement être le moteur d'une application entière ou d'un environnement complet.

Technologies applicatives

Pour des projets qui ne se basent pas sur de la publication mais sont entièrement orientés « plateforme de formation », c'est-à-dire pour pouvoir créer des applications client/serveur, des nouvelles solutions sont désormais disponibles, plus légères, plus souples et mieux intégrées que les précédentes.

  • l'environnement GWT (Google Web Toolkit) permet des possibilités applicatives très avancées malgré une technicité élevée (développement java) : animations multimédia, forte interactivité, possibilités de suivi et d'évaluation, connexions entre outils... La perspective est intéressante, mais GWT reste un environnement dédié aux projets capables de supporter le côut de développement.
  • solutions javascript : pour l'applicatif déporté côté client il existe de nouvelles solutions très performantes par rapport aux origines de ce principe (DHTML, 1990). Après la naissance de plusieurs dizaines de projets tentant de répondre, plus ou moins partiellement, au problème, deux outils de développement émergent, légers et disposant d'une communauté importante sur internet :
  • node.js : ce framework se base sur javascript (client et serveur) et sur une gestion complète des évènements. Il utilise conjointement des modules (NPM) permettant d'accéder à des bases de données, mettre en place des routers, utiliser des templates, des moteurs CSS, contrôler du TCP/IP, Ajax & RPC, créer des GUI, etc. Le gros avantage de node.js est de proposer une solution complète et uniforme pour du client/serveur, et d'optimiser le développement en termes techniques mais aussi en terme de coût. Il correspond également à la forte tendance des nouveaux standards vers javascript et permet de facto l'utilisation de nombreuses et puissantes librairies (JQuery, MooTools, Dojo, …).
  • backbone.js : cet outil n'est pas un framework mais une librairie javascript : c'est une couche client. L'intérêt de backbone.js est qu'il se base sur le modèle éprouvé MVC, ce qui résout en grande partie le problème de la structuration du code. Il n'offre pas de solution serveur, mais le concept de Modèle, couplé à un serveur REST/JSON/CRUD (PHP, Rails, …) lui permet de gérer la persistance des données ou d'être une solution de backend client légère et efficace. Cet outil est bien adapté aux applications utilisant massivement Ajax et correspond autant aux applications SPA (Single Page Application) qu'aux technologies smartphone ou aux applications plus lourdes.

Pérennité des choix

Ces outils, du fait qu'ils se basent sur javascript, s'intègrent facilement. Ils sont pertinents pour du développement RIA (Rich Internet Application) souple et léger, mais également pour de simples  extensions permettant de rajouter de l'interactivité dans des plateformes gérant du contenu, comme WordPress ou Drupal. D'un point de vue technique, ils permettent également de concentrer l'effort de développement sur quelques technologies seulement, qui s'avèrent être complètes (noyau HTML5 + javascript), centrales (avec des satellites, Coffeescript par exemple) et pérennes (ces technologies sont une des conséquences des choix des acteurs majeurs de l'internet).