Les langages
Un langage de programmation est un langage formel qui permet de spécifier des algorithmes et de les traduire en instructions compréhensibles par une machine. Il existe de nombreux langages de programmation, chacun ayant ses propres caractéristiques, avantages et inconvénients. Le choix du langage dépend souvent du domaine d’application, des préférences personnelles, des performances requises, etc.
L’adoption d’un langage de programmation est un processus complexe qui dépend de nombreux facteurs, notamment la popularité du langage, la disponibilité de bibliothèques et d’outils, la communauté de développeurs, les performances, etc. En juin 2026, les langages de programmation les plus populaires sont Python, Java, C++, C et JavaScript selon différents classements.
Python, 2. C, 3. C++ TIOBE ;
Python, 2. Java, 3. C++ IEEE Spectrum ;
Python, 2. Java, 3. C/C++ PYPL ;
TypeScript, 2. Python, 3. JavaScript, GitHub ;
Caractéristiques des langages
Python est un langage interprété haut niveau. Par comparaison avec C et Java, le temps de développement est réduit et le temps d’exécution plus important. Cependant ce dernier peut être drastiquement réduit en utilisant des bibliothèques spécifiques. Python produit du bytecode, un code intermédiaire entre les instructions machines et le code source. Ce bytecode est exécuté sur une machine virtuelle fournie par le langage, ce qui le rend portable vers plusieurs architectures. Le bytecode est produit et compilé en langage machine sur le disque pendant l’exécution . Python est typé dynamiquement ce qui introduit de la souplesse de programmation mais impose certaines vérifications pendant l’exécution au détriment de la vitesse d’exécution. Python est dans le top 3 des langages de programmation de tous les classements et est le langage de programmation le plus populaire pour l’enseignement de l’informatique dans les universités et les écoles d’ingénieurs.
Java est un langage compilé haut niveau. Java produit également du bytecode. Le bytecode est produit avant l’exécution puis compilé en langage machine directement en mémoire pendant l’exécution. Java est typé statiquement ce qui accélère la vitesse d’exécution au détriment de la souplesse de programmation.
C est un langage compilé bas niveau. Le compilateur transforme les instructions en un code machine propre à l’environnement. Le code source n’est pas portable et doit être recompilé pour différents environnements d’exécution. Il est adapté à des contextes où le temps d’exécution est important et/ou la taille mémoire est critique. Sa programmation est plus complexe puisqu’elle donne accès directement à la mémoire. C’est aussi le langage le plus économe en énergie.
C++ est un langage compilé haut niveau. C++ est une extension de C qui ajoute des fonctionnalités orientées objet et d’autres améliorations. C++ produit du code machine directement à partir du code source, ce qui le rend rapide et efficace. C++ est typé statiquement ce qui accélère la vitesse d’exécution au détriment de la souplesse de programmation.
JavaScript est un langage interprété haut niveau. JavaScript est principalement utilisé pour le développement web, mais il est également utilisé pour d’autres types d’applications. JavaScript est interprété par les navigateurs web, ce qui le rend portable vers tous les environnements qui supportent les navigateurs. JavaScript est typé dynamiquement ce qui introduit de la souplesse de programmation mais impose certaines vérifications pendant l’exécution au détriment de la vitesse d’exécution.
TypeScript est un langage compilé haut niveau. TypeScript est une extension de JavaScript qui ajoute des fonctionnalités de typage statique et d’autres améliorations. TypeScript est compilé en JavaScript, ce qui le rend portable vers tous les environnements qui supportent JavaScript. TypeScript est typé statiquement ce qui accélère la vitesse d’exécution au détriment de la souplesse de programmation.
Java et Python produisent tous les deux du bytecode
C++ est un langage bas niveau
C offre un contrôle direct sur la mémoire
JavaScript est interprété par les navigateurs web
TypeScript est compilé en Python
est le langage le plus économe en énergie.
Le code intermédiaire exécuté sur une machine virtuelle s’appelle du
Le typage de C++ est de type
Python
Une vidéo d’introduction…
Python est un langage qui permet rapidement de produire du code efficace. Il possède une courbe d’apprentissage intéressante car on est rapidement opérationnel et l’acquisition de notions nouvelles se fait de façon assez fluide.
Python est un langage objet de haut niveau destiné à écrire rapidement des applications dans tous les domaines de l’ingénierie (web, calcul scientifique, cartographie, traitement de données, manipulations de fichiers, etc…).
Python est un langage haut niveau
Python produit du bytecode
Python est un langage compilé
Python est typé dynamiquement
Python offre un contrôle direct sur la mémoire
Le code Python est plus compact que le code C
Python (standard) est plus rapide que C
L’utilisation de modules spécialisés accélère Python
Python permet un gain de temps significatif pour la conception des programmes
Langage C
C est un langage de programmation bas niveau, qui offre un contrôle direct sur la mémoire et les ressources système. C est souvent utilisé pour le développement de systèmes d’exploitation, de pilotes de périphériques, de logiciels embarqués et d’autres applications nécessitant des performances élevées. C est un langage compilé, ce qui signifie que le code source doit être transformé en code machine avant d’être exécuté. C est typé statiquement, ce qui signifie que les types de données doivent être déclarés explicitement et vérifiés à la compilation.
C est un langage bas niveau
C produit du code exécutable à partir du code source
C est un langage compilé
C est typé statiquement
C offre un contrôle direct sur la mémoire
Le code C est plus compact que le code Python
C (standard) est plus rapide que Python
C permet un gain de temps significatif pour la conception des programmes
Performances
Par rapport au langage C, la simplicité de programmation de Python :
est obtenue en échange d’un temps d’exécution généralement plus long ;
mais offre un gain significatif pour le temps de développement du programme.
Le temps d’exécution
Il est complexe de quantifier universellement la vitesse d’exécution des langages, qui dépend grandement du problème à traiter.
Pour un problème de comptage de mots les performances suivantes ont été relevées.
Language |
Solution naïve |
Solution optimisée |
|---|---|---|
C |
0.96 |
0.23 |
Java |
1.40 |
1.34 |
Python |
2.21 |
1.33 |
Pour un problème combinatoire, la version standard de Python est nettement plus lente. Par contre l’utilisation du module spécialisé itertools apporte un gain significatif.
Language |
Temps de calcul |
|---|---|
C++ naïf |
2.42 |
Python (standard) |
61.2 |
Python (optimisé) |
0.09 |
Quelques stratégies pour accélérer le langage Python:
l’utilisation de modules spécialisés de la bibliothèque standard ;
le recours à des packages externes. Par exemple Numpy, « a Python library that provides a multidimensional array object […] and an assortment of routines for fast operations on arrays » ;
le recours à des accélateurs. Par exemple Numba « which translates Python functions to optimized machine code at runtime » ;
l’utilisation d’implémentations de Python alternatives à CPython, qui est l’implémentation par défaut. Par exemple Pypy « a fast, compliant alternative implementation of Python ».
Le lecteur intéressé par l’optimisation des performances pourra se pencher sur l’ouvrage de Micha Gorelick & Ian Ozsvald : High Performance Python.
Python est plus lent que C pour la plupart des problèmes
L’utilisation de modules spécialisés peut accélérer significativement Python
Pour un problème combinatoire, le module spécialisé qui apporte un gain significatif en Python est
Numpy est une bibliothèque externe qui permet d’accélérer Python
est une implémentation alternative de Python plus rapide que CPython.
Le temps de développement
Comparé à C et Java, le temps de développement d’un programme Python est significativement réduit comme le montre l’article An empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl for a search/string-processing program. L’une des principales conclusions montre que le temps de développement est réduit d’un facteur proche de 3 par rapport à Java ou C.
D’autres métriques extraites du même article sont disponibles ici.
Avertissement
Le graphique ci dessus est basé sur du code produit par la seule intelligence humaine. Aujourd’hui, le temps de développement est fortement impacté par l’émergence de l’IA générative, qui permet de réduire considérablement le temps nécessaire pour produire du code fonctionnel quel que soit le langage.
Python permet un développement plus rapide que C et Java
Le temps de développement est réalisé d’un facteur 10 entre Python et C
Le temps de développement en Python est réduit d’un facteur comparé à Java.
L’article original est basé sur du code produit par la seule
L’IA générative impacte maintenant significativement le temps de développement