Top 10 des langages de programmation en 2021
L‘écosystème de la programmation informatique a toujours été et continue d’être en mouvance constante : évolutions technologiques, évolutions sociales, et toujours une myriade de possibilités de programmation entre les préférences de l’utilisateur et les divers interfaces disponibles.
Alors quels sont les langages de programmation les plus largement utilisés ? Pourquoi il en existe autant ? Quelles évolutions va-t-on pouvoir constater d’ici à 2030 ? C’est ce qu’on va découvrir dans cet article.
Que vous soyez un développeur en herbe ou expert de plusieurs technologies, laissez-vous guider parmi notre dossier sur les langages de programmation les plus utilisés en 2021, on fait le point sur la situation !
Pourquoi autant de langages de programmation existent ?
Comme dit précédemment, les modes de pensées évoluent en continu, ce qui confère à l’outil technologique le climat idéal pour une diversité maximale.
Mais ça n’a pas toujours été comme ça.
Aux prémices de la programmation informatique, le code des premiers ordinateurs était métaphoriquement à l’âge de pierre dû à leur utilisation difficile et une certaine complexité pour rentrer dans l’ordinateur.
Pour répondre à cette complexité d’utilisation, les programmateurs ont attribué aux machines des mots-clés pour simplifier l’usage (tels que “add”, ‘call”, “load”). C’est de cette manière que sont nés les langages d’assemblage : le langage de plus bas niveau qui représente le langage machine sous une forme lisible par un humain.
Après une étude approfondie des programmes en langage assembleur, ils ont déterminé un langage et donné au programme des séquences d’informations. Ce sont des boucles, des conditions, des variables et des fonctions, sous des termes génériques tels que “if”, “while”, “let”. Et c’est ainsi que les langages de programmation procéduraux ont vu le jour.
Ainsi, les langages fonctionnels découlent surtout d’analyse mathématiques de programmes informatiques. C’est la pierre angulaire pour chaque concepteur de programme, qui a ses propres idées du fonctionnement et de l’apparence de leur langage informatique parfait.
C’est dans cette logique qu’on constate une multitude de langages et de frameworks. (comme Adam Wathan avec son fabuleux Tailwind CSS)
Certains ont été développés et pensés dans le but d’être plus performant, d’autres pour éviter le plus d’erreurs de code, de réduire l’utilisation de la mémoire utilisée, ou encore essayer de réduire au maximum les tâches fastidieuses de la routine du développeur.
C’est là qu’est tout l’intérêt d’avoir une diversité au sein de la programmation informatique, pour que chacun puisse utiliser les ressources qui lui sont les plus adaptées selon les besoins ou le projet.
Top 10 des langages de programmation en 2021
- Python
- Java
- C
- C++
- Javascript
- C#
- R
- Go
- HTML
- Swift
L’étude annuelle Spectre IEEE a sondé le marché des développeurs basé sur 11 métriques provenant de huit sources variées : CareerBuilder , GitHub , Google , Hacker News , l’ IEEE , Reddit , Stack Overflow et Twitter.
Alors comment ça marche ? Ce classement représente l’ensemble des langages de programmation les plus utilisés. Il prends en compte toutes les sources citées ci-dessus et s’étends sur tous les types de langages :
- Web : site web et applications,
- Mobile : appareils mobiles,
- Bureau : application d’entreprise, de bureau et scientifique,
- Embarqué : programmation des contrôleurs d’appareils
Pour étudier dans son ensemble l’environnement des langages de programmation, le classement est personnalisable : On peut notamment retirer des sources d’information, ou se focaliser uniquement sur certains types de langages.
Une brève analyse
Attention toutefois, certains de ces métriques sont impactés directement par des sources externes comme les réseaux sociaux, ce qui peut influencer certains langages du classement.
En effet, utiliser Twitter comme levier aurait fait passer Cobol de la 7ème à la 34ème position du classement en 2020.
La raison est simple, l’entreprise devient virale sur le réseau social suite aux appels des responsables gouvernementaux qui avaient besoin de mettre à jour les systèmes hérités face à la pandémie de Covid-19, ce qui a provoqué l’affluence vers ce langage pendant une courte période.
L’analyse de l’environnement montre également que C# passe de la 25ème à la 7ème cette année, ce qui est probablement dû à l’arrivée de la version 9.0 fin 2020 ainsi qu’une forte appétence pour les systèmes distribués, couplé à l’arrivée de Windows 11.

