Pour répondre aux nombreux débats sur les langages hauts niveaux vs les langages bas niveaux.
En gros les langages de bas niveau nécessitent une attention à des aspects autres que le résultat final, par exemple la gestion de la mémoire. C'est une définition perso mais qui résume bien les distinctions entre les langages de programmation.
On peut aussi considérer qu'un langage de bas niveau permet de manipuler directement les registres, les adresses mémoires ou encore les instructions machines.
On peut également établir une corrélation entre le niveau d'un langage et l'emploi des abstractions. Un langage de bas niveau en aura forcément moins qu'un langage de haut niveau, voir pas du tout (ASM).
Enfin, il y a aussi le super-simplifié :
Je suis pas vraiment d'accord avec cette définition pour ce qui est du côté user-friendly (un algo de 20 fichiers écrit en PHP ne sera pas nécessairement plus simple à comprendre que le même écrit en C, justement à cause des abstractions) mais elle a le mérite d'être clair et d'avoir au moins une part de vérité.
Ce dont il faut bien se rappeler est que toute tentative de classification des langages de programmation sous forme de hierarchie du plus bas au plus haut niveau est nécessairement subjective et arbitraire.
En outre, dire que tel langage est de haut/bas niveau tout seul n'est pas très pertinent s'il n'est pas directement comparé à quelque chose. Le C est (très) bas niveau par rapport à PHP ou Python, mais il est aussi (très) haut niveau par rapport au langage machine.
Mais pour se donner une idée globale de la position des différents langages les uns par rapports aux autres :
Les langages de bas niveau
- ASM
- C
- C++
- C#
Les langages de moyen niveau
- Java
- Scala
- VB.NET
Les langages de haut niveau
- VB
- Perl
- Python
- PHP
- Javascript
- Ruby
Je ne mentionne que les langages que l'on utilise pour programmer, je ne classe donc pas le code machine et le binaire qui sont évidemment encore plus bas que l'ASM.
Les langages que je n'ai pas pu placer :
- ADA et A# : je les mettrais quelque part entre C++ et Scala, mais comme je suis pas sûr je les laisse pour le moment.
- Delphi et Delphi.NET : langages complexes qui présentent autant d'éléments de bas niveau que de haut niveau, du coup on pourrait les placer un peu n'importe où et ce serait quand même valide.
En gros les langages de bas niveau nécessitent une attention à des aspects autres que le résultat final, par exemple la gestion de la mémoire. C'est une définition perso mais qui résume bien les distinctions entre les langages de programmation.
On peut aussi considérer qu'un langage de bas niveau permet de manipuler directement les registres, les adresses mémoires ou encore les instructions machines.
On peut également établir une corrélation entre le niveau d'un langage et l'emploi des abstractions. Un langage de bas niveau en aura forcément moins qu'un langage de haut niveau, voir pas du tout (ASM).
Enfin, il y a aussi le super-simplifié :
bas niveau = programme rapide + code pas user-friendly
haut niveau = programme lent + code user-friendly
Je suis pas vraiment d'accord avec cette définition pour ce qui est du côté user-friendly (un algo de 20 fichiers écrit en PHP ne sera pas nécessairement plus simple à comprendre que le même écrit en C, justement à cause des abstractions) mais elle a le mérite d'être clair et d'avoir au moins une part de vérité.
Classement officiel des langages de programmation
Ce dont il faut bien se rappeler est que toute tentative de classification des langages de programmation sous forme de hierarchie du plus bas au plus haut niveau est nécessairement subjective et arbitraire.
En outre, dire que tel langage est de haut/bas niveau tout seul n'est pas très pertinent s'il n'est pas directement comparé à quelque chose. Le C est (très) bas niveau par rapport à PHP ou Python, mais il est aussi (très) haut niveau par rapport au langage machine.
Mais pour se donner une idée globale de la position des différents langages les uns par rapports aux autres :
Les langages de bas niveau
- ASM
- C
- C++
- C#
Les langages de moyen niveau
- Java
- Scala
- VB.NET
Les langages de haut niveau
- VB
- Perl
- Python
- PHP
- Javascript
- Ruby
Je ne mentionne que les langages que l'on utilise pour programmer, je ne classe donc pas le code machine et le binaire qui sont évidemment encore plus bas que l'ASM.
Les langages que je n'ai pas pu placer :
- ADA et A# : je les mettrais quelque part entre C++ et Scala, mais comme je suis pas sûr je les laisse pour le moment.
- Delphi et Delphi.NET : langages complexes qui présentent autant d'éléments de bas niveau que de haut niveau, du coup on pourrait les placer un peu n'importe où et ce serait quand même valide.