Pourquoi oui, ré-inventer la roue !
Je passe pas mal de temps à programmer en ce moment, soit pour ajouter des trucs à mes projets existants, soit pour faire une petite fonction basique qui existe souvent déjà sur le net, mais que j’ai quand même envie de refaire.
Pourquoi tout refaire, et pas reprendre ce qui existe déjà ?
Parce que ce qui existe déjà, pourtant parfois très bien, n’est pas toujours ce qui nous convient le mieux. J’aime faire les choses à ma façon : au moins je suis sûr que ça sera fait comme je veux, et souvent correctement. Je n’aime pas utiliser quelque chose que je ne comprend pas (particulièrement en programmation) : j’ai parfois repris des bibliothèques ou des morceaux de codes qui existaient, puis souvent balancé à la corbeille et fini par refaire tout ça à partir de zéro.
Récemment j’ai testé l’agrégateur RSS Leed, d’Idleman, et c’est un programme merveilleux qui fonctionne très bien. Ce n’est pas le seul agrégateur RSS en PHP qui existe (il y a aussi TT-Rss ou RSS-Lounge, pour les plus connus), mais ayant pour projet de faire moi aussi un agrégateur RSS je suis assez mitigé entre adapter un projet existant (Leed sûrement) et construire le mien à partir de zéro.
Refaire quelque chose au lieu de reprendre ce qui existe, c’est donc faire quelque chose autrement pour arriver au même résultat. Aujourd’hui il existe des dizaines de CMS, des dizaines de navigateurs, des centaines de distro Linux : chacun y trouvera celui qu’il veut utiliser, et sinon il peut en créer un s’il veut.
Le but n’est pas d’avoir un nouveau « concurrent » : les logiciels sont tous gratuits et libres, le mot « concurrent » n’a aucun sens. Non, le but c’est de donner plus de choix à l’utilisateur et une plus grande satisfaction ou contrôle à l’auteur de l’application.
Savoir coder quand on utilise un ordinateur et vouloir à son tour créer des choses, c’est la liberté. La liberté de faire comme on le sent, comme on veut. La liberté de ne pas se sentir obligé d’accepter ce qu’on nous propose, voire qu’on nous impose, dans certains cas… Coder et vouloir construire ses propres logiciels, c’est vouloir écrire après avoir appris à lire, et parfois lire ne suffit plus (même principe pour les remix de musique, parodies de films, caricatures : la réalité existante n’est plus suffisante et on veut l’améliorer.
En dehors de ça, je remarque — vous sûrement aussi — qu’un produit existant, quel qu’il soit, n’est jamais parfait. On y voit toujours des améliorations possibles. Parfois, on a envie de complètement refondre le produit et imaginer quelque chose de complètement neuf.
Passer du temps à imaginer et à concevoir le fonctionnement d’un produit, c’est toujours plus enrichissant que de prendre un produit similaire parmi ce qui existe déjà : ça permet de voir comment ça marche, quels sont les problèmes et leurs solutions, comment ne pas refaire les erreurs du passé.