CHAPITRE 8 : LES DIFFÉRENTS LANGAGES DE PROGRAMMATION

Comme vous le savez déjà, un programme ne se fait pas comme ça ; il faut rentrer des instructions dans tel ou tel langage pour que l'ordinateur puisse les comprendre et les exécuter.
La plupart des langages de programmation partage quelques bases communes. La plus évidente est que les instructions sont en anglais ou inspirées de l'anglais. Tous les langages permettent de manipuler différents types de variables (qui peuvent contenir diverses formes de nombres, des caractères, du texte....) Les instructions sont lues et exécutées les unes après les autres mais il existe des instructions de branchement qui permettent de "sauter" à une position donnée et donc de faire des boucles (blocs d'instructions qui se répètent sous certaines conditions), des fonctions (sorte de sous-programme qui renvoie un résultat à partir d'une ou plusieurs variables).
Tous les langages n'offrent pas les mêmes possibilités ; certains sont plus faciles à transférer sur une autre plate-forme (Linux, Solaris, Mac...) que les autres, certains sont plus faciles à manipuler, certains gèrent mieux les périphériques, etc…
Voyons les principaux langages de programmation : au programme (pas de jeu de mot intentionnel) : l'Assembleur (ASM), le Cobol, le BASIC, le JAVA, le C/C++, le Pascal, le Visual Basic, le Delphi, les langages du web ( HTML - CSS - JS - PHP - SQL), le Flash.

L'Assembleur (ASM)

Inventé en 1945 par John von Neumann, l'assembleur fut le premier vrai langage de programmation mais aussi le plus proche du langage machine (il s'adresse directement au processeur) et de ce fait, l'un des plus compliqués. Les instructions sont de type MOV, ADD, PUSH, POP, INT, bref rarement plus de 5 lettres, ce qui les rend difficile à mémoriser ; il faut aussi bien comprendre le fonctionnement de la pile et des différents registres du processeur (prise de tête garantie). Il n'y a pas d'instructions toutes faites : il faut d'abord mettre les bonnes données dans les bons registres avant d'appeler les interruptions adéquates. De plus, il existe un langage assembleur par famille de processeur (le plus courant est le langage assembleur pour Intel x86). Il présente néanmoins l'avantage de donner des exécutables de taille réduite. À noter que c'est le langage de prédilection des crackers (pirates) qui s'en servent d'une part pour analyser du code décompilé et d'autre part pour rendre leurs cracks plus petits. 

  
Un "Hello World" en assembleur. Pas explicite, hein ?

Le COBOL

