Il y a dans l’histoire de l’informatique un événement d’apparence anodine qui a eu une grande importance : le jour où Richard Stallman a eu un problème avec la nouvelle imprimante de son bureau.

En 1980, Richard Stallman est informaticien et chercheur au laboratoire d’intelligence artificielle du MIT (Massachusetts Institute of Technology), célèbre université américaine. Le laboratoire vient de recevoir une imprimante très perfectionnée dont le logiciel comporte, comme tout logiciel, des imperfections, des bogues. Richard Stallman contacte le fabricant de l’imprimante et demande le code source du logiciel en vue de le corriger. Le fabricant le lui refuse. Pour eux, le logiciel est « propriétaire », son contenu doit donc rester secret pour éviter que des concurrents ne le copient et l’améliorent.

Note : code source et code binaire. Dans la plupart des cas, un logiciel existe sous deux formes : du code source, compréhensible par les informaticiens, et du code binaire, compréhensible uniquement par la machine. La transformation du code source en code binaire s’appelle compilation. Il est quasiment impossible pour un humain de comprendre le code binaire : les modifications du logiciel ne se font que sur le code source (sauf très rares exceptions). Les entreprises ont tendance à distribuer leurs logiciels uniquement sous code binaire, rendant ainsi les utilisateurs dépendants des personnes disposant du code source.

Pour Richard Stallman, qui vient du monde universitaire où le partage du code source et la collaboration entre informaticiens sont la norme, cette situation est moralement inacceptable. Il considère que cela limite la liberté des utilisateurs, les rend dépendants des éditeurs de logiciels. Par ailleurs, ces derniers font signer aux utilisateurs de leurs logiciels des contrats de licence qui leur interdisent de les modifier et de les redistribuer. Ce sont ces contrats de licence que l’on accepte trop souvent sans les lire quand on installe un logiciel sur son ordinateur. Pour Richard Stallman, interdire la collaboration et le partage est mauvais pour la société et le progrès technologique.

Pour contrer cela, Richard Stallman, qui a de la suite dans les idées, fonde le projet GNU. Il invente le concept de logiciel libre et crée la licence GNU General Public License (GNU GPL), le contrat de licence le plus utilisé au monde pour diffuser des logiciels libres.

Voici la définition par Richard Stallman d’un logiciel libre :

Un programme est un logiciel libre pour vous, utilisateur particulier, si :

  • vous avez la liberté de l’exécuter comme vous le voulez, pour quel que motif que ce soit ;
  • vous avez la liberté de modifier le programme afin qu’il corresponde mieux à vos besoins (dans la pratique, pour que cette liberté prenne effet, il vous faut pouvoir accéder au code source, puisqu’opérer des modifications au sein d’un programme dont on n’a pas le code source est un exercice extrêmement difficile) ;
  • vous disposez de la liberté d’en redistribuer des copies, que ce soit de manière gratuite ou onéreuse ;
  • vous avez la liberté de distribuer des versions modifiées du programme, afin que la communauté puisse bénéficier de vos améliorations.

Le projet GNU, lui aussi initié par Richard Stallman, vise à créer un système d’exploitation (logiciel de base permettant de faire tourner des applications) qui soit entièrement libre. Aujourd’hui, le projet GNU est surtout connu pour le logiciel GNU/Linux, souvent appelé à tort Linux, utilisé par des centaines de millions de gens dans des smartphones, des « box » ADSL, des serveurs (dont ceux de Google et Facebook), l’essentiel de l’infrastructure d’Internet et des PC.

Richard Stallman a clairement mis en évidence que celui qui écrit le programme peut décider de ce que peut faire ou ne pas faire l’utilisateur. Dans la notion de logiciel libre, c’est finalement l’utilisateur du logiciel qui est libre, plus que le logiciel en tant que tel.

La contribution de Lawrence Lessig

En 1999, dans un livre appelé Code and other laws of Cyberspace, le juriste américain Lawrence Lessig explique comment, dans notre société de plus en plus informatisée, le code informatique a donné le pouvoir aux développeurs aux dépens des utilisateurs. Lessig démontre qu’il fut un temps où la loi décidait de ce que le citoyen avait le droit de faire ou non, mais ce rôle est de plus en plus souvent joué par le code informatique. On peut le constater quand un logiciel nous interdit de faire ce que l’on veut : à moins qu’il ne soit libre et donc que son code soit librement modifiable, l’utilisateur est à la merci du développeur qui a écrit le logiciel.

En ce qui concerne la loi, son écriture et son adoption se font dans le cadre d’un processus démocratique, avec des amendements, des débats contradictoires entre juristes, avant d’être votée par des représentants des citoyens. À l’inverse, le logiciel est souvent écrit par une société commerciale dont les intérêts sont de fidéliser les clients, et il n’y a rien de plus fidèle qu’un client qui ne peut pas partir parce qu’on l’en empêche, par exemple en rendant compliquée l’exportation de ses données vers des solutions concurrentes.

Un utilisateur choisit un logiciel pour répondre à un besoin mais sans comprendre son fonctionnement interne, ni s’interroger sur la possibilité de récupérer ses données s’il choisit plus tard une autre solution..

En plus de la liberté, la transparence

Il existe un autre avantage au logiciel libre : le fait que l’on puisse lire son code source le rend (relativement) transparent. En effet, nous avons vu que le code source d’un logiciel propriétaire n’est pas visible. Il est ainsi très possible que ce logiciel nuise, directement ou indirectement, à l’utilisateur ou à sa sécurité sans que ce dernier ne s’en rende compte. En utilisant un logiciel propriétaire, nous sommes face à une « boite noire » que nous ne contrôlons pas.

Cela a donné lieu à de nombreuses controverses, où plusieurs logiciels très répandus comme Microsoft Windows, la messagerie Lotus Notes ou Skype pourraient avoir des portes dérobées permettant à des espions de la NSA (espionnage informatique américain) d’accéder facilement aux données des utilisateurs. Mais comme le code est opaque, il ne peut être audité facilement. Il est donc quasiment impossible de savoir si de telles portes dérobées ont été créées volontairement par les développeurs à la demande des services secrets américains ou non.

Le logiciel libre, parce que son code source est lisible, est exposé au regard permanent de programmeurs ou d’experts en sécurité et son fonctionnement examiné dans le détail. Au-delà de la liberté de faire ce que l’on veut et au-delà de permettre de contrôler ce que fait le logiciel, cette transparence nous permet d’avoir confiance dans le logiciel libre en question, même s’il est écrit par d’autres.