On peut dire que, dans le programme source, un logiciel détaille l’ensemble de son fonctionnement. Ces instructions sont développées par un programmeur, en respectant les principes du langage de programmation choisi. Lorsque le système en question accède au programme source, il interprète les instructions et les lance.
Il est à noter que le programme source n’est pas directement interprété par le matériel : les instructions sont traduites dans une langue différente, que le matériel est capable d’exécuter. Le processus de traduction est développé par des interprètes, des assembleurs et des compilateurs, entre différents systèmes de traduction.
Ce que font les interprètes, assembleurs et autres, c’est convertir le programme source en code binaire, composé de uns et de zéros, qui indiquent quand l’énergie électrique doit être transmise, ou non, au moyen des appareils.
La création d’un programme source est protégée par des droits de propriété intellectuelle. Le programmeur décide si son programme source est accessible ou non à d’autres programmeurs. Lorsque le code source est fermé, il est indiqué qu’il ne sera accessible qu’à son créateur et à ceux qu’il autorise préalablement. Si le code source est ouvert, en revanche, le programmeur autorise les autres à lire, modifier et redistribuer le programme source.
Il convient de noter que si les langages de programmation existent en nombre limité et, par rapport à des langages moins étendus, la manière dont chaque programmeur peut les utiliser est pratiquement illimitée. Un langage de programmation est composé d’une combinaison de symboles et de règles de type syntaxique et sémantique, qui établissent certaines limites et offrent une série d’outils de base pour le développement de logiciels.
Selon les compétences, les connaissances et la ténacité d’un programmeur, les possibilités peuvent sembler infinies, même si vous utilisez toujours le même ensemble de symboles et êtes limité par les mêmes règles que tout le monde. Pour cette raison, même si deux personnes connaissent par cœur tous les mots réservés, les types de données et les conditionnels (si, sinon si) et les boucles qu’elles ont (pour, pendant), la façon dont l’une les utilise peut être illisible pour l’autre, soit en raison de leur complexité ou de certaines décisions de conception.
En ce sens, le programme source est le reflet de la personnalité et de la façon de penser de chaque programmeur, ce qui peut être très révélateur. Voici quelques-unes des caractéristiques les plus courantes :
* indentation impeccable : certains développeurs ne supportent pas la simple idée d’oublier une indentation (anglicisme correspondant au terme français sangrado) en écrivant leur code. Il est important de mentionner qu’en Python, par exemple, l’indentation est essentielle pour une interprétation correcte, mais ce n’est pas le cas dans la plupart des langues, c’est donc une décision très personnelle ;
* les sauts de ligne équitables : comme au point précédent, il y a ceux qui n’ajoutent pas de sauts de ligne si ce n’est pas absolument nécessaire. Bien sûr, il y a aussi un critère personnel, puisqu’il n’y a pas de règle universelle qui détermine le nombre correct ;
* désordre : bien que le stéréotype du programmeur soit caractérisé par une obsession de l’ordre et du contrôle, il y en a qui produisent des codes qui semblent être des déversements aléatoires de caractères, sans aucun type de règle ou de modèle à suivre. Inutile de dire que ce phénomène n’est pas très fréquent.