Languages
Je ne vais pas rentrer dans les détails, mais je vais évoquer quelques langages de programmations que j'estime représentatif ou bien qui ont eu un impact sur l'évolution des langages.
De la machine à l'humain : l'assembleur
Il ne faut pas se leurrer, la machine ne voit qu'une succession de bits à interpréter. Sauf que pour l'humain, ce n'est pas lisible, ni même très parlant.
Pour rendre le code machine lisible, on a inventer le langage d'assemblage. A la base il s'agit d'un ensemble de mots mnémotechniques qui indiquent les instructions à exécuter. Le code source est passé dans un processeur d'assemblage qui interpréter les mots pour les transformer en code binaire.
C'est assez spartiate, mais c'est un début.
D'ailleurs certains compilateur de langages plus évolués comme le C généraient des scripts en langages d'assemblage.
Exemple de script pour le processeur 6502:
:start LDA #0208 CMP #40 BNE suite JMP start :suite RTS
Le père de beaucoup : le C
Et pourquoi le C ? En fait la syntaxe définie dans ce langage est reprise dans beaucoup de langages contemporains. Je pense à l'Ecmascript, au Java, au C#, au PHP entre autres.
Je pense entre autres au structures de contrôle et la création de fonction. Certes, il y a eu quelques variantes depuis, mais les bases sont là.
double fact(double n) { if (n <= 1) return 1; return n * fact(n -1); }
La programmation logique: Lisp et Prolog
Le Lisp pose les bases de la programmation logique en utilisant un paradigme déclaratif.
Le Prolog pousse un peu plus loin le concept de programmation logique avec des concepts d'assertions.
L'arrivée de l'objet
C'est le langage Simula qui pose les bases de la programmation orientée objet.
Viendront ensuite Smalltalk, le C++ et Objective-C.
Le langage Java a permis de créer beaucoup d'outils autour de la conception objet, et entre autres autour de la méthode UML.
Programmation fonctionnelle
Je pense au langage Caml et sa version orientée objet Objective-Caml. Il y a également Erlang et Scheme.
Le but de ces langages et d'éviter les effets de bord dus aux affectation. Avec les langages impératifs on peut y arriver mais au prix d'une grosse discipline.
Les mathématiques et les sciences
Il y a eu des tentatives avec Mathematica, puis l'environnement Matlab a pas mal démocratisé. Depuis c'est le langage Python qui grâce à des librairies dédiées est devenu très populaire dans ces domaines.
Le Web dynamique
Les première pages du Web était plutôt statiques avec le HTML. Le PHP a permis de dynamiser très facilement tout cela.
D'autres langages comme le Ruby, grâce à son framework Ruby On Rails, a lancé les frameworks de développement web avec l'architecture Modèle-Vue-Contrôleur.
Ca s'est pour le côté serveur. Sauf que du côté du navigateur, il fallait ajouter des petites animations pour rendre la page plus attrayante. C'est l'Ecmascript plus connu sous le nom de Javascript qui prend le monopole. Aujourd'hui à l'aide d'un service NodeJs on peut également écrire la partie serveur d'une application avec ce langage.
TypeScript et plus récemment Kotlin, sont capables de générer du JS lors de la compilation.
Les bases de données
Le SQL s'est imposé comme langage de référence pour interroger les bases de données. Oracle fait partie des pionniers. Mais ce langage s'est beaucoup popularisé avec MySql et Postgresql.
Chaque système de base de données dispose de son propre dialecte, mais la base reste commune.
SELECT nom, prenom FROM utilisateur WHERE id=5;