18 décembre 2019
En cette période où l’informatique prend de plus en plus de place dans nos vies, quelle attitude adopter pour garder un minimum de contrôle ? Pouvons-nous faire autrement que de nous soumettre à d’obscures algorithmes, dont le but est d’optimiser le profit d’une poignée de méga-corporations ? Avant toute chose, voyons ce qu’est un programme informatique, exactement. Par la suite, nous nous intéresserons aux propriétés de ces programmes selon la licence sous laquelle ils sont publiés. Tout ceci nous permettra de mieux comprendre, en tant qu’utilisateur, certains critères de sélection lors du choix d’un nouveau logiciel.
Qu’est-ce qu’un programme (ou logiciel) informatique ? Pour une majeure partie de la population, c’est une boîte noire qui permet d’envoyer des emails, de partager des photos ou encore de jouer à des jeux sur son téléphone. Mais comment tout ceci fonctionne-t-il ? En réalité toutes ces possibilités ont été imaginées par quelqu’un, puis transcrites en instructions pour ordinateur ou téléphone. On parle de développement ou de programmation. Ces instructions ne sont ni plus ni moins que des lignes de texte écrites dans un langage de programmation. Ces derniers sont très nombreux, un peu comme les langues parlées.
Exemple de code qui une fois exécuté affiche «Hello, world!» :
object Main {
def main(args: Array[String]) = {
println("Hello, world!")
}
}
Advient alors une étape cruciale. Une fois un programme informatique écrit, on veut pouvoir le lancer (ou l’exécuter). Cependant un ordinateur ne comprend que le binaire (suite de 0 et de 1) ! C’est pourquoi avant de pouvoir lancer un programme, il faut le compiler, la compilation étant la transformation d’un code source en binaire compréhensible pour un ordinateur.
Installer un logiciel revient en général à télécharger le fichier binaire ou exécutable (qu’on retrouve avec l’extension .exe sous Windows). On peut alors le lancer (par exemple en double-cliquant sur l’icône). Remarquons que ce fichier binaire est absolument illisible pour un être humain. Un code source, lui, est au moins compréhensible pour un développeur. C’est cette distinction très importante qui va nous intéresser par la suite, notamment l’accès au code source originel d’un programme.
Un développeur ou une société qui publie un logiciel peut choisir ou non de divulguer son code source. C’est la licence sous laquelle est publié le programme qui détermine cela. Sans rentrer dans le détail de la multitudes de licences qui existent, nous allons nous focaliser sur quelques propriétés majeures. Un logiciel qui ne fournit pas son code source est appelé logiciel propriétaire. Citons par exemple le logiciel de retouche d’image, Photoshop, ou encore le programme de traitement de texte Microsoft Word.
Logiciel propriétaire: le code source est gardé sous clé.
Une deuxième famille de licences sont dites «open-source», soit littéralement «code source ouvert». Comme vous l’aurez deviné, on a ici affaire à des logiciels dont le code source est disponible au public. Quiconque veut lire ce dernier, essayer de le comprendre ou même le compiler lui-même peut le faire en toute liberté. C’est une belle preuve de transparence de la part du créateur du logiciel.
Logiciel open-source: le code source est ouvertement disponible.
Parlons enfin d’un troisième type de licence et le cœur de cet article: le logiciel libre. Open-source c’est bien, mais comment éviter quelqu’un de récupérer ce code et d’en faire un logiciel propriétaire ? De plus un logiciel open-source est lisible mais pas forcément modifiable ni partageable. Ajoutons donc les propriétés suivantes: tout le monde peut modifier et partager le code source à volonté, chaque modification devant à son tour être publiée et transmise en retour au projet de base. Nous venons de décrire ce qu’est un logiciel libre. Un programme libre est donc open-source, mais l’inverse n’est pas forcément vrai.
Logiciel libre: le code source est ouvertement disponible, n’importe qui peut le modifier et partager, et toute modification doit à son tour être publiée ouvertement sous les mêmes conditions.
Illustrons tout ceci avec quelques exemples.
Propriétaire | Libre | |
---|---|---|
Retouche d’image | Photoshop | Gimp |
Traitement de texte | Microsoft Word | LibreOffice |
Système d’exploitation | Microsoft Windows | Linux |
En logiciel open-source, nous pouvons citer BSD sur lequel est basé le système d’exploitation d’Apple, MacOS.
Attention aux amalgames: logiciel libre ne veut pas forcément dire gratuit, et de même un logiciel propriétaire n’est pas toujours payant.
Les logiciels propriétaires sont en général développés par des entreprises, lesquelles cherchent le plus souvent à maximiser leurs profits. C’est la base du capitalisme. Le soucis c’est que profit et expérience optimale pour utilisateurs ne sont pas toujours alignés. Les exemples sont légion. On peut citer la marchandisation de données privées (Facebook, Google), l’enfermement dans l’écosystème de l’entreprise (Apple), le suivi de l’activité à des fins publicitaires… Ou aussi se voir forcé à mettre à jour et acheter la nouvelle version. C’est en fait la nature même des logiciels propriétaires qui engendre tôt ou tard des dérives. Le créateur se retrouve avec les pleins pouvoirs. Ce déséquilibre va favoriser à un moment ou à un autre le ou les créateurs à faire pencher la balance de leur côté au détriment des utilisateurs.
En conclusion, nous avons vu que le fonctionnement d’un programme informatique était contenu dans son code source, et que ce dernier n’était pas nécessaire à l’exécution dudit programme. Les logiciels au code source non divulgué sont appelé propriétaires et sont le plus souvent aux mains d’entreprises cherchant à maximiser leurs intérêts. D’un autre côté certains logiciels sont libres et développés ouvertement par des communautés, volontaires ou passionnés. Pour un utilisateur, se munir d’un logiciel propriétaire revient à mettre tous ses œufs dans le même panier et à faire confiance aveuglément à l’entreprise qui se trouve derrière (et pour toujours). À l’inverse, opter pour utiliser un logiciel libre revient à soutenir un monde plus transparent, ouvert, communautaire et où les chances de dérives sont moindres.
Le monde n’est pas noir et blanc, et bien sûr tout logiciel propriétaire n’est pas à éviter absolument ni tout logiciel libre à adopter aveuglément. Ainsi il n’existe pas toujours d’équivalent libre à certains logiciels propriétaires, et certains logiciels libres peuvent manquer de finition. Le plus important en tant qu’utilisateur est d’avoir conscience de la licence du logiciel lors du choix de ce dernier. On peut alors décider rationnellement et en toute connaissance de cause. Ce qui est d’autant plus crucial dans le choix du système d’exploitation, ce méga-programme qui englobe tous les autres ! C’est pourquoi j’aborderai dans un prochain article Linux, une alternative libre au bien connu Windows.