Qu'est-ce que le “code source" et comment peut-il être ouvert?

Depuis que les ordinateurs sont entres dans notre vie quotidienne, le "code source" fait, chaque jour plus, partie de notre réalité. Dans les symboles mystérieux de Matrix (...et il y a même un film qui s'appelle "Source Code"), jusqu'aux logiciels Open Source que vous téléchargez, vous pouvez voir des références à ce "code" partout. Au fait, même cette page que vous visualisez maintenant a un code source aussi! Pour le voir, faites un clic droit sur la page et choisissez "voir la source" (en dépendant de votre navigateur cette option peut se trouver ailleurs). Mais qu'est-ce que c'est que ce code source et comment peut-il être ouvert (ou fermé)?

 

Commençons par une explications rapide des différences entre le langage d'ordinateur et le langage humain. Le langage humain que nous parlons et écrivons est composé de quelques dizaines de lettres qui correspondent à des sons qui peuvent être combinés pour former des mots et des phrases. Les ordinateurs communiquent à travers des câbles et utilisent un langage très différent. Ils envoient des signaux électriques qui ont un sens pour eux. Ce langage a seulement deux "lettres": allumé ou éteint, signal ou pas de signal, impulsion ou pas d'impulsion. Ceci s'appelle le système numérique binaire. Tout ce que nous faisons dans un ordinateur est transformé en une série de zéros (pas de signal) et de uns (signal).

 

Par exemple:
Le chiffre 6 correspond à 110 dans le système binaire. La lettre k en code binaire devient 01101011. La phrase “Hello World” devient “01001000 01100101 01101100 01101100 01101111 01010111 01101111 01110010 01101100 01100100”.

 

Vous voyez que c'est très difficile pour un humain de lire le langage des ordinateur et qu'il est également difficile de faire des machines qui puissent comprendre le langage humain. Pour faire le lien entre le langage humain et celui des ordinateurs nous avons inventé les langages de programmation. Ces langages se situent entre le langage humain et le langage d'ordinateur. Les langages de programmation aident les humains à écrire -quelque chose- qui puisse être facilement traduite en langage binaire.

 

Par exemple (ceci n'est dans aucun langage de programmation mais y ressemble fortement):

if (A < B & B < C){ return: A < C; }

 

Cette ligne ressemble a une instruction typique dans un langage de programmation et voudrait dire "Si A est plus petit que B et que B est plus petit que C alors A est plus petit que C". Ces instructions, écrites dans un langage de programmation, sont traitées par un interpréteur ou un compilateur et transformées en une série de zéros et de uns que les ordinateurs peuvent lire et exécuter.

 

C'est maintenant que les choses deviennent intéressantes:

Le fait est que, une fois que le logiciel est compilé en code binaire, il n'y a pas de retour possible en un langage de programmation ou un langage que l'humain puisse comprendre. Le dit "code source" est l'ensemble d'instructions, écrites dans un langage de programmation par un programmeur qui peuvent être lues par un autre être humain. Le programmateur qui écrit le programme peut choisir de fournir une version compilée de son travail ou de fournir le code source (ou les deux). Avec une version compilée, d'autres personnes peuvent faire tourner le programme mais personne ne peut savoir comment le programmateur le fait fonctionner. Avec le code source, d'autres programmateurs peuvent lire les instructions, comprendre comment le programme fonctionne et éventuellement, le modifier.

 

Le Logiciels Libres et Open Source sont toujours fournis avec leur code source. L'idée est que, si d'autres comprennent comment le logiciel fonctionne, ils peuvent aider à le développer. Par contre, les développeurs de programmes propriétaires ne révèlent pas le code source de leur logiciels et personne ne peut vraiment savoir ce que le logiciel fait. Celle-ci est la grande différence entre les FOSS (Free and Open Source Software) et les logiciels propriétaires.

Lisez aussi:
Le système binaire (Wikipedia)
The binary alphabet


Ajouter un commentaire