Et pour l'avenir ?
Selon l’étude Le futur de l’emploi en Europe de l’institut McKinsey, environ 22 % des emplois en Europe (soit 53 millions) pourraient être automatisés d’ici 2030.
Les révolutions technologiques, tout comme l’internet ont au cours de l’histoire impacté le marché de l’emploi, entre création de nouveaux métiers et obsolescence de certaines professions.
Pour illustrer, aux États-Unis, les ordinateurs personnels ont impacté l’activité de 3,5 millions d’emplois entre 1970 et 2015. Notamment les professions plus sensibles face à l’automatisation comme les dactylographes, les fabricants de machines à écrire, etc.
Mais les ordinateurs personnels ont aussi créé 19,3 millions de nouveaux emplois, grâce aux nouvelles technologies : développeurs Web, développeurs d’applications, concepteurs d’expérience utilisateur, etc.
Et basé sur ce fonctionnement, c’est ce qui est attendu pour la prochaine décennie, L’IA en particulier pourrait nécessiter de nouvelles professions.
McKinsey estime que plus de 20% des professions STEM (sciences, technologie, ingénierie et mathématiques tels que les développeurs, programmateurs et informaticiens), commerciales, juridiques et médicales devraient croître de 4 millions d’emplois supplémentaires d’ici 2030, comme le montre le graphique ci-dessous :
90 millions d’emplois occupés pourraient nécessiter un développement en compétences d’ici 2030, car le niveau de compétences exigées sera plus élevé qu’aujourd’hui.
21 millions de personnes seraient également susceptible de changer de métier du fait du déclin de leurs professions.
Les professionnels de la programmation et du développement ne seront que très peu concernées par le déclin de leur métier, mais devront très certainement s’adapter et acquérir de nouvelles compétences techniques, car la demande va tendre à croitre dans ce sens :

Pour conclure

On remarque donc que l’évolution constante des nouvelles technologies et de l’humain nous montrent pourquoi le besoin en adaptabilité est important.
Tout comme pour les langages de programmation : Chaque créateur de logiciel espère proposer une nouvelle vision des choses différente de ses confrères pour que les utilisateurs puissent avoir le choix dans leur process.
Ainsi, le meilleur conseil que l’on peut vous fournir est de rester curieux et de continuer de tester les différentes possibilités du marché entre langages de programmation, frameworks, et de trouver ce qui fonctionne le mieux pour vous.
Trouver un job chez Timtek
Cliché : Le développeur est-il insociable ?
l
e métier de développeur fait partie de ces métiers un peu flous pour le grand public qui induit un bon nombre de stéréotypes.
Parmi les plus répandus, on retrouve bien évidemment celui du geek insociable enfermé dans sa grotte, à l’écart. Qui dit insociable dit mauvais communiquant …
Le développeur est -il une personne qui ne maîtrise pas la communication ?
La communication au centre
Malgré ce que l’on pourrait penser, la communication est au centre du métier de développeur, au point d’être une compétence essentielle, elle est même à la base du manifeste agile ! Afin d’avancer de manière efficiente, une communication organisée est importante.
De manière simplifiée, faisons un comparatif du métier de développeur avec un des métiers lié de près à cet aspect de la communication, j’ai nommé, le traducteur.
On peut faire le parallèle, car dans un sens, le rôle du développeur est de traduire le besoin client en langage informatique.
Cependant, la réalisation technique n’est pas la clé du succès, elle passe d’abord par une vraie collaboration, on peut choisir de vraiment traduire littéralement mot à mot, mais le résultat risque de ne pas être qualitatif.
La collaboration est vraiment importante, comprendre le besoin client passe en priorité par comprendre quels sont les points clés en termes d’importance, au-delà du simple traducteur, plutôt rentrer dans le rôle d’un comédien de doublage.
Il faudra alors comprendre si l’importance va dans le fait de faire passer les émotions ou sentiment, plutôt trouver des expressions ou blagues qui peuvent être équivalente, coller parfaitement au timing des lèvres, savoir quels sont les efforts à faire en priorité par rapport à d’autres et pour se faire, il faut faire preuve d’empathie, comprendre et valider avec l’autre la véritable intention et cela passe par des reformulations, des validations et autres avant même la performance technique.
Le partage et l’ouverture
Un des moyens essentiels d’être un bon communiquant c’est de savoir simplifier les choses, vulgariser afin de se faire comprendre. Dans un métier considéré comme technique, cette capacité est nécessaire !
De plus, ce n’est pas seulement un besoin imposé mais également une utilisation volontaire. En effet, les développeurs sont nombreux à partager, au-delà de partager des bouts de code, on partage des formations, des tutoriels ou autre via par exemple les réseaux sociaux ou des blogs personnels qui sont des outils de communication.
Mais cela reste de la communication indirecte, qui peut être orale ou non mais ce n’est pas la seule, cela passe aussi par la parole en public.
En effet, il existe de plus en plus de conférences liées à ce métier, qui sont pour la plupart, contrairement à ce que l’on pourrait penser, rarement tourné vers le côté technique mais plutôt “générique” et accessible en passant notamment par des retours d’expérience.
Le métier des développeurs, comme les autres, peut rassembler un ensemble assez grand de personnalités différentes, tout comme un youtubeur peut totalement ne pas être à l’aise en public, un informaticien au sens plus large peut très bien être une personne extravertie, à l’aise à l’oral et sociable.

