Python, Go, Symfony, Kotlin : une fiche de poste technique aligne des noms
qui ne désignent pas tous la même chose. Cette page en fait une carte. Vous y
voyez d'un coup d'œil à quoi sert chaque langage, ce qui se ressemble, ce qui
n'a rien à voir, et quel profil de développeur va avec.
La carte des langages
Matrice des langages de programmation
Chaque langage est posé dans le territoire où il travaille le plus souvent,
et réapparaît dans ceux où il intervient aussi : c'est là que se joue la
polyvalence d'un profil. Cliquez un langage pour ouvrir sa fiche plus bas.
Aucun classement n'est parfait : Python fait tourner autant d'API que de modèles
d'intelligence artificielle, et JavaScript a quitté le navigateur depuis longtemps.
Le territoire indique où le langage est majoritairement recruté, pas où il est
techniquement capable d'aller.
Les langages, un par un
Ce que fait le langage, d'où il vient, ce qu'on écrit avec, et la fiche métier
du profil qui le pratique.
JavaScript
Brendan Eich, chez Netscape
1995
Le seul langage que tous les navigateurs comprennent, donc le passage obligé de toute interface web. Depuis Node.js, il tourne aussi côté serveur : c'est ce qui permet à une même personne de couvrir le front et le back.
Du JavaScript auquel on ajoute des types. Le code final reste du JavaScript, mais les erreurs de manipulation de données apparaissent à l'écriture plutôt qu'en production. C'est devenu le standard des projets qui dépassent quelques milliers de lignes.
HTML décrit la structure d'une page, CSS son apparence. Aucun des deux ne sait calculer ni décider, ce ne sont donc pas des langages de programmation. Ils restent le socle que tout développeur front maîtrise.
Le langage le plus polyvalent du marché : il sert à construire des API, à traiter des données et à entraîner des modèles d'intelligence artificielle. C'est cette double vie qui en fait le premier réflexe des équipes techniques en création.
Le langage des systèmes serveur qui doivent tenir la charge et durer dix ans. Omniprésent dans la banque, l'assurance, la logistique et les scale-ups qui ont dépassé le stade artisanal.
La réponse de Microsoft à Java. Il sert surtout à construire des back-ends et des API sur la plateforme .NET, mais il fait aussi tourner une bonne partie des jeux vidéo via Unity.
Il fait tourner une part considérable du web existant, de WordPress aux plateformes e-commerce. Sa réputation traîne des versions vieilles de quinze ans : Symfony et Laravel en ont fait un environnement moderne.
Presque toujours utilisé à travers Ruby on Rails, qui privilégie la vitesse de construction. C'est le langage sur lequel Shopify, GitHub et une génération entière de startups ont été lancés.
Robert Griesemer, Rob Pike et Ken Thompson, chez Google
2009 version 1.0 en 2012
Conçu pour les services qui doivent traiter des milliers de requêtes simultanées sans s'écrouler. C'est le langage de Docker et de Kubernetes, donc celui d'une grande partie de l'infrastructure moderne.
Bâti sur la machine virtuelle d'Erlang, il vise les applications temps réel : messagerie, notifications, tableaux de bord vivants. Peu répandu, mais très apprécié de ceux qui l'utilisent.
Typage : Dynamique
Phoenix
LiveView
Ecto
Swift
Chris Lattner, chez Apple
2014
Le langage des applications iPhone et iPad. Apple l'a imposé en quelques années à la place d'Objective-C, et c'est aujourd'hui le seul choix raisonnable pour une application Apple native.
Le langage officiel du développement Android depuis 2019. Il tourne sur la même machine virtuelle que Java, ce qui lui ouvre aussi la porte du back-end.
Le langage historique d'Apple, remplacé par Swift. Il reste présent dans les applications lancées avant 2015 : un développeur iOS senior le lit encore, même s'il n'écrit plus de nouveau code avec.
Existe essentiellement pour Flutter, le framework qui produit une application iOS et une application Android à partir d'un seul code. Le compromis classique du cross-platform : une équipe au lieu de deux, contre un peu de finesse en moins.
Le langage pour interroger une base de données. On ne lui décrit pas comment chercher, seulement ce que l'on veut. Cinquante ans après, il reste la compétence la plus transversale d'une équipe technique.
Ross Ihaka et Robert Gentleman, à l'université d'Auckland
1993
Le langage des statisticiens, conçu pour l'analyse et la visualisation plutôt que pour construire des produits. Encore dominant en recherche, en pharmacie et dans les études, souvent en complément de Python.
Un langage qui mélange objet et fonctionnel sur la machine virtuelle Java. Il doit sa présence dans les équipes data à Apache Spark, écrit avec lui, qui traite les très gros volumes.
Pensé pour le calcul scientifique : la lisibilité de Python avec des performances proches du C. Sa communauté reste académique, mais elle progresse en finance quantitative et en simulation.
Typage : Dynamique, compilé à la volée
Flux.jl
DifferentialEquations.jl
MATLAB
Cleve Moler, puis MathWorks
1984
L'outil de référence des écoles d'ingénieurs et des bureaux d'études : traitement du signal, automatique, simulation. Payant et propriétaire, ce qui explique sa rareté en startup.
Le langage sur lequel repose à peu près tout le reste : Linux, Windows, les bases de données, les interpréteurs de Python et de PHP. Il donne un contrôle total sur la mémoire, et toute la responsabilité qui va avec.
Le C augmenté de l'objet et d'une bibliothèque considérable. Il règne là où chaque milliseconde compte : jeux vidéo, finance de marché, robotique, moteurs de calcul.
Il offre les performances du C++ tout en rendant impossibles, à la compilation, les erreurs de mémoire qui causent la majorité des failles de sécurité. Le compilateur est exigeant : la contrepartie est un code qui ne plante pas la nuit.
Une tentative de remplacer le C sans la complexité de Rust : gestion explicite de la mémoire, compilation croisée simple. Encore jeune, à réserver aux équipes qui savent pourquoi elles le choisissent.
Typage : Statique, sans ramasse-miettes
Ada
Jean Ichbiah, pour le département de la Défense américain
1980
Conçu pour les systèmes où une panne coûte des vies : aviation, ferroviaire, spatial, défense. Très présent dans l'industrie française, avec un vivier restreint et fidèle.
La traduction directe des instructions du processeur. Presque plus personne n'écrit d'application avec, mais on le lit encore pour optimiser une boucle critique, écrire un pilote ou analyser un logiciel malveillant.
Typage : Sans objet
Haskell
Un comité de chercheurs universitaires
1990
Le fonctionnel dans sa forme la plus pure : pas d'effet de bord caché, un système de types qui attrape énormément d'erreurs avant l'exécution. Rare en entreprise, décisif quand la justesse du calcul prime.
Typage : Statique, inféré
Yesod
Servant
Erlang
Joe Armstrong et son équipe, chez Ericsson
1986
Créé pour les centraux téléphoniques, donc pour des systèmes qui ne s'arrêtent jamais. Il sait redémarrer une partie de l'application sans couper le reste, principe qui a fait la robustesse de WhatsApp.
Typage : Dynamique
OTP
RabbitMQ
Clojure
Rich Hickey
2007
Un dialecte de Lisp qui tourne sur la machine virtuelle Java. Données immuables et code très concis : apprécié en finance et dans les équipes qui manipulent des transformations de données complexes.
Typage : Dynamique
Ring
Datomic
OCaml
L'Inria, en France
1996
Une fierté française, enseignée dans les classes préparatoires et utilisée là où l'on ne peut pas se permettre un bug : vérification de programmes, salles de marché, compilateurs.
Typage : Statique, inféré
Dune
ReasonML
F#
Don Syme, chez Microsoft Research
2005
Le fonctionnel dans l'univers .NET. Il partage tout l'écosystème de C#, ce qui permet de l'introduire sur un module précis sans refondre l'application.
Typage : Statique, inféré
.NET
Giraffe
Bash et Shell
Brian Fox, pour le projet GNU
1989
Le langage de la ligne de commande sous Linux et macOS. Chaque script de déploiement, chaque tâche planifiée et chaque étape d'intégration continue en contient. Compétence implicite de tout profil DevOps.
L'équivalent du shell dans le monde Windows, mais orienté objet plutôt que texte. Central dans l'administration des parcs Microsoft, des serveurs Active Directory et d'Azure.
Le couteau suisse du traitement de texte des années 1990, largement remplacé par Python. Il survit dans l'administration système, la bio-informatique et de vieux scripts que personne n'ose réécrire.
Typage : Dynamique
CPAN
Mojolicious
Lua
L'université pontificale catholique de Rio, au Brésil
1993
Minuscule et rapide, conçu pour être embarqué dans un autre programme. Il pilote les règles de jeu de Roblox et de World of Warcraft, la configuration de Neovim et une partie des passerelles réseau.
Typage : Dynamique
LÖVE
OpenResty
Roblox
Groovy
James Strachan
2003
Un langage de script sur la machine virtuelle Java. On le rencontre surtout par la bande : les fichiers de build Gradle et les pipelines Jenkins sont écrits avec.
Le langage des macros Excel. Rarement enseigné, massivement utilisé : une part importante des processus financiers et des reportings d'entreprise repose encore dessus.
Typage : Dynamique
Excel
Access
COBOL
Le comité CODASYL, inspiré des travaux de Grace Hopper
1959
Il fait toujours tourner les systèmes centraux des banques, des assurances et des administrations. Les développeurs qui le maîtrisent partent en retraite plus vite qu'on n'en forme, ce qui en fait une compétence chère et recherchée.
Typage : Statique
CICS
IBM z/OS
Fortran
John Backus, chez IBM
1957
Le premier langage de haut niveau de l'histoire, et toujours le plus rapide en calcul numérique intensif. Météorologie, physique et simulation continuent de l'utiliser, souvent sous une interface Python.
Typage : Statique
LAPACK
OpenMP
Delphi et Pascal
Niklaus Wirth, puis Borland
1970 Delphi en 1995
Pascal a formé des générations d'étudiants ; Delphi a produit des milliers de logiciels métier Windows dans les années 1990. Beaucoup tournent encore, avec de moins en moins de personnes pour les maintenir.
Typage : Statique
VCL
Lazarus
ABAP
SAP
1983
Le langage propre à SAP, donc à la personnalisation des progiciels de gestion des grands groupes. Un marché fermé, très bien rémunéré, sans rapport avec l'écosystème startup.
Typage : Statique
SAP S/4HANA
Fiori
Solidity
Gavin Wood et l'équipe Ethereum
2014
Le langage des contrats intelligents sur Ethereum. Particularité rare : un contrat déployé ne se corrige pas, ce qui rend l'audit du code aussi important que son écriture.
Typage : Statique
Hardhat
Foundry
OpenZeppelin
Aucun langage ne correspond à cette recherche.
Soixante-dix ans en une frise
Presque rien ne disparaît. Les langages des années 1950 font toujours tourner
des banques, et ceux des années 1990 dominent encore les offres d'emploi. La
question utile n'est donc pas l'âge d'une technologie, mais la taille du vivier
qui sait encore la lire.
Avant 1970 3
Années 70 3
Années 80 8
Années 90 11
Années 2000 7
Depuis 2010 9
Les stacks que nous recrutons
Retrouvez toutes les fiches métiers par langage et framework, en back-end,
front-end et mobile, pour comparer les profils avant de recruter votre
développeur.
Langage, framework, bibliothèque : la distinction qui compte
Le langage est la grammaire. Le framework est la boîte à outils écrite avec cette
grammaire, qui impose une façon de construire. La bibliothèque, elle, résout un
problème précis sans rien imposer. C'est une nuance de vocabulaire, mais elle
change ce que vous écrivez dans une annonce : exiger « 5 ans de
Symfony » et exiger « 5 ans de PHP » ne s'adresse pas au même
vivier.
Interfaces web
React
JavaScript, TypeScript
La bibliothèque d'interface la plus demandée du marché. Techniquement une bibliothèque et non un framework, mais son écosystème en fait un choix structurant.
Ce que nous voyons chaque semaine sur les recrutements techniques que nous
menons pour nos clients.
01
La liste de technologies n'est pas un cahier des charges
Une annonce qui empile quinze mots-clés fait fuir les profils solides, qui se
savent incomplets sur la liste, et attire ceux qui cochent des cases. Trois
technologies vraiment structurantes suffisent ; le reste s'apprend.
02
Le vivier compte plus que la popularité
Un langage très aimé mais peu répandu, comme Elixir ou Rust, allonge le délai
de recrutement de plusieurs mois. C'est un choix légitime, à condition de
l'assumer dans le calendrier et dans la fourchette de salaire.
03
La proximité entre langages est réelle
Un développeur Java passe à Kotlin ou à C# sans douleur, un profil PHP à
Python également. La bascule est bien plus lourde vers un langage système ou
vers le fonctionnel : ce n'est pas la syntaxe qui change, c'est la façon
de raisonner.
04
Le langage se voit, la qualité du code ne se voit pas
Tests, revue de code, gestion des erreurs, lisibilité : rien de tout cela
n'apparaît dans une liste de technologies, et c'est pourtant ce qui distingue
deux candidats à compétences déclarées identiques.
05
Avec l'IA, le langage compte de moins en moins
C'est le changement le plus net de ces deux années. Avec les assistants de
code, la syntaxe d'un langage inconnu, la signature d'une fonction ou la
façon d'écrire une boucle ne coûtent plus rien à retrouver. Un bon
développeur qui bascule de Java à Go, ou de PHP à Python, est aujourd'hui
productif en semaines là où il lui fallait des mois. Exiger le langage exact
divise votre vivier par deux pour un avantage qui fond.
Attention à ne pas en tirer la conclusion inverse : l'IA a fait baisser
le prix de la syntaxe, pas celui du jugement. Décider d'une architecture,
comprendre pourquoi un service tombe en production, sentir qu'une
bibliothèque va poser problème dans six mois, arbitrer une dette
technique : rien de tout cela ne s'autocomplète. Le langage n'a jamais été la partie
difficile du métier. Il en était juste la partie visible, et c'est celle qui
se démonétise.
Les profils qui écrivent ce code
À chaque technologie correspond un marché, un niveau de tension et une grille
de salaire. Nos fiches métiers détaillent les missions, les critères
d'évaluation en entretien et les fourchettes constatées.
Les développeurs généralistes
Quand le poste se définit par un périmètre plutôt que par une technologie.
Quelle est la différence entre un langage et un framework ?
Le langage est la grammaire, le framework est la boîte à outils écrite avec cette grammaire. Symfony est un framework PHP, React une bibliothèque JavaScript, Spring Boot un framework Java. Un développeur peut changer de framework en quelques semaines dans un langage qu'il connaît ; changer de langage prend plusieurs mois.
Combien de langages un développeur maîtrise-t-il réellement ?
Un ou deux en profondeur, trois ou quatre en lecture. Une candidature qui affiche douze technologies décrit une exposition, pas une maîtrise. C'est un signal à creuser en entretien plutôt qu'un argument à retenir : demandez sur quel langage la personne serait à l'aise pour reprendre du code écrit par quelqu'un d'autre.
Faut-il recruter sur le langage ou sur le profil ?
Sur le profil, sauf urgence de production. Un bon développeur devient opérationnel dans un nouveau langage de la même famille en six à huit semaines, et les assistants de code ont encore raccourci ce délai : la syntaxe et les signatures de fonctions ne s'apprennent plus, elles se demandent. Exiger le langage exact réduit votre vivier de moitié pour un gain qui se compte désormais en semaines, et vous fait passer à côté de profils plus solides. L'exception : les langages à raisonnement particulier, comme Rust, Elixir ou Haskell, où c'est la façon de penser le programme qui change, et là aucun assistant ne raccourcit l'apprentissage.
HTML et CSS sont-ils des langages de programmation ?
Non. HTML décrit la structure d'une page et CSS son apparence : ni l'un ni l'autre ne sait effectuer un calcul ni prendre une décision. Ce sont des langages de balisage et de style. Ils restent indispensables à tout profil front-end, aux côtés de JavaScript qui, lui, programme.
Quels langages sont les plus tendus en recrutement en France ?
Les tensions viennent moins de la popularité du langage que de la taille du vivier. Rust, Elixir, Scala et Ada comptent peu de profils expérimentés en France, les délais dépassent souvent trois mois. Java, Python, PHP et JavaScript ont des viviers larges, mais la concurrence sur les meilleurs profils y reste forte. COBOL et ABAP forment un cas à part : peu de candidats, peu de formation, et des rémunérations qui montent en conséquence.
Un langage ancien est-il un mauvais choix technique ?
Rarement. L'âge d'un langage dit surtout que son écosystème est mature et que la documentation existe. Ce qui pose problème, c'est un langage sans communauté active ni relève, parce que le recrutement devient alors le vrai risque du projet. Un projet Java lancé aujourd'hui est un choix banal ; un projet Delphi lancé aujourd'hui est une décision qu'il faut pouvoir justifier.
Un poste technique à ouvrir ?
Dites-nous la stack et le contexte, nous revenons avec une short list sous 7 jours.