Les langages informatiques

Comment sommes-nous passés du calcul mécanique aux langages qui font tourner nos machines aujourd'hui ?
1. Un peu de définition
Un langage informatique, ou langage de programmation, est un système formel de symboles et de règles syntaxiques permettant de décrire des algorithmes de manière à ce qu'une machine puisse les exécuter.
De façon simple, un algorithme est une suite finie et ordonnée d'instructions ou de règles à suivre étape par étape pour résoudre un problème donné ou accomplir une tâche précise (à la manière d'une recette de cuisine ou d'un mode d'emploi).
On distingue plusieurs niveaux : les langages de bas niveau (langage machine, assembleur), proches du fonctionnement matériel du processeur, et les langages de haut niveau, plus abstraits et plus proches des langues naturelles, qui doivent être traduits — par compilation ou interprétation — avant exécution.
À ces langages de programmation s'ajoutent des langages informatiques plus spécialisés : langages de balisage comme le HTML, langages de requêtes comme le SQL, ou encore langages de description. Cette diversité reflète la variété des usages : calcul scientifique, gestion, systèmes, intelligence artificielle, ou publication de contenus sur le web.
2. Un peu d'histoire
Des algorithmes aux premières machines programmables
L'histoire des langages informatiques ne commence pas avec l'ordinateur électronique, mais avec une réflexion plus ancienne sur les rapports entre 4 notions : l'algorithme, la machine, l'information et le langage.
La notion d'algorithme est elle-même bien antérieure à l'informatique : son nom dérive du mathématicien perse Al-Khwârizmî, actif au 9ᵉ siècle, tandis que des méthodes systématiques de calcul sont déjà attestées dans les mathématiques mésopotamiennes et égyptiennes.
Au 19ᵉ siècle, Charles Babbage conçoit la machine analytique, une machine mécanique programmable dont l'architecture annonce certains principes des ordinateurs modernes. En 1843, Ada Lovelace publie une méthode détaillée permettant notamment de calculer les nombres de Bernoulli avec cette machine. Son travail est souvent considéré comme l'un des premiers exemples de programme conçu pour une machine programmable. Il montre surtout qu'une machine peut suivre une suite d'instructions symboliques pour effectuer des opérations complexes, au-delà du simple calcul numérique.
La naissance des langages de programmation
C'est au 20ᵉ siècle, avec l'apparition des ordinateurs, que les langages informatiques prennent leur forme moderne. Les premiers ordinateurs électroniques des années 1940 sont principalement programmés en langage machine, constitué d'instructions directement interprétables par le processeur. L'apparition de l'assembleur permet ensuite d'utiliser des symboles et des mnémoniques à la place des suites de nombres binaires. Ces méthodes restent cependant étroitement liées à l'architecture de chaque machine et rendent la programmation longue, complexe et difficilement portable.
Une première tentative de dépasser ces contraintes apparaît avec le Plankalkül, conçu par l'ingénieur allemand Konrad Zuse à partir de 1942. Il s'agit d'un langage conçu pour exprimer des opérations de manière plus abstraite que le langage machine et qui contient déjà plusieurs concepts caractéristiques des langages modernes. Cependant, le Plankalkül reste longtemps sans véritable implémentation et n'exerce qu'une influence limitée sur le développement immédiat de la programmation. La véritable rupture intervient avec les langages de haut niveau, qui permettent aux programmeurs de décrire des opérations sans avoir à maîtriser directement le fonctionnement du processeur.
Entre 1954 et 1960, plusieurs langages fondateurs apparaissent et répondent à des besoins différents. Fortran, développé chez IBM et diffusé à partir de 1957, facilite considérablement la programmation du calcul scientifique. Lisp, conçu par John McCarthy au MIT à partir de 1958, devient un langage majeur de la programmation symbolique et de la recherche en intelligence artificielle. Algol 58, puis Algol 60, introduisent des principes fondamentaux de structuration des programmes, notamment les blocs et la portée des variables. Enfin, Cobol, développé à partir de 1959 avec une contribution importante de Grace Hopper, est conçu pour les applications commerciales et administratives. Cette diversification marque le passage d'une programmation principalement liée à la machine à une programmation davantage adaptée aux besoins des utilisateurs.
La diversification et l'abstraction
À partir des années 1960, les langages se multiplient et explorent de nouveaux modèles de programmation. Le BASIC, créé en 1964, cherche notamment à rendre l'apprentissage de la programmation plus accessible. Dans les années 1970, le C, développé par Dennis Ritchie, combine un certain niveau d'abstraction avec un contrôle précis du matériel et devient essentiel au développement des systèmes, notamment d'Unix. Prolog, développé à Marseille à partir de 1972 autour d'Alain Colmerauer, explore quant à lui la programmation logique.
Les années 1970 voient également se développer la programmation orientée objet, notamment avec Smalltalk, développé au Xerox PARC sous l'impulsion d'Alan Kay. Ce modèle organise les programmes autour d'objets associant données et opérations. Dans les années 1980, des langages comme C++ prolongent cette évolution, tandis que les années 1990 voient apparaître ou se diffuser largement Python, Java, JavaScript et PHP, adaptés à de nouveaux usages comme le Web, les applications et l'informatique scientifique.
Depuis les années 1990, l'évolution des langages accompagne celle des usages informatiques : développement du Web, automatisation, calcul scientifique, systèmes embarqués et, plus récemment, intelligence artificielle. Les approches low-code et no-code cherchent même à réduire la quantité de programmation traditionnelle nécessaire. L'histoire des langages peut ainsi être comprise comme une progression vers davantage d'abstraction, de spécialisation et d'accessibilité, permettant aux humains d'exprimer des problèmes complexes sans avoir à parler directement le langage de la machine.
3. Différents types de langages
Fortran (1957) : Développé par IBM pour le calcul scientifique et l'ingénieurie, il est le premier langage de haut niveau à connaître un succès massif.
Lisp (1958) : Conçu par John McCarthy, Lisp devient l'un des langages fondateurs de l'intelligence artificielle et de la programmation symbolique.
Cobol (1959) : Conçu pour la gestion administrative et commerciale, il utilise une syntaxe proche de l'anglais naturel et reste très présent dans le secteur bancaire.
BASIC (1964) : Créé dans un but pédagogique pour rendre la programmation accessible aux étudiants, il est devenu le langage emblématique de la micro-informatique.
C (1972) : Langage polyvalent et performant offrant un contrôle précis du matériel, il joue un rôle majeur dans le développement de systèmes comme Unix et de nombreux logiciels et systèmes modernes.
SQL (1974) : Langage de requêtes normalisé, conçu spécifiquement pour la gestion, la manipulation et l'interrogation des bases de données relationnelles.
C++ (1983) : Extension du langage C intégrant la programmation orientée objet, il combine haute performance et gestion abstraite des données pour le jeu vidéo et les logiciels lourds.
Perl (1987) : Spécialisé dans le traitement de texte et la manipulation de données, il a été un outil incontournable pour l'administration système et les débuts du Web.
Python (1991) : Axé sur la lisibilité du code et la polyvalence, il est devenu une référence majeure pour le calcul scientifique, l'automatisation et l'intelligence artificielle.
HTML (1993) : Langage de balisage fondamental du Web, il définit la structure et le contenu des pages interprétées par les navigateurs.
PHP (1995) : Langage de script conçu pour la création de sites web dynamiques, il s'exécute du côté serveur et alimente une grande partie du Web actuel.
Java (1995) : Conçu pour favoriser la portabilité grâce à la machine virtuelle Java, il est largement utilisé dans le monde de l'entreprise et sur Android.
JavaScript (1995) : Initialement conçu pour rendre les pages web interactives côté client, il est devenu un langage central du développement web, côté navigateur comme serveur.
Rust (2015) : Développé pour garantir la sécurité mémoire et le parallélisme sans sacrifier les performances, il s'impose progressivement pour la programmation système moderne.
4. Un peu d'intelligence artificielle
Depuis les années 2020, les modèles de langage transforment l'écriture du code en permettant de programmer directement à partir du langage naturel. Cette évolution prend différentes formes :
Le codage par invite (Prompt-driven development) : Générer, expliquer ou corriger des blocs de code à partir d'instructions textuelles.
Le binôme virtuel (AI Pair Programming) : Compléter son code en temps réel grâce à des suggestions intégrées à l'éditeur (ex. GitHub Copilot, Cursor).
Les agents autonomes (Agentic Software Engineering) : Déléguer des tâches complexes comme la résolution de bugs ou l'exécution de tests à des agents capables d'agir sur l'ensemble d'un projet.
Cette étape s'inscrit dans le prolongement naturel des langages de haut niveau : une couche d'abstraction supplémentaire pour rapprocher encore un peu plus l'expression humaine du fonctionnement de la machine.
5. Un peu d'anecdotes
L'origine du terme « bug » : En 1947, l'informaticienne Grace Hopper découvrit qu'un papillon de nuit coincé dans un relais de l'ordinateur Mark II provoquait une panne. Elle scotcha l'insecte dans son journal de bord en le qualifiant de first actual case of bug being found. Le terme « bug » existait déjà en ingénierie, mais l'événement immortalisa son usage en informatique.
Le clin d'œil culinaire de Python : Contrairement aux idées reçues, le langage Python ne tire pas son nom du reptile, mais de la troupe comique britannique des Monty Python, dont son créateur Guido van Rossum était fan.
JavaScript bâclé en 10 jours : En mai 1995, Brendan Eich créa la première version de JavaScript en seulement dix jours pour le compte de Netscape. Initialement nommé Mocha, puis LiveScript, il fut rapidement rebrandé JavaScript par stratégie marketing pour surfer sur le succès retentissant de Java à la même époque, bien que leurs philosophies soient totalement différentes.
Le symbole « C » : Le langage C, créé en 1972 par Dennis Ritchie, s'appelle ainsi tout simplement parce qu'il succédait à un langage appelé... B (lui-même dérivé du BCPL).
Références
- Les origines de l'informatique - Gilles Dowek, Cahiers philosophiques, 2015
- Naissance des langages de programmation- Interstices, 2007
- Pour une histoire de l'informatique française - Hubert Bonin, Vingtième Siècle, revue d'histoire, 1988
2 vues · 0 vote positif
Réactions
Connectez-vous pour réagir.
Commentaires
0 message