26 mars 2020 Emilie Sébert

Code source késako ?

Vous utilisez quotidiennement des programmes informatiques, des applications mobiles et naviguez sur des sites web, et pourtant vous pensez rarement à ce qui se cache derrière leur fonctionnement. Pourquoi le feriez-vous ? Vous n’êtes ni développeur, ni concepteur me direz-vous. Et pourtant, à la base de tous ces supports numériques il y a : LE CODE SOURCE. A partir d’un langage de programmation spécifique, long et souvent complexe, les développeurs définissent toutes les règles d’une application exécutable par ordinateur. La nature et la qualité du code source dépendent du langage utilisé et du développeur. Même s’il est invisible aux yeux des internautes, il régit tout produit informatique. Décryptage.

#1 Comment définir un code source ?

Le code source est la base des programmes et des sites Web et se présente sous la forme d’un texte lisible qui détaille les instructions d’un programme informatique dans un langage de programmation compréhensible et utilisable par l’homme. Le but du code source est de donner à l’ordinateur des règles et des spécifications précises qu’il peut traduire en langage machine. Il traduit les instructions qu’a souhaité laisser le développeur lors de la conception du programme.

Pour les non technophiles, le code source peut sembler étrange, obscur et indéchiffrable… Qu’il s’agisse d’ordinateurs personnels, de smartphones modernes ou d’ordinateurs pour la science et l’industrie, tous fonctionnent dans le système binaire (on/off, chargé/déchargé, 1/0). Une séquence d’états (bit) indique à l’ordinateur ce qu’il doit faire. Alors que dans les premiers temps de l’informatique, les commandes étaient en fait créées avec ces deux états, les applications ont depuis longtemps été écrites dans un langage de programmation lisible par l’homme. Lisible ? Lorsqu’on y regarde plus près, le code source ressemble pourtant à un charabia incompréhensible, une suite de chiffres, de signes et de mots tout droit sortis de Matrix… Comprenez ici « humainement lisible » comme un terme contraire à « lisible par la machine ».

En fait, les ordinateurs ne fonctionnent qu’avec des valeurs numériques, tandis que les personnes utilisent des mots afin de communiquer. Tout comme une langue étrangère, il est nécessaire d’apprendre les différents langages de programmation afin de pouvoir les utiliser.
La plupart du temps, le code source se résume à un ensemble de fichiers textes. Une fois écrit, il déclenche un code binaire essentiel pour qu’un processeur puisse exécuter une tâche précise. Sinon, dans certains cas, il peut être directement interprété, ce qui génère une exécution immédiate, ou encore, il arrive qu’il soit transmis sous forme de code intermédiaire, c’est-à-dire un code faisant le lien avec les instructions machine. Toute page internet, ou tout logiciel possède son propre code source.

#2 Comment se structure un code source ?

En fonction du langage de programmation utilisé, il y a certaines conventions à respecter lors de l’écriture des programmes. Même si les langages de programmation les plus rares apparaissent à partir de rien, la plupart d’entre eux se construisent les uns sur les autres. Pour cette raison, certains éléments se trouvent souvent dans différents codes de programme :

– Commandes : elles constituent probablement la base de toutes les applications. Avec cela, le développeur indique clairement à son futur programme ce qu’il doit faire. De telles commandes peuvent par exemple, déclencher certaines étapes de calcul ou afficher du texte.

– Variables : les variables sont des espaces qui peuvent être remplis d’informations. Celles-ci sont référencées dans le code source toujours avec un nom à attribuer.

– Conditions : la structure de la plupart des programmes est aussi déterminée par des requêtes qui fonctionnent selon un schéma « if » « else if », c’est à dire le principe du calcul propositionnel. Lorsqu’une certaine valeur se produit, un événement est déclenché, sinon un autre.

– Boucles : les requêtes peuvent également servir de base pour les boucles dans le code source. Une commande est répétée jusqu’à ce qu’une certaine valeur soit atteinte. Alors le programme quitte la boucle et exécute le reste du code.

– Commentaires : dans tous les langages de programmation courants, il est possible de commenter les lignes du code. Cela permet d’écrire du texte dans le code source qui ne doit pas être pris en compte par le programme. Par exemple, un développeur saisit des commentaires dans le code source pour qu’un autre développeur puisse comprendre certaines parties du code.
Il y a toujours un problème visé, lors de la création d’un code source. En effet les développeurs rédigent des programmes pour apporter des solutions. Toutefois, la manière d’y parvenir n’est pas figée. Lorsque deux développeurs traitent le même problème, il peut arriver que les deux codes sources soient très différents, même en travaillant avec le même langage.

