Back to Top

Les différents langages de programmation

Des langages à la pelle

Des langages de programmation, il y en a plein. Voilà, merci d’avoir lu et n’oubliez pas de partager !
Plus sérieusement, il est tout simplement impossible de présenter tous les langages. Et ça, c’est une bonne chose pour nous
. D’un côté je n’ai pas à écrire une série de livre a la place de cet article. De l’autre, ça nous permet de ne pas avoir à connaitre une centaine de langages pour être efficace dans notre travail. Il est néanmoins important de saisir les différences d’approches entre les langages. Vous saurez ainsi lequel apprendre en fonction de vos objectifs.

Les différents langages de programmation
Les (très) nombreux langages !

Sans partir dans une liste des différents paradigmes existant (Wikipédia est là pour ça), on peut simplifier le paysage informatique. Nous allons donc résumer énormément, en disant qu’en programmation, on peut soit expliquer comment résoudre un problème, soit expliquer le problème et laisser notre machine se débrouiller. Par exemple, en Java, en C, ou pour les plus fous en Assembleur, on décrit ce que notre programme va faire. C’est encore plus visible en Assembleur ou l’on spécifie même les zones mémoires utilisées. Je ne vous ferais pas l’affront de vous décrire le fonctionnement d’un code impératif ou orienté objet, si vous êtes ici c’est que ces notions vous parlent un minimum. Mais beaucoup de programmeurs ne savent tout simplement pas que d’autres approches existent, et sont parfois plus adaptées. Prenons la programmation dirigée par les évènements. Elle est par exemple possible en C# ou en Java. Cela permet de réagir à des évènements externes au programme (comme l’utilisateur qui clique frénétiquement n’importe où sur un écran) ou interne, comme le changement de valeur d’un élément mutable.

Et maintenant vous vous dites qu’apprendre un grand nombre de langage va vous permettre d’être meilleur dans la programmation en vous adaptant à toutes les problématiques. Et vous avez raison. Mais des langages, comme je l’ai dit, il y en a vraiment beaucoup, il faut donc faire des choix. Par exemple, prenons la programmation par contrainte. Cette vision du développement permet de décrire le problème que l’on cherche à résoudre comme un ensemble de valeur, contraintes par leurs ensembles de valeurs possibles (leurs ensembles de définition) et qui peuvent être liée les unes aux autres. L’on peut définir ainsi très facilement un sudoku, tout simplement en décrivant les règles du jeu.

Je suis d’accord avec vous, c’est vraiment très cool comme technique. La théorie permettant de passer d’un ensemble de règle a une solution, sans attendre des millions d’années de calcul, est passionnante à étudier. Il n’empêche que devenir un gourou d’une sombre bibliothèque Java ou Python n’est pas le meilleur investissement professionnel. De plus, apprendre le Prolog peut aussi être intéressant, mais ce n’est pas vraiment le langage le plus utilisé dans l’industrie.

Le bon investissement réside potentiellement dans la programmation fonctionnelle. Alors oui, c’est un truc de matheux, créé par des matheux, mais l’on peut considérer que Church n’est pas vraiment un mauvais. Quand à McCarthy, il est, à la vue de sa production, un génie. Donc quand l’un créé un langage basé sur le λ-calcul de l’autre, le résultat ne peut-être que bon. Alors forcément, les mathématiques, c’est un peu lourd. Crées pour les gens bizarres qui sniffent de la craie ou des Vellédas dans des amphis. Cependant, ça produit aussi du code parmi le plus fiable possible. On remplace la suite d’instructions par un ensemble de fonctions, les arguments peuvent aussi être des fonctions, bref, tout est fonction. Si ça peut vous pousser à vous y intéresser, la récursivité vient de là.

Alors, point négatif pour ceux qui viennent de la programmation « normale », mais qui est en fait le point positif du paradigme, c’est que rien ne peut être modifié. Vous pouvez oublier les variables que l’on modifie. Il n’y a qu’un amas de fonctions s’appelant les unes les autres, et la sécurité vient justement de là. De fait, sans variable, impossible de modifier une valeur « sans le vouloir » puisque la modification est impossible. La mutabilité posait problème, ils l’ont juste enlevée, oui c’est formidablement évident, et c’est pour ça que c’est génial.

Dans ces langages, je citerais Haskell, un vrai langage fonctionnel, sans feinte possible. J’en proposerais ensuite deux autres pour débuter plus en douceur, à savoir Scala pour les afficionados de la JVM et F# pour ceux de .NET, qui permettent de mélanger les styles « habituels » et fonctionnels. Ou OCaml pour les nationalistes du code.

Donc, s’il n’y avait qu’une seule chose à retenir, c’est de diversifier vos connaissances. Le Java ou le PHP c’est bien, mais le Java et un langage complètement diffèrent c’est mieux. Ceci vaut le coup, ne serait-ce que pour avoir un panel d’outils plus large.
Ou sinon vous programmez en Python. Ce dernier a des prémices fonctionnelles, une programmation objet poussée, et toute une palanquée de modules pour gérer bien d’autres paradigmes. Mais ça, ce sera pour un autre article.

Par Clément Caffin


Random_content()

Rechercher:





Suis-nous sur les réseaux sociaux!

Instagram

S'abonner