Bistro: aperçu du langage et de ses possibilités

Bistro est un langage de programmation dont le développement débute en 1999 et ayant pour but d’intégrer des fonctions de Smalltalk à Java. Son nom est à mon sens très bien choisi et vient de la citation suivante, d’après le site officiel :

A bistro is a place in France where people meet to share coffee and small talk.

Java + Smalltalk = Bistro !

Commençons par deux mots sur Java. L’un de ses atouts phares est la JVM (Java virtual machine) : compiler un programme Java donne du bytecode, qui sera ensuite interprété par une JVM comme OpenJDK. Concrètement, cela permet de développer et compiler un programme une seule fois, pour ensuite pouvoir l’exécuter sur toutes les plateformes où une JVM est disponible (à savoir presque toutes: Windows, Mac, Linux, BSD, Solaris, …). De plus, l’utilisation d’une JVM permet de compiler à la volée (just-in-time), et ainsi pouvoir optimiser le code machine par rapport au matériel qui l’exécute.

Java n’est, évidemment, pas toujours le plus adapté à un problème donné, et il serait dommage de devoir s’y limiter pour profiter de la JVM. C’est pourquoi d’autres langages JVM donnent accès à d’autres paradigmes de programmation: Clojure ou Scala permettent de programmer en fonctionnel, JRuby et JPython ré-implémentent Ruby et Python, Bistro reprend Smalltalk, etc. D’où un autre gros avantage des langages JVM: tous sont compatibles entre eux et permettent d’interagir avec des libraires écrites pour d’autres langages, notamment toutes celles développées pour Java.

La famille de langage Smalltalk, quant à elle, est un pan de l’histoire de l’informatique moderne. Smalltalk fut l’un des premiers langage à fournir un IDE graphique complet, le premier à implémenter la compilation à la volée (comme le JIT par Java expliqué plus haut), et le langage utilisé par les développeurs de l’Extreme Programming, notamment. Bistro permet aux développeurs Smalltalk de réutiliser leurs modèles et de les compiler en fichiers .class. Cela leur permet de garder la facilité de lecture / maintenance de leurs projets Smalltalk, tout en les intégrant aux classes Java existantes.

Smalltalk est tombé en désuétude depuis plusieurs années et l’intérêt porté à Bistro est donc logiquement descendu. Cela fait que son développement est au point mort depuis la dernière version stable, datant d’octobre 2010. Bistro reste toutefois intéressant à découvrir et permet toujours de porter du code Smalltalk vers un environnement Java, une raison à elle seule suffisante à en faire un outil très utile, pour peu qu’on ait du legacy code Smalltalk à intégrer à un projet développé en Java (ou tout autre langage JVM).

--

--