Experimentation avec Clojure

Pots avec des étiquettes

Apprendre Clojure en créant un script pour imprimer des étiquettes

Quand j’ai décidé d’apprendre Clojure en 2023, je voulais réaliser un projet concret plutôt que des exercices abstraits. Comme nous faisons beaucoup de conservation d’aliment, j’ai décidé de créer un script pour générer de belles étiquettes cohérentes que je pourrais réellement utiliser au quotidien. Il s’agit d’un projet simple que j’ai fait dans le passer et dont je n’ai pas eu l’occasion de revisiter.

Pourquoi Clojure et Babashka ?

Je voulais simplement en apprendre davantage sur les langages fonctionnels. Clojure est un bon candidat et Babashka facilite l’utilisation du Clojure pour les scripts.

Défis et résultats

Je voulais convertir du HTML en images pour générer des étiquettes, ce qui a été initialement difficile. Heureusement, j’ai découvert CutyCapt, qui répond adéquatement à mes besoins actuels.

La configuration de Doom Emacs avec CIDER m’a donné l’expérience complète de Clojure, bien que la courbe d’apprentissage ait été abrupte.

Clojure a une syntaxe différente de celle à laquelle je suis habitué, puisqu’il s’agit de code sous forme de données (code as data). Je n’ai pas approfondi suffisamment pour vraiment saisir tous les concepts de Clojure, j’ai plutôt appris les bases et j’ai pu réaliser quelque chose d’utile avec. Bien sûr, le script aurait besoin d’améliorations.

Deux ans plus tard, j’utilise toujours cet outil régulièrement pour étiqueter les contenants alimentaires, organiser mon garage et les câbles. Avec une simple commande, je peux spécifier le contenu, la date et toute autre information dont j’ai besoin, et obtenir des étiquettes formatées professionnellement prêtes à l’emploi. Mon seul hic est que l’imprimante P-Touch s’éteint automatiquement, donc chaque fois que j’ai besoin d’imprimer des étiquettes, je dois me déplacer physiquement vers l’appareil avant de lancer la commande, mais cela n’a rien à voir avec Babashka, c’est plutôt une particularité de l’appareil ou du pilote.

Continuation vers Go

Bien que ce script puisse être amélioré, je l’ai créé en 2023. Depuis, j’ai abandonné Doom Emacs pour Neovim et je n’ai pas renouvelé mon intérêt pour Clojure. Je pourrais utiliser Babashka à nouveau car je pense que c’est un remplacement intéressant pour les scripts Bash, mais il me faudra trouver un projet de script qui nécessite beaucoup de manipulation de données pour le justifier par rapport à un simple script Bash. Du coup, j’ai récemment commencé à apprendre Go car il semble être un langage qui compléterait bien mon expertise fullstack.

Jonathan

Publication 2025-05-01,
Mise à jour 2025-05-03