Même s’il n’existe pas une seule solution correcte, toutes les tâches de programmation ont une chose en commun : un bon code source doit éviter le code inutile. En effet, cela rend le programme plus confus, plus lent et plus sujet aux erreurs. Le code source difficilement compréhensible, que même les experts ne peuvent clairement déchiffrer est appelé code ou programmation spaghetti, car la structure est aussi déroutante que ce type de pâte sur une assiette (syndrome du plat de spaghettis).
Dans la pratique, le code source emploie bien souvent une coloration syntaxique pour une lecture plus facile du code, avec des éléments différents distingués par des couleurs comme le rouge, le vert ou le bleu.

Pour vulgariser le vocabulaire informatique, on peut comparer le code source à une recette de cuisine. Les deux se structurent de la même manière :
– une succession d’ingrédients/d’éléments bien spécifiques
– une technique particulière
– un résultat
En résumé, la personne qui souhaite pouvoir déguster à nouveau ce plat aura besoin d’informations très détaillées pour le cuisiner à son tour (c’est le code source) ou se contentera d’acheter le plat tout préparé (c’est le logiciel).

Les instructions qui composent ce document se présentent sous la forme d’une liste d’éléments entourés de balises et correspondant à des caractéristiques bien précises choisies par le développer, dans un langage déterminé. L’ordre des éléments dans la page est très important.

Prenons l’exemple d’un document HTML, celui-ci doit contenir successivement :

– la balise <!DOCTYPE>  qui encadre la page et donne une informatique sur le type de document
– la balise <html> qui encadre tout le contenu de la page et indique en quel langage il faut comprendre le document
– la balise <head> qui contient des éléments qui n’apparaissent pas forcément dans le rendu de la page, mais qui peuvent servir aux robots de crawl des moteurs de recherche, comme le titre ou la description de la page. On y trouve également un lien vers la feuille de style CSS (nous y viendrons dans une prochaine fiche technique)
– dans la balise <body>, ce sont les éléments composant le corps du document et donc liés à l’apparence et aux fonctionnalités de la page qui sont inscrits.

Ces éléments ne sont pas interchangeables. Chacun doit avoir sa place pour que le document soit compréhensible

#3 Quels sont les différents langages de programmation

Il existe des centaines de langages de programmation différents. Pourtant il n’existe pas un langage meilleur que les autres, même si les développeurs ont chacun leur préférence et se spécialisent dans un ou autre langage. Tout dépend surtout du contexte du projet et de l’application pour laquelle le code source est utilisé. Les langages de programmation les plus connus sont :

– JavaScript
– Java
– Python
– C#
– PHP
– C
– C++
– Ruby
– Swift
– l’Objective-C.

Cependant, pour que l’ordinateur comprenne ces langages, ils doivent d’abord être traduits en code machine.

#4 Environnement de développement intégré (IDE) ?

Afin de permettre aux développeurs de réaliser des projets plus importants et d’accélérer le processus de travail, il existe des programmes spéciaux : les environnement de développements intégrés (EDI) ou IDE en anglais. Ces EDI combinent plusieurs outils communiquent entre eux de manière transparente et effectuent des changements de manière synchrones. Généralement, ces outils sont les suivants :

– Éditeur de texte : l’éditeur de texte est aussi le cœur des environnements de développement. Même si il y a peu de langages de programmation graphique qui fonctionnent à travers l’assemblage d’éléments graphiques, la majorité absolue des applications sont écrites en utilisant un code source classique. Les éditeurs de texte qui font partie d’un IDE comportent les fonctions similaires à celles des éditeurs de texte utilisées pour la programmation en dehors d’un environnement.

– Compilateur et interprète : les IDE comportent également les compilateurs et/ou les interprètes. Cela permet ainsi aux développeurs d’exécuter le code directement depuis l’environnement.

– Débogueur : l’utilisation d’un débogueur est essentielle pour un travail de programmation sensible, c’est pourquoi cet outil est un composant standard d’un environnement de développement intégré. On peut utiliser cet outil pour vérifier si le code source ne contient pas d’erreurs (bogues) en utilisant des points d’arrêt pour interrompre le déroulement du programme et analyser les opérations exécutées.

– Linker, édition de liens : pour compléter un processus de compilation, différents éléments doivent être assemblés ensemble. Un « linker » ou éditeur de liens est un programme dont le rôle est de lier les fichiers compilés et de créer un fichier exécutable.

