Lundi 25 fevrier 2008
En tant que développeur de logiciels, on a toujours essayé d'améliorer les outils pour nous faciliter la vie. La dernière chose que vous voulez, c'est que votre programme cesse de fonctionner si son environnement change (microprocesseur, disques, etc.)
Au début, quand on programmait en assembleur, on était dépendant du microprocesseur: Changez de microprocesseur, et votre programme était bon à mettre à la poubelle. Il fallait tout ré-écrire pour le nouveau microprocesseur. Impensable de nos jours.
Les langages de plus haut niveau (C, C++...) on permit de s'affranchir (à peu près) du microprocesseur (moyennant quand même une recompilation).
Avant, quand vous vouliez écrire sur disque, vous indiquiez dans quelle piste et quel secteur écrire. Donc votre programme était spécifique à un type de disque.
Changez de disque dur, et vous étiez bon pour modifier votre programme !
Les systèmes de fichiers (FAT, NTFS, ext2/ext3...) ont permis de s'affranchir de ces dépendances.
De même, les nouveaux langages à machine virtuelle (Microsoft .Net, Java, Python...) permettent de s'affranchir de nombreux problèmes bas niveau telle que l'allocation et libération de la mémoire.
Quand on programme, on veut résoudre un problème concret (un problème de la vie), et pas se battre avec des problèmes bas niveau liés spécifiquement à l'ordinateur.
Il est temps de passer à un niveau supérieur.
Un système d'exploitation n'est finalement rien d'autre qu'une commodité permettant de faire fonctionner des logiciels. Il participe au même titre que le microprocesseur, le BIOS ou les périphériques.
Pour un projet perso, je ne miserais pas sur des technologies qui me limiteraient à un microprocesseur. De même, je ne miserais pas sur les technologies qui me limitent à un seul système d'exploitation.
Pour un projet perso, je considère donc les technologies Microsoft comme mort-nées:
Voilà pourquoi j'affectionne des langages comme Python: Je peux écrire des logiciels qui fonctionneront tel quel sous Windows, Linux, MacOSX, etc.
Et si on sort du domaine du développement, c'est aussi une des raisons pour lesquelles je choisis en priorité des logiciels multi-plateformes comme Firefox, OpenOffice.org, Gimp, Inkscape ou FreeMind: Je peux changer de système d'exploitation à volonté, et continuer à travailler avec mes fichiers.
L'important, ce sont les logiciels, pas le système d'exploitation.
Bon vent, donc, aux logiciels et technologies qui essaient de me lier à un OS précis. Je veux être libre.
"Libre", voilà le mot. Et c'est justement le logiciel libre qui permet cette liberté.