Un programme C est comme une danse rapide sur une piste de danse fraichement cirée, par des personnes tenant des rasoirs.
Waldi Ravens, Programmeur.
C’est quoi un POC ?
l
ors de la création d’un produit, d’un service, on réalise en général une étude de marché afin de vérifier que le concept est viable et que la cible sera bel et bien au rendez-vous.
Cette vérification n’est pas seulement intéressante dans le domaine du marketing, on retrouve des équivalences dans de nombreux secteurs différents.
Pour la partie qui nous intéresse, les projets informatiques on a le POC qui peut entrer en jeu.
Mais que se cache-t-il vraiment derrière ce terme ?
Un prototype avec ses objectifs
Un POC (Proof Of Concept) traduit en français par démonstration de faisabilité est une réalisation qui, comme son nom l’indique, a pour vocation de démontrer la possibilité d’un procédé.
Il ne faut pas confondre le principe de POC avec celui de prototype.
Un prototype permet de représenter le produit (ou le service) via une version simplifiée, il en montre les lignes directrices.
Cela peut par exemple passer par un ensemble de maquettes interactives pour simuler la navigation.
Un POC peut prendre la forme d’un prototype comme pas du tout, il peut par exemple ne pas du tout ressembler à l’application finale. Lui ne doit pas répondre à la question “Comment cela sera fait ?” mais plutôt “Est-il possible de le faire”.
Le but d’une preuve de concept est de démontrer la faisabilité. La réponse qui en incombe se doit d’être binaire (oui ou non), on parle de décision “GO” ou “NO GO”.
Il est important de définir de vrais objectifs pour un POC qui permettront en fonction du résultat de prendre une décision avec des critères déterminés en amont.
Il existe alors de nombreuses formes que peuvent prendre les POCs…


Des cas d’utilisation multiples
Une fois que l’on a compris l’intérêt du concept, il est possible de le décliner dans de multiples situations.
On peut par exemple lors d’une volonté d’évolution, vérifier qu’une certaine technologie permet bien de gérer une certaine fonctionnalité, ou par exemple que la cohabitation avec une autre technologie est possible avant de vraiment la mettre en place sur le projet. Vérifier la compatibilité avec une taille d’écran ou un navigateur en particulier.
Mais le concept va au-delà de tous les exemples auxquels on peut penser dans un premier temps qui en général est lié à une idée de nouveauté, d’ajout, de mise en place.
En effet, il existe d’autres “domaines” dans lesquels, le concept de POC peut intervenir :
- Performance : réaliser un test de montée en charge pour prouver que le serveur peut tenir la charge d’un nombre X donné d’utilisateurs simultanés.
- Sécurité : démontrer l’existence d’une faille logicielle sans pour autant aller en profondeur, mais simplement prouver son existence.
- Communication : au plus simple, cela peut passer par de simples ping pour vérifier que deux serveurs peuvent communiquer entre eux.

