xvw.lol

2023-12-30 12:02:57

Après avoir brièvment parlé de mon site personnel en rétrospective, il est temps de faire le bilan des projets libres de 2023. C'est la seconde partie de ma rétrospective de 2023 !

Le gros projets de 2022 a été le développement du forum Muhokama. Développé en OCaml (évidemment) par dessus le cadriciel Dream. Même si, durant l'année 2023, il y a eu très peu de contributions (quelques fixes et fonctionnalités en Janvier), le projet a servi de base pour raisonner la construction d'une pile d'outils nous permettant de facilement décrire des applications full-stack avec OCaml. Une grande partie de mes contributions durant l'année 2023 ont porté sur cet ensemble de bibliothèque !

Avec The Funkyworkers

Nous avons, en Avril 2022, fondé un collectif, The Funkyworkers — dont le nom ne fait pas l'unanimité. L'objectif du groupe est de fournir — à la mesure de nos compétences — un support industriel pour le développement d'applications sûres et fiables, exploitant des langages avec vérification statique des types (comme OCaml et Haksell) et des assistants de preuves (comme Coq). En complément du développement de logiciels, nous offrons une expertise en technologies Web3 (essentiellement sur la blockchain Tezos). Pour des raisons contractuelles, je ne peux pas être très expansif sur notre activité commerciale (et dans le cadre de ma rétrospective, ça aurait peu de sens car je ne suis pas salarié de ma propre entreprise), par contre, les outils que nous développons sont généralement libres !

Nightmare

Nightmare est un ensemble de bibliothèques permettant de développer des applications web (back-end et front-end) uniquement avec OCaml. Même si le projet permet de n'utiliser que OCaml, il est tout de même très différent de Ocsigen, qui permet de construire des applications multi-tiers, car les différents tiers sont distincts. Cependant, une grande partie des outils développés dans Muhokama ont servi de base pour essayer d'utiliser au maximum le typage statique pour exprimer des invariants. Le projet avance lentement mais surement et 2024 sera probablement l'année où nous l'utiliserons pour réecrire Muhokama. Actuellement, le seul projet s'en servant (uniquement de la partie front-end) est ce site web. En effet, les dApps et les commentaires utilisent Nightmare.

Pour 2024, nous travaillons sur l'abstraction des formulaires et sur un DSL pour exprimer des requêtes SQL (un peu à la manière des expressions de requêtes en F#).

Yourbones

Derrière ce très mauvais nom (Yourbones pour Tes os, ce qui peut, phonétiquement, se prononcer comme Tezos) se cache l'embryon d'un kit de développement pour interagir avec la blockchain Tezos. Le but étant de se marier efficacement avec Nightmare pour construire des dApps de bout en bout. C'est d'ailleurs via Yourbones que les dApps de ce site web sont développées. L'ensemble des bibliothèques repose sur les mêmes idiomes que ceux mis en avant par Nightmare (dont certaines des bibliothèques sont des dépendances des bibliothèques qui décrivent Yourbones), soit l'usage, un peu immodérée, du typage statique pour exprimer un maximum d'invariants. Actuellement, un petit projet sert de showcase.

Même si, en l'état, il est déjà possible de construire des dApps peu ambitieuse, nous tâchons de dériver le développement par l'usage, implémentant, au fur et à mesure, les outils dont nous avons besoin pour augmenter le potentiel des dApps développable avec Yourbones.

Notre objectif pour 2024 est d'améliorer l'interaction avec les contrats en fournissant un DSL pour décrire des expressions Michelson valides et vérifiées statiquement. Une fois que ce sujet sera traité, nous tâcherons d'améliorer l'expérience développeur pour fournir un concurrent sérieux (et en OCaml) à Taquito et idéalement à Dip dup.

Note sur Js_of_ocaml

Même si je n'ai pas contribué concrètement à Js_of_ocaml, notre usage un peu brutal de ce dernier (pour s'interfacer avec l'écosystème JavaScript) à permis de soulever plusieurs bogues liés à la minification du bundle JavaScript généré. Ce qui me permet de remercier très chaleureusement Hugo Heuzard pour ses fixes rapides !

Les Amis d'ma mère

Les Amis d'ma mère est une ASBL belge qui vise à faire la promotion d'artistes belges — il se trouve que l'ASBL, Les Amis d'ma mère, a été fondée par ... des amis de ma mère, d'où la mise en contact. Une de leur activité est d'accompagner les artistes à estimer leur éligibilité au statut d'artiste — similaire au statut d'intermittent du spectacle en France. Comme très souvent, la bureaucratie rend ce suivi complexe, et, en collaboration avec des experts sur le sujets, nous avons développé un prototype pour faciliter (et potentiellement gamifier) le suivi des prestations pour calculer son éligibilité. Ça se matérialise par une application (écrite en OCaml) permettant de construire une feuille de suivi où il n'est possible que d'entrer des valeurs valides. L'application a été développée bénévolement pour mettre en avant la volonté de The Funkyworkers à allouer du temps pour la construction de projets pour le bien commun.

Même si le prototype est utilisé en interne, 2024 sera probablement l'année où nous écrirons une version plus ambitieuse, fonctionnant sur mobile, pour rendre accessible à tous les artistes, l'application et leur permettant de construire eux-mêmes leurs dossiers d'artistes.

Pour la suite

Même si chacun des projets présentés semble avoir des extensions/améliorations prévues, certains projets ayant reçu peu de mises à jour en 2023, nous avons aussi des perspectives pour ces derniers :

  • YOCaml, même si, par l'initiative de Romain Calascibetta, YOCaml a enfin été publié sur OPAM, le générateur, de générateur, n'a pas été fortement mis à jour. Par contre, comme évoqué dans la rétrospective précédente, la bibliothèque étant utilisée par d'autres utilisateurs, nous travaillons actuellement sur une nouvelle version (très inspirée par le papier "Build Systems à la Carte: Theory and Practice").

  • Preface a reçu quelques mises à jours (notamment l'intégration d'abstraction indexées et l'ajout de Lattices), un gros chantier est en cours de réflexion. Il est donc probable que l'on y alloue un peu de temps.

  • Muhokama, comme évoqué dans la section dédiée à Nightmare, il est probable que l'on exploite Nightmare et Yourbones pour implémenter une version plus ambitieuse !

Bref, pleins de perspectives amusantes ! En espérant que l'on arrive à construire des feuilles de routes réalistes pour faire progresser rapidement chacun de ces projets. De plus, il est possible que l'on passe un peu de temps à construire une véritable application web pour décrire notre activité publiquement et fournir des bacs à sable d'expérimentations.

En solo

Cette année, j'ai relativement peu travaillé sur des projets en solitaire, mis à part mon site personnel. Je n'ai pas de projets spécifiques en tête à réaliser seul, même s'il est probable que j'exploite les différentes avancées des projets cités ci-dessus pour faire des expérimentations et des retours d'expériences.

Cependant, je ne regrette pas cet excès de collaboration parce que c'est, de mon point de vue, largement plus motivant de travailler en groupe qu'en solo !

C'était la seconde partie de ma rétrospective ! Merci de votre lecture potentielle et passez d'avance de très bonne fêtes de fin d'année et tout le meilleur pour 2024 !

Rétrospective Sur les projets libres

Sources

Dépots de sources des différents projets