– Gestionnaire de versions : cet outil enregistre toutes les modifications apportées au code source et peut restaurer les anciennes versions du code. De cette manière, le projet n’est pas en danger si le développeur réalise accidentellement une erreur. La gestion des versions est aussi essentielle pour collaborer avec plusieurs développeurs sur un même projet.

– Constructeur d’interface graphique : de nombreuses applications incluent une interface utilisateur graphique (GUI). Ceci doit également être défini selon le code source. Un constructeur d’interface graphique (GUI builder) assiste les développeurs dans la conception de l’interface graphique. Sous la forme d’un éditeur WYSIWYG on peut organiser des éléments graphiques via le glisser-déposer. Le constructeur d’interface graphique traduit le contenu d’un IDE en fonction du langage de programmation.
Les exemples populaires d’environnements de développement intégrés sont l’open source Eclipse ou Visual Studio qui est un produit de Microsoft.

#5 Code source pour les sites Internet

Lorsqu’il s’agit de structure de base des pages Web, on parle bien de code source, à la différence que c’est un document et non un programme. Ces pages Web sont écrites en langage de balisage HTML. De manière générale, on peut y trouver des éléments écrits en langage de programmation comme JavaScript. Avec ces deux langues, il est possible d’écrire dans des éditeurs de texte simples. Ainsi, un site Internet peut être entièrement écrit dans Editor ou avec TextEdit.

Même si vous n’êtes développeur mais un peu curieux, vous pouvez examiner le source d’une page Internet. Tous les navigateurs courant: Mozilla Firefox, Internet Explorer (ou Microsoft Edge) et le navigateur Chrome de Google permettent de visualiser le code source d’un site. Pour cela rien de plus simple…
Pour rendre visible le code source d’une page web, vous pouvez l’enregistrer en tant que fichier HTML. Vous cliquez droit avec la souris ou vous la téléchargez via le menu. Il est important de choisir « uniquement HTML » comme type de fichier (si vous sauvegardez la page Internet en entier, elle sera affichée telle qu’elle apparaît dans le navigateur, y compris toutes les images et sans voir les balises HTML). Vous pouvez ensuite ouvrir le fichier avec un éditeur de texte. Cependant, les éditeurs simples qui sont fournis par votre système d’exploitation présentent probablement le code de manière très confuse. Avec un éditeur de texte qui comporte plus de fonctionnalités, il est possible d’afficher le code source de manière à faciliter sa lecture.

Mais même sans enregistrer la page, il est possible de voir le code source d’un site. Les navigateurs modernes proposent pour cela deux méthodes : soit afficher le code HTML de l’ensemble du site Web, soit afficher un outil d’analyse pour vous aider à examiner le code. La première variante diffère peu de l’affichage du fichier téléchargé. Un nouvel onglet ou une nouvelle page s’ouvre et affiche le code source de manière structurée avec la numérotation des lignes.

La seconde méthode est plus intéressante et offre davantage de fonctions : l’outil d’analyse se trouve dans le menu contextuel sous « Examine » avec Chrome ou « Investigate Element » avec Internet Explorer et Firefox. Cela ouvre une zone dans la fenêtre. Le code source s’affiche ici et des fonctions sont disponibles. La différence avec les autres méthodes est que dans cet outil, en déplaçant le pointeur de la souris sur le code source, il est possible de sélectionner directement les éléments correspondants sur la page Web. Cela signifie donc que l’outil indique à quelle partie, la ligne de code est affectée. Ceci est aussi utilisé par les professionnels du Web design pour vérifier l’apparence des sites Web notamment.

code source

#6 Propriété intellectuelle et code source

Parce qu’il représente beaucoup de travail et de créativité, le code source est protégé par le droit de propriété intellectuelle et relève donc du droit d’auteur. Par conséquent, il est interdit de distribuer ou de plagier un code source sans autorisation. Ceci est notamment valable pour les logiciels propriétaires.

En ce qui concerne les programmes open source, c’est différent. En effet, dans le domaine du développement de logiciels, il existe une communauté open source très active, dans laquelle le code source est beaucoup plus librement manipulé. Ainsi le but pour ces développeurs est de collaborer sur des projets et de développer ou d’améliorer des logiciels à long terme. Avec GitHub, SourceForge ou d’autres plateformes similaires, les développeurs mettent gratuitement le code source à disposition d’autres programmeurs. Cependant, ces derniers doivent généralement respecter certaines conditions comme par exemple nommer l’auteur et faire apparaître la licence s’ils souhaitent utiliser le code.

Si vous souhaitez mieux comprendre le langage informatique, rendez-vous sur la fiche késako dédiée à l’API.

Tagged: