Un langage de programmation pour tous

Si l'on veut créer un langage plus simple que Basic ou Julia, la solution passe par la programmation réactive, et même par... le tableur!

Dans un article paru en 2009, intitulé Spreadsheet Programming, trois auteurs travaillant pour Microsoft et l'Université de l'Oregon ont expliqué en quoi utiliser un tableur, c'est en fait programmer...

  1. Les cellules dans lesquelles on entre des valeurs sont des entrées.
  2. Les cellules qui affichent un résultat sans être référencées par aucune autre sont les sorties.
  3. Celles qui contiennent des formules faisant référence à d'autres cellules et sont elles-même référencées dans les formules, sont les instructions du programme.
  4. Il y a même des itérations: si une formule fait référence à une ligne ou une colonne, on l'applique à chaque cellule de celle-ci répétitivement.

Programmer avec un tableur

Les auteurs tirent alors des conclusions étonnantes...

Les tableurs sont les systèmes de programmation les plus utilisés dans le monde...

Programmeur dans un tableur, il y a 11 millions d'américains qui le font, alors qu'il n'y a que 2.75 millions de programmeurs utilisant un langage procédural ou fonctionnel (chiffres de l'époque).

La première idée qui vient à l'esprit est que cela est bien, mais un tableur, cela sert à faire des calculs financiers, et la programmation, c'est beaucoup plus général, cela s'applique à tous les domaines de l'existence...
Mais en réalité ce n'est pas le cas. Avec un tableur, on peut réaliser des quantités d'applications interactives, et dans n'importe quel domaine.
Il existe des versions gratuites de tableur en JavaScript, et même une qui tient en trente lignes de code (utilisée pour réaliser l'image plus haut, avec une feuille de style personnalisée).
Le site Wijmo qui offre un de ces widgets nous présente une liste d'applications.

Recette de cuisine dans un tableur

Ces applications sont faites en combinant le tableur avec d'autres widgets, par exemple en insérant un éditeur de texte dans une cellule, ou en affichant un graphe dans une cellule avec framework de tracé graphique.
De tels mashups sont possibles grâce au fait que le tableur soit en JavaScript et utilise HTML comme interface.

On voit qu'en choisissant HTML 5 pour interface, on dispose d'un outil de programmation supplémentaire: le tableur. On peut réduire l'effort demandé à l'utilisateur en lui laissant la tâche de remplir les cellules entrées, toutes les formules étant prédéfinies dans l'application (ce que font en fait la plupart des feuilles de styles prédéfinies proposées au public).

La façon dont fonctionne un tableur se traduit en langage de programmation par le paradigme de programmation réactive. Celle-ci demande au programmeur de décrire le problème en formules et laisse le travail de calcul à l'interpréteur. Au contraire, la programmation impérative classique requiert que le programmeur décrive pas à pas le traitement à accomplir pour résoudre le problème.
Le programmation réactive est souvent utilisée sur des bases de données: en effet, une table de BDD est constituée de lignes et colonnes, comme un tableur, et on peut faire des opérations globales sur une rangée.

La conclusion est que si l'on veut augmenter le nombre de programmeurs, et créer un langage de programmation le plus accessible possible, la solution, c'est de créer un tableur.

Vous pouvez construire votre propre tableur JavaScript en suivant les instructions de ce tutoriel. Un autre site vous propose toutes les fonctions d'Excel, en JS. Mais au lieu d'inclure toutes les fonctions mathématiques, remplacez les par des widgets graphiques. Il y a peu d'utilisateurs mathématiciens ou financiers.

Par Denis Sureau le 28 février 2014. Mis à jour le 3/2/2015.