Vous souvenez-vous qu’Inform 7 devait devenir open source l’année dernière ? Ça n’est finalement pas arrivé, et Graham Nelson a expliqué pourquoi lors du Narrascope il y a deux semaines, en plus de donner plus d’informations sur sa vision d’Inform 7.

La présentation est disponible sur YouTube, et une transcription sur le site d’Inform. Que vous compreniez l’anglais ou non, je vous invite à au moins y jeter un œil, ne serait-ce que pour les diapos. Et aussi, ce qui suit ne sera qu’un résumé !

Le début donne un intéressant aperçu de ce que l’auteur d’Inform 7 pense de sa création. La seconde partie (à partir du « partage et de l’amélioration ») sera la plus intéressante pour ceux qui ne veulent qu’avoir des nouvelles sur le futur d’Inform.

Introduction

Intitulée « Second Annual Address By Man Who Still Hasn’t Done What He Said He Would Do » (« deuxième discours annuel d’un homme qui n’a toujours pas fait ce qu’il avait dit qu’il allait faire »), la présentation commence avec un rappel de ce qui avait été dit lors du Narrascope précédent, en précisant qu’Inform n’est toujours pas open source.

Il reparle aussi de l’influence qu’a eu la literate programming sur Inform, avec une belle image d’un programme en wenyan-lang, qui imite le chinois classique. (Voir une précédente présentation pour plus de précisions sur la literate programming.)

Il renomme finalement sa présentation avec un titre un peu plus sérieux : « Engaging with Inform ».

Les 5 étapes de l’engagement

Graham Nelson explique que tout logiciel propose une interaction simple : j’appuie sur tel bouton et il se passe quelque chose. Il propose aussi un engagement social, impliquant des groupes de gens faisant des choix, qui choisissent un logiciel en fonction de leurs besoins et qui façonnent leurs besoins en fonction du logiciel qu’il utilisent.

Graham Nelson nomme le processus par lequel un utilisateur fait entrer un logiciel dans sa vie progressive engagement, divisé en 5 étapes. Les voici.

La découverte

Pour que les gens découvrent un logiciel, il faut faire sa promotion, ce qui peut passer par un elevator pitch. Souvent, il s’agit d’une courte phrase montrant en quoi le logiciel est bien. Les premiers exemples donnés, pour des langages assez standards, se ressemblent tous (dans le genre « un langage simple et efficace pour créer des programmes fiables »), ce qui ne les démarquent pas vraiment.

Pour avoir de la visibilité, il ne faudrait pas dire « je suis le meilleur », mais « je suis différent ». Pour cela, Graham Nelson donne 5 critères inspirés de Thomas Kuhn :

  • la justesse (dans la résolution de problèmes) ;
  • la cohérence (avec soit-même et les autres) ;
  • l’étendue ;
  • la simplicité ;
  • le fait d’être fructueux (mène à de nouvelles idées).

Comme on ne peut pas vraiment être bon sur tous ces points, il faut souvent en renoncer. Inform renonce à l’étendue ; après tout, ce langage ne sert qu’à écrire des fictions interactives.

Inform serait donc un langage juste, cohérent, simple et fructueux. C’est comme cela que Graham Nelson espère que les gens voient Inform.

L’embarquement

On a maintenant l’attention des gens. Comment les convaincre de monter à bord ?

Les professeurs et les ateliers sont cruciaux, et Graham Nelson suggère deux principes.

Il faut tout d’abord aller là où sont les gens. Pour Inform, cela signifierait de montrer aux étudiants de la narration courte, avec états qui changent (comme un objet qui serait porté par des personnes différentes). En particulier, Graham Nelson ne pense pas que Cloak of Darkness, l’exemple classique de FI qu’un langage doit pouvoir implanter, soit bon : il donne une idée trop vieille, des années 80, d’une fiction interactive.

Le second principe est l’utilisation de métaphores, qui permettent d’organiser ses idées et de garder sa simplicité. Par exemple, pour Photoshop, ce serait l’analogie avec le dessin traditionnel (pinceau, gomme, etc.).

Pour Inform, la métaphore serait : « C’est comme si vous écriviez un livre. » Ses ingrédients principaux serait les relations et les règles. Et cec serait une bonne idée de montrer ces idées abstraites de relation et de règles à d’éventuels étudiants pour qu’ils puissent créer les leurs si nécessaires.

L’apprentissage par soi-même

Une fois qu’un utilisateur est monté à bord, il faut que l’utilisateur puisse s’améliorer par lui-même. C’est à cette étape qu’Emily Short et Graham Nelson ont surtout pensé au début des années 2000, ce qui a mené à l’écriture des deux manuels d’Inform : la documentation et le livre de recettes.

