Inconvénients des langages de haut niveau
Introduction
En programmation, on distingue langages de bas niveau (proches du matériel : assembleur, C) et langages de haut niveau (abstraction matérielle : Python, Java, C#). L'abstraction accélère l'écriture et la lecture, mais a des coûts.
1. Abstraction et accès système
Les langages haut niveau gèrent la mémoire, les threads, les E/S pour le développeur. Gain de productivité. Inconvénient : quand un accès bas niveau est nécessaire (pilotes, OS, temps réel), le langage ne le permet pas ou mal. Inadaptés à la programmation système.
2. Vitesse d'exécution
Majorité = langages interprétés (exécution ligne par ligne via un interpréteur lui-même écrit en langage compilé, ex. CPython en C). Surcharge mémoire et CPU → exécution plus lente que du code natif compilé. Just-In-Time (JIT) atténue mais ne comble pas tout l'écart.
3. Pécularités système
Portabilité = atout apparent (même code sur tout OS avec interpréteur). Mais le code compilé natif est optimisé pour l'environnement cible (CPU, cache, instructions). Le code interprété ne « connaît » le système qu'à travers l'interpréteur → optimisations manquantes.
4. Limites de programmation
Sans accès direct aux ressources : difficile de créer des applications natives rapides, des OS, des moteurs de jeu haute performance. Moins critique pour le web/cloud, mais problématique en industriel/embarqué/jeu AAA où la performance brute et le contrôle matériel sont requis.