Common Organization Business Oriented Language. Datant de 1959, ce langage de programmation a été mis au point sur demande du gouvernement des USA mais n'est plus très utilisé. En effet, contrairement au C++ ou au Java, il n'est pas orienté objet. De plus, il comportait quelques bizarreries comme la possibilité de modifier le code source durant l'exécution. Enfin, le plus grand handicap de COBOL est qu'il est mal standardisé : il y a de nombreuses normes, de nombreux compilateurs (souvent propriétaires et payants, ce qui n'apporte rien à la popularité du langage). Au final, du code COBOL produit pour le compilateur MicroFocus ne compilera pas avec libcob (compilateur COBOL sous GNU/Linux).

Le BASIC

Beginners All purpose Simple Intructions Code (1964). Sans doute le langage de programmation le plus simple au monde ; il permet de créer des programmes basiques (si !) très facilement et constitue ainsi une initiation contestée mais sans douleur à la programmation, surtout que c'est bien le seul usage qu'on pourrait 
encore lui trouver. En effet, le BASIC est loin d'être un langage "puissant". 
  

Un mot sur la programmation orientée objet (POO)

Ici, il ne s'agit pas d'un langage mais d'un paradigme (une manière de voir les choses quoi). La programmation orientée objet consiste à représenter son programme sous la forme d'objets (ce peut être n'importe quoi) ayant leurs propres attributs et communiquant entre eux à l'aide de méthodes.
La programmation orientée objet devient de plus en plus indispensable de nos jours pour faire des programmes souples, bien conçus et maintenables. Elle est accompagnée de diverses notions que nous vous citons en vrac : héritage, polymorphisme, upcast, classe/méthode abstraite, design patterns, etc.

Le JAVA

Java
Tirant ses origines du début des années 90, né officiellement en 1995, ce langage présente l'avantage d'être portable ; on peut exécuter un programme JAVA sous Windows, Mac, Linux, tout. Cette portabilité est du à une particularité de l'implémentation la plus répandue (comprenez : de Sun) du langage JAVA : celui-ci n'est pas compilé en code machine comme les autres langages mais dans un langage intermédiaire dit "ByteCode".
Il faut alors ce qu'on appelle une "machine virtuelle JAVA" (JVM ou J2RE pour les connaisseurs) pour l'exécuter. Seule cette machine virtuelle change selon les systèmes ; une fois qu'elle est installée sur la machine, on peut y exécuter tous les programmes JAVA.
On regrettera toutefois que le concept de machine virtuelle soit quasimment imposé (il existe des compilateurs qui compilent Java en langage machine mais ceux-ci ne permettent pas autant de chose que la JVM). En plus d'être souvent inutile (pourquoi ne pas laisser le processeur exécuter directement du code machine ?), l'exécution dans la JVM plombe souvent les performances des programmes. 
 

Le C et le C++

Créé en 1972 par Kernigan et Ritchie, le C est le langage de prédilection pour la programmation de systèmes d'exploitation. Sa syntaxe agréable a inspiré de nombreux langages de programmation (C++, Java, PHP, Awk, …). Il n'est pas orienté objet et sa gestion des types permet parfois certaines aberration, mais il reste un langage fiable, performant et maintenable.
Le C++ est en quelque sorte un C amélioré. Ce langage qui permet pas mal de choses est considéré comme l'artillerie lourde de la programmation. Il combine les performances du C avec le paradigme de programmation objet, sans l'imposer pour autant. Il comporte pas mal de fonctionnalités dont certaines qui ne sont là que pour être vraiment complet (exemple : l'héritage privé). En contre-partie, il souffre d'une certaine complexité…
Le plus grand avantage de ces deux langages est sans doute l'extraordinaire quantité de bibliothèques disponibles pour eux.
 

Le Pascal

Ce langage, dont le nom vient du mathématicien Blaise Pascal (vous savez, le triangle du même nom) est né dans les années 70. Il a connu son essor à partir de 1983 avec le compilateur turbo Pascal (de la société Borland) ; il évolua pour incorporer des objets puis pour être capable d'affficher des fenêtres.

Le Visual Basic

Dérivé du langage BASIC, vous pouvez avoir un aperçu de Visual Basic si vous avez MS Excel (ouvrez-le et faites Alt+F11) ; ce langage de programmation permet de faire de petits programmes Windows. 
  

Le Delphi

Delphi correspond à la revanche de Borland sur Microsoft après la sortie de son Visual Basic. Basé sur le langage Pascal mais de façon à en faire un vrai langage orienté objet, il permet, (tout comme Visual Basic), de développer assez facilement des applications pour Windows. Sa syntaxe s'aproche de celle de Visual Basic mais les applications Delphi n'ont pas besoin de runtime (contrairement aux applications Visual Basic).

Les langages du web

Les langages vus précédemment servent généralement à créer des programmes locaux, à exécuter sur votre machine. Mais qu'utilise-t-on pour les pages et les applications web.

HTML

Le HTML (Hyper-Text Markup Language), c'est tout simplement le langage dans lequel sont écrites les pages web ; ainsi, vous pouvez créer vos propres pages web rien qu'avec le bloc-note (notepad.exe) ou tout autre éditeur de texte. Il vous suffit pour cela d'entrer les instructions comme si c'était du texte et d'enregistrer le texte ainsi obtenu avec une extension *.htm ou *.html.
Relativement simple, ce langage repose sur un système de balises, comme par exemple <head>. Mais nul besoin de les connaître pour réaliser une page de base. En effet, il existe de nombreux éditeurs de pages web qui vous permettent de créer des pages web comme on crée un document sous Word (Mozilla NVU, Macromedia Dreamweaver, etc.). Sachez toutefois que le code généré par ces éditeurs n'est pas des plus propres.
À noter qu'on ne parle pas de langage de programmation pour HTML mais de langage de présentation. 
  

CSS

Le CSS (Cascading Style Sheet = Feuille de Style en cascade) est utilisé pour alléger le code HTML. Pour cela, on crée généralement un fichier *.css dans lequel on entre toutes les instructions codant le style de la page web (couleur d'arrière-plan, type de blocs, de bordures, etc.). En faisant appel à ce fichier dans la page HTML, on peut désigner un style lourd et complexe avec une simple petite balise. De plus, si la CSS est employée dans un site entier (comme c'est toujours le cas), il suffit de mettre à jour la CSS pour refaire le design du site en entier.

JavaScript

Toujours pour le net, le JavaScript est plutôt simple et n'a pas besoin d'être compilé. On insère le code dans la page web et le navigateur l'interprète tout seul comme un grand. Les principales difficultés sont la connaissance des différents objets et événements d'une page web tout en restant compatible avec les différents navigateurs. Ainsi, le "L'ordi pour Rantanplan" qui défile dans la barre de statut a été créé en insérant 11 lignes (ci-dessous) dans le code HTML de la page. À ne pas confondre avec le JAVA, il permet notamment de changer l'arrière-plan d'une page web ou ses différents couleurs, d'afficher l'heure, de faire des calculs à partir d'éléments de formulaire… De nos jours, il est souvent combiné avec XML et des méthodes pour charger une page web en Javascript de manière asynchrone pour réaliser des pages web se comportant comme des applications locales. Le terme à la mode pour désigner ces techniques est "AJAX" (Asynchronous Javascript And XML). 
  

PHP

Le PHP (PHP : Hyper-text Preprocessor) est un langage exécuté côté serveur et non plus côté client comme le JavaScript. Pour cela, on place sur le serveur distant (équipé de PHP) des pages web avec l'extension *.php. Ces pages contiennent en général du code PHP capable de générer une page HTML classique selon les paramètres envoyés par l'utilisateur et/ou contenus dans une base de données annexe. Ces instructions sont donc exécutées sur le serveur distant, ce qui génère une page HTML qui est ensuite envoyée à l'utilisateur (côté client).
Exemple : un JavaScript est incapable d'afficher à l'écran l'adresse IP de l'utilisateur. Par contre, le langage PHP dispsoe d'une variable d'environnement correspondant à l'IP de l'utilisateur. On va donc insérer un bout de code PHP (qui permet d'écrire l'IP) dans une page web (en supposant que le serveur gère le PHP). L'utilisateur verra ainsi son adresse IP s'afficher.

SQL

SQL (Structured Query Language) est un langage d'interrogation de base de données très populaire. Il constitue aujourd'hui une norme implémentée par de nombreux SGBDs (Systèmes de Gestion de Bases de Données), comprenez : des serveurs de bases de données. On citera notamment Oracle, PostgreSQL et MySQL.
MySQL est souvent utilisé pour stocker les informations vitales d'un site web (exemple : les paramètres des membres enregistrés). Il est quasi-indissociable du PHP. L'association des deux permet en effet de réaliser des sites dits "dynamiques", (exemples : forum). Toutefois, PHP peut également contacter d'autres bases de données, à commencer par PostGreSQL et Oracle.
On citera également en vrac le XML (langage à balise strict permettant de stocker n'importe quelles données) et l'ASP (PHP sauce Microsoft).

Le Flash

Flash n'est pas vraiment un langage de programmation comme le C++ (sauf si l'on considère le langage utilisé en interne : ActionScript) mais plutôt un outil de dessin et d'animation rudement bien foutu.
Une petite explication s'impose : Flash permet de créer des animation comme le menu, c'est-à-dire des animations sous forme d'images vectorielles. DE QUOI ? Oui, parfaitement, des images "vectorielles", comme "vecteur" : là où les images de type bitmap retiennent l'aspect d'un nombre précis de pixels formant une courbe, les images vectorielles retiennent la forme de la courbe en elle-même.
ET ALORS ? Et alors, si vous affichez une image bitmap de 128 pixels de longueur par 102 pixels de largeur (par exemple) en plein écran et en haute résolution (1280*1024 par exemple), vous pourrez compter les pixels car l'ordinateur ne peut pas inventer les pixels qui lui manque pour obtenir une image nette aussi il affiche l'image avec un effet d'escalier. Tandis qu'avec les images vectorielles, l'ordinateur recréera les formes et vous n'aurez aucun effet mosaïque.
Mais quel rapport avec la programmation ? Il n'y a que deux points communs avec un langage de programmation. D'abord on dispose d'un véritable petit langage proche du JavaScript, qui permet de programmer le comportement des différents objets graphiques, d'interagir avec l'utilisateur (boutons, champs de texte) et de communiquer avec des bases de données externes (XML). Esuite, on a une distinction fichier source/programme : les fichiers source (*.fla) créent des fichiers *.swf (idéals pour le net car assez petits mais ils nécessitent le téléchargement d'un plugin pour pouvoir être lus) qui peuvent eux-mêmes être encapsulés avec le programme de lecture pour obtenir des fichiers exécutables (*.exe). Or, le but de tout langage de programmation n'est-il pas la création d'exécutables ? 

  

ليست هناك تعليقات:

إرسال تعليق