Peu de choses vont changer de ce côté, si ce n’est que beaucoup de gens demandent une version papier de ces manuels et que Graham Nelson y pense.

Le partage et l’amélioration

Quand un utilisateur devient suffisament impliqué, il voudra contribuer. Avec Inform, cela se passe avec son système d’extensions.

C’est à partir de ce moment de la présentation qu’on commence à avoir plus d’informations sur le futur d’Inform.

Inbuild

En effet, il a toujours été historiquement difficile de gérer les extensions avec Inform : on peut les trouver à plusieurs endroits sur la toile, en plusieurs versions, qui ne fonctionnent pas toutes avec toutes les versions d’Inform…

Inform viendra donc avec un gestionnaire d’extensions nommé inbuild. Il permettra de bien gérer chacune de leurs dépendances, de les « geler » dans le projet pour qu’on puisse le distribuer sans que les autres doivent réinstaller de leur côté chacune des extensions…

Il sera aussi possible d’avoir plusieurs versions d’une même extension installées, et elles suivront le versionnage sémantique, tout comme Inform. Le but étant qu’on puisse mettre les extensions que l’on a écrites sur GitHub, et inbuild les récupérera automatiquement.

Basic Inform

Une autre avancée est qu’il sera possible d’utiliser Inform sans les Standard Rules (qui définissent le modèle du monde, les actions et les relations utiles pour une FI, etc.). On pourra donc créer des programmes plus « standards » avec Inform. Cela grâce à la nouvelle extension Basic Inform, qui contient la définition de base du langage (qui était autrefois incluse dans les Standard Rules).

Il y a aussi la nouvelle notion de kits, des paquets précompilés en inter, qu’inbuild se chargera de générer au fur et à mesure.

(Au passage, Graham Nelson souligne ironiquement que c’est en janvier 2020 qu’il a enfin été possible pour la première fois d’écrire le traditionnel Hello World en Inform 7, grâce à Basic Inform.)

Ce qu’il y a dans la boîte

Le dernière étape de l’engagement est quand l’utilisateur veut savoir comment le logiciel fonctionne.

Aujourd’hui, avec la plupart des logiciels open source, même si on a accès à leur code, on ne sera forcéement capable de le comprendre et de l’appréhender tellement il est gros et complexe.

Graham Nelson ne pense pas qu’un programme doit être comme cela, telle une démonstration abstraite et mathématiquement correcte. Un programme est à propos de besoins d’humains réels.

Graham Nelson utilise donc un outil des sciences sociales, la description dense (« thick description »), qui consiste à ne pas seulement décrire les faits, mais aussi comment les gens les appréhendent et se comportent à leur contact.

Un exemple montré est la ville de Çatal Höyük, où les archéologues n’ont pas simplement décrit leurs fouilles, mais ont aussi tenus des journaux à propos de leurs sentiments sur ce qu’ils ont trouvé. Une description dense de Çatal Höyük implique ainsi de l’empathie.

Pour en revenir à Inform, simplement publier sa source serait une description ténue. Pour une description dense, il faudrait ajouter des raisons, des données, des discussions. On en revient à la literate programming, qui serait un outil idéal pour cela.

Graham Nelson ne s’étend pas dessus, car il en a déjà parlé lors de ses précédentes présentations. Ce qui permet de générer ces descriptions denses est inweb, qui permet d’ajouter des descriptions à la source, des liens, des vidéos, des téléchargements ou des équations mathématiques, et de générer un site contenant tout cela.

Conclusion

Graham Nelson termine en faisant le bilan de ce qu’il reste à faire avant de pouvoir rendre Inform 7 open source.

  • inweb et intest : terminé.
  • indoc, inrtps, inpolicy, inblorb : presque terminé.
  • Standard Rules, Basic Inform, les kits : presque terminé.
  • inform7 : sur 19 modules, 11 sont terminés, 7 en bonne condition et 1 nécessitant un travail plus sérieux.

Inform consiste pour le moment d’une description dense de 300 000 lignes, ce qui est probablement le plus gros programme en litterate programming.

Inform a donc bien avancé et beaucoup de choses sont résolues, ce qui n’était pas le cas l’année dernière. Graham Nelson prévoit de sortir une version bêta bientôt (même si pas maintenant).


Cette présentation a ainsi donné un aperçu de comment Graham Nelson conçoit l’avenir open source d’Inform, ainsi que comment le langage va s’améliorer.

Toujours pas de nouvelles concernant les traductions d’Inform, mais chaque chose en son temps !