Un investissement sur l’avenir
En général cette notion est prisée des méthodes agiles, car elle peut s’adapter à la forme de “mini projet”.
L’élaboration d’un POC exige généralement un certain investissement en temps et/ou en ressources (financières ou humaines).
On parle alors d’investissement dans le sens où le but premier est habituellement de réduire les risques avant de mettre des ressources au niveau de la production.
The Web as I envisaged it, we have not seen it yet. The future is still so much bigger than the past.
Tim Berners-Lee, Inventor of the World Wide Web.
CSS : La relève de Bootstrap
Le CSS est l’un des langages principaux du Web, associé à la structure de page construite en HTML, il permet de mettre en forme cette dernière. Ainsi, les feuilles de style, aussi appelé les fichiers CSS, comprennent du code qui permet de gérer le design d’une page en HTML.
Bien implanté en tant que “titulaire indiscutable”, sa nécessité ne laisse pas place au doute, mais existe-t-il des moyens de faciliter son utilisation, sa mise en place, son optimisation ?
Une évolution perpétuelle
Le CSS a beau être utilisé et bien pris en charge par les navigateurs depuis les années 2000, à l’image de l’univers du Web, il a été obligé d’évoluer. Tout comme le langage Javascript connu pour ses nouveautés nombreuses, ces dernières années, notamment via les technologies dérivées (Angular, ReactJs, Vue.js …), l’écosystème CSS a su s’adapter.
Le code en Javascript et CSS dit pur n’est plus vraiment utilisé. Sans parler des navigateurs qui prennent de plus en plus en compte les possibilités proposées par le langage, différents outils ont permis d’améliorer indirectement la génération des feuilles de style.
On pense notamment aux extensions comme LESS ou SASS, qui permettent d’écrire de façon plus simplifiée via notamment la possibilité de définir des variables, des fonctions, des boucles, d’utiliser l’héritage ou d’autres options avant de générer le code CSS classique associé.
Mais outre ces extensions, il existe des bibliothèques qui permettent également d’atteindre une certaine simplification et un gain de temps …
La Toolbox 🔧
Aujourd’hui quand on parle de CSS on a tendance à penser à Bootstrap.
Ce dernier représente un ensemble de solutions comme Foundation, Materialize, Material UI, Bulma, etc, qui apportent un ensemble d’outils et d’éléments préformatés prêts à être utilisés. L’outil de la firme Twitter, Bootstrap, est simplement la bibliothèque la plus connue et la plus utilisée.
Bootstrap fournit des définitions de base pour tous les composants HTML, ce qui permet de disposer d’apparences uniformes et de gérer le design (graphisme, animation et interactions avec la page dans le navigateur, etc).
La bibliothèque fournit également nombre d’éléments graphiques au format standardisé : boutons, libellés, icônes, cartes, barres de progression…
En plus de ça, il existe de nombreux thèmes communautaires permettant d’avoir des modèles préconstruits de tableaux de bord ou autre.
L’outil apporte à de nombreuses qualités mais n’a-t-il pas certaines contraintes ?
L'utile avant tout : Une nouvelle vision
Bootstrap et ses concurrents sont idéaux dans le cadre de POC (Proof Of Concept), dans lesquels ils permettent de mettre en forme de manière propre très rapidement.
Cependant dans le cadre de projets plus élaborés avec des design spécifiques, ils peuvent atteindre certaines limites.
Une nouvelle vision émerge via le nom de Tailwind CSS avec une manière d’aborder les choses plus orientées sur l’utilité.
Tout d’abord ce dernier se présente comme un véritable framework contrairement aux autres outils plutôt considérés comme des kits UI.
De base, l’approche amène à écrire de manière exhaustive bien plus de classes (utilitaires) dans le code HTML qui permettent de spécifier les attentes visuelles. Cependant le framework permet bien évidemment de créer ses propres classes et de se rapprocher au besoin du fonctionnement de Bootstrap et de ces classes complètes réutilisables.
L’avantage se retrouve essentiellement dans sa forte personnalisation, même si Bootstrap permet de ne pas charger l’ensemble de la bibliothèque avec un découpage par grande thématique, Tailwind via son fichier de configuration permet un découpage vraiment précis et ainsi seulement charger les spécifications utilisées. Ce qui permet un gain de performance via un poids optimisé.
Les différences en termes d’avantages ou désavantages entre ces deux types de solutions n’ayant pas vraiment un poids considérable permettant de faire pencher la balance sans opposition possible.
L’utilisation de l’un ou l’autre va dépendre du contexte et surtout d’une préférence personnelle.
Cet article est une invitation à s’intéresser de plus près à TailWind CSS, car il est surtout intéressant de connaître cette autre voie et ne pas utiliser la solution classique, par défaut, sans jamais la remettre en question.
