Aller au contenu

2. Histoire de la programmation : des machines aux algorithmes modernes

Objectif : Montrer comment la programmation est née de besoins pratiques et scientifiques, et comment elle a évolué jusqu’à aujourd’hui.


1. Les précurseurs mécaniques (avant le XXe siècle)

Idée clé : L’automatisation des tâches répétitives a inspiré les premières “machines programmables”.

1.1 La machine à tisser de Jacquard (1801)

  • Inventeur : Joseph Marie Jacquard (France).
  • Fonctionnement :
    • Utilisait des cartes perforées pour contrôler les motifs des tissus.
    • Chaque carte représentait une instruction (un motif à reproduire).
  • Impact :
    • Première machine à utiliser un “programme” externe pour automatiser une tâche complexe.
    • Inspiration directe pour les premiers ordinateurs (ex. : cartes perforées d’IBM au XXe siècle).

1.2 La machine analytique de Babbage (1837)

  • Inventeur : Charles Babbage (Royaume-Uni).
  • Fonctionnement :
    • Machine mécanique conçue pour effectuer des calculs automatiques.
    • Utilisait des cartes perforées pour entrer les données et les instructions.
    • Ada Lovelace (mathématicienne) a écrit le premier algorithme pour cette machine (considéré comme le premier programme informatique).
  • Impact :
    • Concept de mémoire, unité de calcul et programme stocké — bases de l’architecture des ordinateurs modernes.

2. Les débuts de l’informatique (XXe siècle)

Idée clé : L’électronique remplace la mécanique, et les premiers langages de programmation apparaissent.

2.1 Les premiers ordinateurs électroniques (années 1940)

  • ENIAC (1945) :
    • Premier ordinateur entièrement électronique, conçu pour calculer des trajectoires d’obus.
    • Programmable en reconfigurant physiquement ses câbles (pas de langage de programmation).
  • Von Neumann et l’architecture moderne (1945) :
    • John von Neumann propose de stocker données et programmes dans la même mémoire.
    • Base de l’architecture des ordinateurs actuels.

2.2 Les premiers langages de programmation (années 1950)

  • Assembleur (années 1950) :
    • Langage bas niveau, proche du code machine (ex. : MOV, ADD).
    • Difficile à lire et à écrire, mais plus efficace que la programmation manuelle.
  • FORTRAN (1957) :
    • Premier langage haut niveau, conçu pour les calculs scientifiques.
    • Permettait d’écrire des équations mathématiques de manière intuitive.
  • COBOL (1959) :
    • Langage orienté gestion et affaires, toujours utilisé dans les banques.

3. L’essor des langages modernes (années 1960–1980)

Idée clé : Les langages deviennent plus accessibles et spécialisés.

3.1 Langages structurés et portabilité

  • C (1972) :
    • Développé pour écrire le système d’exploitation Unix.
    • Langage rapide et proche de la machine, mais plus lisible que l’assembleur.
  • Pascal (1970) :
    • Conçu pour l’enseignement de la programmation structurée.

3.2 Programmation orientée objet (années 1980)

  • Smalltalk (1980) et C++ (1985) :
    • Introduction du concept d’objets (regroupement de données et de fonctions).
    • Permet une meilleure modularité et réutilisation du code.

4. L’ère d’Internet et des langages accessibles (années 1990–2020)

Idée clé : La programmation devient un outil pour le grand public et le web.

4.1 Langages pour le web

  • JavaScript (1995) :
    • Langage de script pour rendre les pages web interactives.
  • PHP (1994) et Python (1991) :
    • Python devient populaire pour sa simplicité et sa polyvalence (sciences, IA, web).

4.2 Open source et communautés

  • Linux (1991) et GitHub (2008) :
    • Le code devient collaboratif et accessible à tous.
    • Naissance de bibliothèques open source (ex. : NumPy, TensorFlow).

5. Aujourd’hui et demain (2020–)

Idée clé : L’IA, le big data et la démocratisation de la programmation.

5.1 Intelligence artificielle et apprentissage machine

  • Python domine grâce à des bibliothèques comme TensorFlow et PyTorch.
  • Les algorithmes d’IA (ex. : réseaux de neurones) transforment la science, la médecine et l’ingénierie.

5.2 Programmation visuelle et low-code

  • Outils comme Scratch (pour les enfants) ou Jupyter Notebooks (pour les scientifiques) rendent la programmation plus accessible.

6. Résumé chronologique

Chronologie de la programmation

Période Événement marquant Impact
1801 Machine à tisser de Jacquard Premier “programme” mécanique avec cartes perforées.
1837 Machine analytique de Babbage Concept de programme stocké et mémoire.
1945 ENIAC Premier ordinateur électronique.
1957 FORTRAN Premier langage haut niveau pour la science.
1972 Langage C Base des systèmes d’exploitation modernes.
1991 Python Langage simple et polyvalent, idéal pour l’enseignement et la science.
2020s IA et big data Python et les bibliothèques open source dominent.

7. Pour aller plus loin

  • Livres :
    • The Innovators (Walter Isaacson) — Histoire de l’informatique et de ses pionniers.
    • Code: The Hidden Language of Computer Hardware and Software (Charles Petzold).
  • Documentaires :
    • The Imitation Game (film sur Alan Turing).
    • Lo and Behold: Reveries of the Connected World (Werner Herzog).

8. Tableau récapitulatif : Évolution des langages de programmation

Objectif : Comparer les langages par époque, usage, niveau d’abstraction et impact.

Comparaison des langages de programmation par époque

Époque Langage Année Niveau Usage principal Caractéristiques clés Exemple de code
Précurseurs Cartes perforées 1801 Mécanique Automatisation des métiers à tisser Premier “programme” physique, pas de syntaxe. Carte perforée (Gwern, Public domain, via Wikimedia Commons)
Années 1940 Assembleur 1949 Bas niveau Programmation des premiers ordinateurs Instructions mnémoniques (ex. : MOV, ADD), dépendant du processeur. MOV AX, 1
Années 1950 FORTRAN 1957 Haut niveau Calculs scientifiques et ingénierie Premier langage “moderne”, syntaxe mathématique. DO 10 I=1,10
COBOL 1959 Haut niveau Gestion et affaires Langage verbeux, conçu pour les entreprises. ADD A TO B GIVING C
Années 1970 C 1972 Niveau intermédiaire Systèmes d’exploitation et logiciels Rapide, portable, accès bas niveau à la mémoire. printf("Hello, World!");
Pascal 1970 Haut niveau Enseignement de la programmation Structuré, typage strict, conçu pour la clarté. writeln('Bonjour');
Années 1980 C++ 1985 Niveau intermédiaire Programmation orientée objet Ajoute les classes et objets au langage C. cout << "Hello, World!" << endl;
Années 1990 Python 1991 Haut niveau Polyvalence (science, web, IA) Syntaxe simple, lisible, bibliothèques riches. print("Hello, World!")
JavaScript 1995 Haut niveau Développement web (interactivité) Exécuté dans les navigateurs, dynamique. console.log("Hello, World!");
Années 2000 Java (suite) 2000s Haut niveau Applications mobiles et entreprises “Write once, run anywhere”, orienté objet. System.out.println("Hello, World!");
Années 2020 Python (dominance) 2020s Haut niveau IA, data science, automatisation Bibliothèques puissantes (NumPy, TensorFlow), communauté open source. import numpy as np


Utilisation de l’IA

Page rédigée en partie avec l’aide d’un assistant IA. L’IA a été utilisée pour générer des explications, des exemples et/ou des suggestions de structure. Toutes les informations ont été vérifiées, éditées et complétées par l’auteur.