• Sep 26, 2024

Quel est le langage de programmation le plus difficile ?

    Si on met de côté les langages de programmation conçus juste pour le plaisir d'être très difficiles à apprendre comme le Malbolge, le Brainfuck ou encore Whitespace... il faut d'abord s'intéresser à la différence entre un langage de programmation de bas niveau et un langage de programmation de haut niveau pour répondre à cette question.

    Les langages de programmation de bas niveau

    Un langage de programmation de bas niveau va être étroitement lié au matériel sur lequel il va s'exécuter. Selon le type de processeur il faudra donc ajuster les instructions utilisées pour que le programme fonctionne sur celui-ci. Donc il faudra lire la documentation du processeur pour pouvoir écrire notre programme ! Pas vraiment facile ni pratique !

    Aussi, ces instructions ne vont permettre que de manipuler les registres du processeur et sa mémoire pour effectuer des tâches de base et créer notre programme informatique : c'est-à-dire qu'il va falloir faire tout nous-même. Si on veut utiliser une valeur dans une variable, il va falloir la placer dans un registre puis faire des actions spécifiques avec cette valeur et enfin stocker le résultat dans un autre registre puis en mémoire et enfin libérer cette mémoire quand on a fini de travailler avec. Quel enfer !

    Alors bien sûr, il y a des avantages à utiliser des langages de bas niveau : ça permet de faire des programmes taillés sur mesure pour un matériel donné qui vont s'exécuter très vite, qui consommeront peu de mémoire et qui seront donc très optimisés. On utilise des langages bas niveau pour des programmes à forte contrainte de mémoire ou qui nécessite des temps de réponse extrêmement rapides (spatial, aéronautique, jeux vidéos, système d'exploitation etc.).

    Le problème c'est qu'avec ce type de langage c'est beaucoup plus long de développer un programme et à chaque changement de matériel il faut revoir tout son programme pour l'adapter au processeur qui exécutera celui-ci !

    Voici quelques exemples de langage de programmation de bas niveau : le langage machine qui n'est qu'une suite de bits (des 0 et des 1) compris directement par le processeur ou le langage assembleur qui permet d'utiliser des instructions plus évoluées pour manipuler les registres et la mémoire du processeur de façon très précise.

    Les langages de programmation de haut niveau

    Au contraire des langages de programmation de bas niveau, les langages de programmation de haut niveau permettent une abstraction du matériel sur lequel on exécute le programme.

    Autrement dit, on utilisera un langage qui n'est pas spécifique au processeur sur lequel on va exécuter notre programme : cela permet donc de coder une seule fois pour toutes les architectures matérielles existantes ! Quel bénéfice immense.

    On n'a donc pas besoin de lire la documentation du processeur pour rédiger notre programme.

    Aussi, les langages de programmation de haut niveau se rapprochent beaucoup plus des langages naturels que les langages de programmation de bas niveau ce qui en fait des langages plus faciles à apprendre. Et ils nous facilitent grandement la tâche car ils offrent une boîte à outils incroyable pour rédiger des programmes plus facilement et plus rapidement.

    Quelques exemples de langages de programmation de haut niveau : le JavaScript, le Python, le Java, le PHP, le Ruby, le C/C++ (même si on pourrait le mettre dans les 2 niveaux car il permet de faire aussi du bas niveau).

    Conclusion

    Hormis les langages conçus pour le divertissement et leur difficulté d'apprentissage, si on cherche le langage de programmation le plus difficile à apprendre mais aussi utile dans le monde d'aujourd'hui je pencherai pour le langage assembleur.

    En effet celui-ci reste très primaire mais néanmoins accessible pour une personne très motivée.

    Aussi, certains langages de programmation utilisent des paradigmes de programmation pas vraiment classiques qui nécessitent de repenser la façon dont on a de programmer. Je pense notamment au langage fonctionnel Haskell qui retourne en général le cerveau les premières fois qu'on en fait.

    Bien évidemment, si vous débutez, je vous conseille d'apprendre un langage de haut niveau comme le langage JavaScript car c'est un langage très polyvalent qui vous permettra de faire des sites ou applications web, des apps mobiles, des jeux vidéos et plein d'autres choses.

    Il faut se poser la question de votre besoin pour choisir le bon langage de programmation, j'ai écrit un article à ce sujet que je vous invite à lire : quel langage de programmation choisir en 2025 ?

    0 comments

    Sign upor login to leave a comment