Créez des logiciels qui émeuvent les gens
(rapha.land)- L’auteur qui a développé l’éditeur de code personnel Boo explique pourquoi il a mis temporairement le projet en pause pour créer un nouveau langage de programmation.
- Boo, un éditeur basé sur Rust doté d’une navigation clavier centrée sur l’utilisateur et d’un système de remplacement du LSP, vise surtout une utilisation personnelle plutôt que la commercialisation.
- Ayant constaté que le processus de développement répétitif diminue la créativité, il met l’accent sur le plaisir de créer des logiciels inspirants.
- En prenant pour exemples le montage de briques LEGO et The Legend of Zelda: Breath of the Wild, il souligne l’importance de réalisations mémorables.
- Plutôt que de suivre une formule de succès, il adopte une philosophie de développement centrée sur ses propres centres d’intérêt et son apprentissage, et prévoit de réécrire Boo plus tard dans le langage qu’il crée.
Projet Boo et motivations du développement
- Boo est un projet que l’auteur a conçu comme éditeur de code pour lui-même, avec un focus sur l’utilité personnelle plutôt que le succès populaire.
- Boo intègre une navigation clavier humain-centrée et utilise, à la place du LSP (Language Server Protocol), un système plus rapide et moins exigeant pour l’OS.
- Il fonctionne suffisamment bien pour être utilisé au quotidien, mais il n’a pas l’intention de le publier en open source.
- Boo et Rio Terminal sont tous deux écrits en Rust et suivent une structure et un processus de distribution similaires.
- Ces similitudes donnent l’impression d’un travail répétitif et réduisent le plaisir de développer.
Relation entre création et inspiration
- En prenant le jeu de montage LEGO comme exemple, il explique que la liberté de créer des formes différentes à chaque fois est au cœur du plaisir créatif.
- Selon lui, l’intérêt vient de l’ajout d’éléments externes pour obtenir un résultat nouveau, plutôt que de réutiliser sans cesse les mêmes pièces.
- Plus la programmation devient répétitive, moins il y a de chances d’obtenir une création capable de provoquer un effet « waouh ».
- Il insiste sur le fait qu’il faut être inspiré pour créer des logiciels qui inspirent.
Exemples de logiciels marquants
- En citant The Legend of Zelda: Breath of the Wild, il évoque la qualité de réalisation qui a poussé même des personnes qui ne jouaient pas au jeu à acheter une console.
- Il met en avant la force d’une œuvre capable de rester en mémoire bien après la session de jeu.
- Il explique qu’un logiciel élaboré avec un tel niveau de soin laisse une impression émotionnelle durable sur les gens.
Arrêt de Boo et développement d’un nouveau langage
- Boo est un projet de loisir sans objectif commercial, sans revenus ni deadline.
- Il n’a pas l’intention de créer un projet de grande ampleur comme VS Code et ne progresse pas de manière forcée.
- Il a mis Boo en pause pour pouvoir le reprendre lorsque l’inspiration reviendra, et il développe actuellement son propre langage de programmation.
- À long terme, il prévoit de réécrire Boo avec ce langage.
Philosophie et attitude de développement
- Développer un nouveau langage demande beaucoup de travail, mais l’auteur le perçoit comme un processus d’apprentissage agréable.
- Il avance à son propre rythme, tout en élargissant sa compréhension des binaires et des compilateurs.
- Plutôt que de suivre des formules de succès ou des conseils extérieurs, il continue de développer en se centrant sur sa façon de penser et ses intérêts.
- Cet article lui-même a été rédigé avec Boo.
1 commentaires
Avis Hacker News
En voyant le message disant qu’il s’était levé, avait bu un café, et que sa famille s’était endormie, lui laissant l’après-midi libre, je me suis demandé dans quel fuseau horaire sa famille pouvait bien vivre. J’ai même imaginé une famille qui dort l’après-midi, ou des gens qui se lèvent le soir pour commencer leur journée
La phrase « cet éditeur existe pour me faire plaisir » semble rafraîchissante. En ce moment, il y a une pression pour que chaque side project devienne de l’open source ou du SaaS, et cela finit souvent par tuer la créativité. Des projets expérimentaux comme Boo ou Rio semblent naître de cette liberté
Le « je l’ai fait pour moi » est la manière de faire de beaucoup d’artistes. Tolkien faisait pareil, et la plupart créent d’abord pour eux-mêmes avant de montrer leur travail au monde. Mais en général, personne ne s’y intéresse, ou alors seulement après leur mort. Et ce n’est pas grave. L’important, c’est l’instinct humain d’exprimer son imagination vers l’extérieur
Quand la programmation devient répétitive, l’effet « wow » diminue. Mais des projets comme yt-dlp, qui prennent en charge une grande variété de sites, font exception. Produire d’innombrables parseurs de données est ennuyeux, mais au final cela donne l’impression que « ça marche partout »
Je crée des logiciels qui font ressentir des émotions aux gens — principalement de la colère. Au fond, il n’existe que deux types de logiciels : ceux qu’on ignore, et ceux qu’on utilise assez pour s’en plaindre
Emacs et Emacspeak me procurent d’énormes émotions. Tout donne l’impression de former un seul manuel, et il suffit d’appuyer sur C-h m pour que toutes les commandes apparaissent immédiatement. Rien n’est caché, pas besoin d’aller fouiller dans de la documentation HTML. Et si ça ne marche pas, je peux toujours le corriger avec Codex pour obtenir ce que je veux
Dans l’idéal, le développement logiciel devrait relever de l’artisanat (craft). Comme le travail du bois, cela peut être utile tout en étant un art. Mais beaucoup de projets traitent les développeurs comme des ouvriers d’usine. Le problème, c’est une culture qui valorise la quantité plutôt que la qualité.
En même temps, considérer le logiciel uniquement comme de l’art n’est pas très pratique. Le but du code n’est pas d’être contemplé, mais de fonctionner. Cela dit, c’est dommage que l’expression « un logiciel empreint d’artisanat » sonne bizarre
Des entreprises FAANG comme Meta ou Google ont elles aussi déjà créé des logiciels qui font ressentir des émotions — colère, déprime, parfois même joie. Mais cela montre comment une technologie née de bonnes intentions peut être déformée. Comme le dit l’expression, « l’enfer est pavé de bonnes intentions » : on poursuit le bien et l’on finit par produire du mal.
Pour citer Knuth, laisser « des milliers d’informaticiens faire librement ce qu’ils veulent » est le moteur du progrès. Comme à Bell Labs, la liberté d’exploration est essentielle.
Aujourd’hui, on est obsédés par l’optimisation tout en étant maladroits en mathématiques, et au final nous sommes devenus une société qui a cessé d’explorer. C’est pour cela que je pense que les progrès ont ralenti
C’est une habitude que j’ai apprise de Casey Muratori et Jonathan Blow : moi aussi, j’aime construire mon propre petit monde. Ce sont des projets dont je suis l’unique utilisateur et la seule cible. Un espace de pur plaisir, sans deadline, sans demandes, sans runtime
De nos jours, la plupart des logiciels me provoquent des émotions fortes
node_modulesme met en colère. Quand je vois des applications basées sur Electron, je me demande « où avons-nous dérapé ? ». Et je déteste aussi voir des interfaces mobiles plaquées sur le bureau