Aujourd'hui je vous propose de découvrir Volt, un framework web qui fonctionne en Ruby, que ce soit côté serveur ou côté client.

Une technologie identique côté serveur et client

L'envie de faire tourner la partie serveur et la partie client d'un site web sur la même technologie n'est pas vraiment une révolution. NodeJS et Dart, par exemple, sont des langages qui tournent (plus ou moins) nativement sur les deux environnements, pour un avantage certain : apprentissage plus rapide, et partage des ressources entre les deux environnements.

Ces deux paragraphes sont évidemment subjectifs. Je vous invite à en discuter avec moi dans les commentaires si vous n’êtes pas du même avis.

La solution la plus évidente pour réussir cette unification est évidemment l'utilisation de node Js, et donc du Javascript, seul langage à pouvoir s’exécuter sur tous les navigateurs sans ajout d'un script. Alors pourquoi tout le monde n'utilise t-il pas joyeusement NodeJS pour faire ses sites, abandonnant les autres langages ?

Tout simplement car le Javascript est un langage désagréable à travailler et debugger, dont les specifications ont étés finis à la va-vite car le temps manquait. Bien sûr, les nouveautés arrivent doucement, mais il n'y a qu'à voir la différence entre le Javascript actuel et l'AS3 (même à sa sortie, en 2006) pour se rendre compte que le Javascript est vraiment une mauvaise interprétation de l'ECMAscript.

L'autre solution possible est d'écrire son code client dans un autre langage, par exemple le Coffee Script, et de le transcrire (ou compiler, si parler de compilation vers un langage haut niveau ne vous gène pas) en Javascript. C'est la solution utilisée la plupart du temps (même par Node.js !), et c'est aussi la solution utilisée par le framework que je vais vous proposer aujourd'hui.

Volt, un framework ruby côté serveur et client

Volt est un framework qui a pris le parti d'utiliser Opale pour transcrire le langage clients de ruby vers Javascript. Je ne m’étendrai pas plus sur ce point vu mon introduction !

Pour plus d'informations sur Opale, je vous propose de lire Découvrez Opale, un préprocesseur permettant de traduire le Ruby en Javascript !

 

Parmi les gros avantages que fournis le framework, le plus intéressant est pour moi la synchronisation entre l'affichage de la page et les donnees de votre application.

Pour ce faire, Volt utilise une connexion persistante via webSockets entre le serveur et le client et les données sont donc synchronisées en permanence entre le serveur et le client. La mise a jour du DOM est aussi gérée par Volt a chaque changement d’état de la page. Pas la peine de le faire a la main.

L'installation de Volt demande bien sûr une machine avec Ruby, mais aussi Mongodb, seule base de données supportée pour l'instant.

Pour aller plus loin

Ne vous fiez pas aux dates de mise à jour du dépôt sur Github (3-12 mois). Le développeur est très actif et impliqué, il compte sortir de son silence fin septembre, avec une mise à jour grosse de plus de 400 commits. Plus d'informations, et la possibilité de discuter avec le développeur du projet sur le fil hacker news de Volt.

Pour plus d'informations, je vous conseille de jeter un oeil sur un autre framework : Meteor. En effet, Volt peut tout à fait être vu comme une version du framework Meteor où le Javascript est remplacé par la Ruby.

Notez cet article