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 ? 

  

Messages les plus consultés

Dépannage Informatique

Dépannage Informatique
Dépannage Informatique

Libellés

windows Explication Coups de coeur actu Astuces - trucs et bidules chrome securite photos optimisations Assistance informatique à domicile Tarifs informatique réparation de votre ordinateur chez vous Carte Graphique Logiciel sécurité astuces Tutorial firefox Boitier Périphérique OS Windows OS Mac Tutoriels Windows ressources retouche mobile reseaux videos Dépannage informatique à domicile bureautiques sauvegarde Actualité Alimentation Pré-histoire ICT Gimp DigiScrap OS Linux Windows 8 tutoriel Aircooling Gimp création Monitoring server Windows 7 Word astuce Carte Mère Pilotes-drivers-PC captures design divers langage Html navigateurs pdf Acer Aspire Android Réparer clé usb USB 2 Unix Linux hardware informations logiciel loisirs sciences Cours C Geek Vintage HP Pavilion Internet SSD microsoft Gimp retouche image Lan Management Stockage Watercooling XnView conversion définition explication video google reseaux sociaux Configurations Complètes Curseurs souris Imprimer Samsung Notebook NP USB bootable Usb 3 WinXP Windows Seven Wordpress XPI iPhone icones résolution Développement Fujitsu Amilo Linux Logiciel USB Objets connectés Optimiser Probleme USB Processeur RAM Tutoriels iPhone/iPad/iPod bureautique clé usb exercice windows feature internet java mise à jour optimiser Windows 7 recadrer resaux et material templates vie privée Administration Apple Asus Eeepad Asus G Asus X Bidouille Défragmentation Dépannage Electronique Facebook Gadget Windows 7 Gimp ressources IOS (iPhone / Ipad) JPG LaPoste Licence Windows MSE Malwarebytes Migration Optimisation Packard Bell Easynote Photoshop Product key Récupérer fichiers Réparer Sécurity Theme Windows 7 Thunderbird Toshiba Satellite Tutoriels Divers Tutoriels Photoshop Tutoriels Spécial Windows 8 Ubuntu Windev Windows Update Windows XP Zend affichage anti-virus antivirus clavier et souris comment enlever les yeux rouges framework games gestion des images installation le materiel informatique linux mode sans échec musiques métadonnée nettoyer ordinateur pixel poids smartphone solution informatique taille telechargement tutorial téléphone virus 0x80244019 11x20 14 juillet 2015 16/9ème 7z 80070490 8E5E03FA 8E5E03FB ABC de la sécurité Accélérer le démarrage Acer Aspire One Acer Extensa Acer Iconia Alarme Alt key status Anonymat Anti Yeux rouges Arduino Astuces Jeux iPhone/iPad/iPod Asus Memo Pad Asus Transformer Book Asus Transformer Pad Asus VivoBook Authentification Automatisation Autorisation d'accès BF3 Batterie PC BattleField 2 Bioshock BranchCache C CS6 Caps Lock status Ccleaner Cheval de Trois Classic Shell CookieViz Ctrl key status Cube DOS DPI Dossier partagé Démarrage Ecran Bleu Windows 7 Ecran Bleu mort Excel Explorateur Windows Fin Windows XP Fond ecran Fujitsu Lifebook Gateway Gimp Gimp installation Gimp suggestions Google Hard Drive activité Hardware Horloges Windows 7 IBM Lenovo 3000 IBM Thinkpad ISO Windows 8 ISO Windows 8.1 Internet Explorer Internet Explorer 8 Jeu Jeux Jeux-video Live USB Livres Lubuntu Ma Musique Mac Menu Mes Documents Mes Images Mes Vidéos Microsoft Microsoft Office Microsoft Security Essentials Num Lock status OEM PC grande marque Pare-feu Partage SMB Patrice A. BONNEFOY PicPick Polaroid Probleme mise a jour ProductKey Publicité Quota RAW Recovery Ressource partagée Restauration Réinitialiser Mot de Passe Windows 7 Rôles et fonctionnalités Samsung Série 3 Scroll Lock status SevenZip Shift key status Site Web Spyboot TIF Taux de panne Taux de retour Toshiba Qosmio TrayStatus Trojan Tutoriels Office USB-RS232 UTC Virtualisation WinTools Windows 10 Windows 8.1 Windows Defender Windows Embedded Industry Windows Embedded POSReady Windows Server 2003 Windows Server 2015 Windows Update impossible Windows XP SP3 Windows key status Windows n'est pas authentique WindowsUpdateAgent WindowsUpdateAgent30-x86.exe WpKey XP jusqu'au 9 avril 2019 Xubuntu activation activation Windows activer Windows ads adware android arrêt des mise à jour de Windows XP assemblage PC barre des charmes base de donnée bleu de Windows 7 blog booster bouton démarrer capture écran choix distribution Linux classement chronologique clavier clé produit code malicieux commande Exécuter comment réinitialiser mot de passe compatibilité des applications compte local cookies cookies Chrome cookies Firefox cookies Internet Explorer cookies Opera cookies Safari cours Vb crack date de prise de vue disques durs drive-by dual-boot décalage heure défragmentation Windows 7 défragmentation du disque démarrer en mode normal déplacer déplacer Ma Musique déplacer Mes Documents déplacer Mes Images déplacer Mes Vidéos exif exploit facebook faille de sécurité fiabilité des composants format argentique format d'image format numérique grandes marques hacker heure GMT heure système hi-tech humour iPod infographie insolite interface graphique animée intranet joke joomla lancer programme au démarrage langages licence OEM logiciels malveillants mac maintenance malware meilleurs composants informatiques mises à jour mode détails mode normal mode sans echec mode sans echec windows 7 moniteur montage PC mort Windows XP msconfig navigateur nettoyage news optimiser son pc panoramique partitionner pas de son phishing php piratage prolonger mises à jour promo raccourcis rapport recadrer par lot redimensionner restaurant riskwares rootkit récupérer clé produit récupérer product key réparation windows 7 réparer réparer windows 7 sans le formater sauvegarde Windows 7 sauvegarde des données sauvegarder screenshot site web MS spam speeddial spyware supprimer cookies toujours en mode sans échec ubunto un disque dur utiliser utilitaires vbs vignettes windows7 économiseur d'écran écran