Le classement établi par l’index TIOBE est basé sur les recherches effectuées sur les plus grands moteurs, et non pas sur le nombre de projets ou de lignes de code.Quels sont les langages de programmation les plus utilisés par les développeurs et surtout quels sont ceux à « bûcher » pour trouver du travail et être bien payé ? Et, au contraire, quels langages sont en perte de vitesse et risquent d’être abandonnés à plus ou moins long terme ? C’est ce que nous allons voir dans ces lignes, non codées.
Les langages qui ont le vent en poupe
Dans cette liste vous trouvez notamment les « jeunes » langages qui ont la cote auprès des développeurs. Le langage Go de Google, qui était censé remplacer le C++, arrive en toute première place, suivi de TypeScript de Microsoft, une espèce de surensemble typé de JavaScript. Kotlin vient juste après. Celui-ci est presque exclusivement utilisé pour le développement d’applications Android. L’annonce par Google du support de première classe de Kotlin dans Android Studio en mai 2017 a d’ailleurs largement contribué à son avancée.
Un autre nouveau venu, Rust de la fondation Mozilla (lire l’article d’Alain Clapaud dans notre numéro précédent), se développe plus lentement que les autres langages mais suit une croissance régulière. Il a été créé dans le but de remplacer les langages C et C++, rien de moins… Y arrivera-t-il ? Rien n’est moins sûr.
Go et d’autres avaient les mêmes prétentions, mais ils ont dû se rendre à l’évidence : même si les C et C++ comportent des failles en termes de sécurité, qu’il faut prendre en compte, ils restent très puissants et bénéficient d’un grand nombre d’adeptes.
Un taux d'utilisation relativement stable
Julia ne doit pas être oublié dans la liste des petits nouveaux à suivre. Spécialisé dans le calcul scientifique haute performance, ce langage est une évolution très intéressante de Lisp. Là encore, comme pour Rust, nous vous renvoyons au récent article d’Alain Clapaud.
Dans l’ensemble, les principaux langages de programmation, tous domaines confondus, conservent un taux d’utilisation relativement stable : JavaScript, PHP, Python, C, C++ ou C#, entre autres, resteront des valeurs sûres. Dans l’ordre, les langages qui ont occupé le top 6 des plus populaires selon, cette fois, l’index TIOBE (https://www.tiobe. com/tiobe-index/) d’octobre 2018 sont Java, C, Python, C ++, Visual Basic .NET et C#.
Le projet GHTorrent, un miroir offline des données proposé à travers l’API REST DE Github.
Les langages à éviter
S’il y a des langages à apprendre, il y a aussi des langages à éviter, au moins pour de nouveaux projets, en se basant sur la baisse constante de leur utilisation. Dans cette catégorie, il y a Ruby qui brille de moins en moins ; Objective-C, remplacé pour la plate-forme Apple par Swift, CoffeeScript, Perl et bien sûr Java, mais à beaucoup plus long terme pour ce dernier – et seulement si la situation ne s’arrange pas. Ces langages ont tous vu leur pourcentage d’utilisateurs sur GitHub diminuer de manière significative au cours de ces dernières années. Celui qui a connu la plus forte baisse sur cette période, passant de la 2e à la 11e place entre 2011 et 2018, est Ruby. Il faut néanmoins rester prudent quant à l’interprétation de ces statistiques, car elles sont données en pourcentage de la base d’utilisateurs de GitHub, comme le fait si bien remarquer le sieur Ben Frederickson, développeur chevronné et blogueur. Cela ne veut donc pas forcément dire que la base d’utilisateurs de Ruby ou d’autres langages cités dans ces statistiques ait diminué en nombre global de développeurs ou de projets les mettant en œuvre, mais surtout que leur part s’est réduite par rapport à l’ensemble des langages utilisés aujourd’hui. Ajoutons à cela que le nombre d’utilisateurs sur GitHub a, lui, été multiplié par plus de 20 entre 2011 et 2018. Le langage PHP est un de ceux qui illustrent parfaitement cet état de fait. Bien qu’ayant diminué en termes de pourcentage, son nombre d’utilisateurs ne cesse de croître. Les remplaçants de fait Il faut aussi signaler que certains nouveaux langages récupèrent quasi directement la base d’utilisateurs d’autres langages rendus obsolètes de par leur manque de puissance ou de fonctionnalités ou simplement par la volonté de l’éditeur ou de la principale plate-forme qui les emploient. C’est le cas pour le couple Objective-C/Cocoa, fer de lance du développement pour les machines Apple – plus particulièrement la plate-forme iOS – que Apple a mis au banc pour le remplacer par Swift. Il en est de même pour CoffeeScript remplacé par TypeScript.
Les langages web
Les trois principaux langages front-end sont le HTML, le CSS et le Javascript. Quel que soit le langage back-end utilisé, ces trois langages sont quasi-incontournables – surtout le HTML – pour la présentation du contenu général. L’ensemble des navigateurs internet sont capables d’interpréter ces langages et de mettre en forme les pages qui en découlent.
RUBY
Ruby reste encore très employé par de grands sites tels que Airbnb ou Groupon. C’est un langage orienté objet relativement facile à apprendre. Son célèbre framework de développement web, Ruby On Rails, l’a propulsé un temps en haut des outils de conception d’applications web haut de gamme. L’ensemble constitue toujours un bon environnement de développement web, mais d’autres technologies sont en train – ou l’ont déjà – supplanté.
PHP
Le nombre de logiciels opensource développé en PHP est plus que considérable. Ceux-ci permettent de créer pratiquement tout type de site internet très rapidement. Vous avez WordPress, Drupal ou Joomla pour les systèmes de gestion de contenu (CMS) les plus simples ; Woo-Commerce, Magento ou Prestashop pour créer des boutiques en ligne ; ou encore PhpBB pour des forums. Autre avantage et non des moindres du PHP : quasiment tous les hébergeurs le proposent et son coût d’utilisation est bien souvent le plus faible. Le PHP reste donc le principal outil de conception de sites internet dits standard. WordPress est le CMS le plus utilisé au monde ! La principale force du PHP est sa formidable adaptation aux SGBDR (Systèmes de gestion de bases de données relationnelles) client-serveur, et en particulier à MySQL et ses forks comme MariaDB.
JAVASCRIPT
Le JavaScript reste de loin le langage le plus utilisé pour le Web. C’est certainement dû au fait que ce langage s’accouple parfaitement avec d’autres technologies web auxquelles il sert de « ciment ». Il arrive toujours dans le trio de tête – avec le HTML et le CSS –, car il propose une interface simple et facile à manipuler avec une multitude de fonctionnalités et des frameworks front. Il est difficile de s’en passer pour le développement web tant il est complet. Ce langage de programmation permet d’ajouter du dynamisme à une page HTML. Sortant de son cadre initial, le Javascript est de plus en plus employé pour la programmation back-end avec l’apparition des serveurs Node JS. Il est aussi un bon langage d’apprentissage pour les débutants en programmation. Bref, le Javascript est vraiment un des langages à apprendre pour faire du développement web. Son intégration native dans les navigateurs a fortement contribué à son succès. Il est donc le langage par défaut pour le développement front-end pour la partie interactive. C’est aussi un très bon langage pour créer des applications natives à la fois pour iOS et Android. Là encore, son interpréteur est installé partout, sur tous les appareils mobiles, ce qui le rend idéal pour créer des applications multi platesformes. Plusieurs frameworks tels que Angular ou React permettent d’améliorer ses possibilités.
TYPESCRIPT
Ce langage libre et open-source créé par Microsoft peut parfaitement remplacer le JavaScript dont il constitue un surensemble typé. Bien qu’il demande encore un peu plus de stabilité côté versionning, il s’est déjà fait un nom dans la sphère du développement web et ne cesse de croître en nombre d’utilisateurs et de sites.
Typescript est un langage de programmation libre et open source créé par Microsoft et constituant un surensemble du Javascript.
Les « bons à tout faire », ou presque
JAVA
Initialement développé par Sun Microsystems en 1991, le Java a subi beaucoup de changements au fil des années mais reste aujourd’hui encore un des langages de programmation les plus employés. Google l’a choisi comme langage de base pour la conception d’applications Android. Des géants comme Amazon, eBay, IBM, Uber, Slack, TripAdvisor ou SAP l’utilisent intensivement pour leurs sites web et/ou leurs applications Android. En effet, Java Android, adaptation spécifique à la dite plate-forme mobile, est totalement adapté par Google au cycle de vie des apps Android.
C#
De manière moins coordonnée et répondant à une certaine concurrence entre éditeurs, le C# monte régulièrement en puissance dans le domaine des applications web au détriment du Java. C’est le résultat des efforts de Microsoft pour améliorer et mettre en avant son langage, mais bien aidé par le désintérêt de longue date maintenant d’Oracle pour le Java ; cela s’est traduit pour celui-ci par une évolution bien trop lente – surtout de la partie J2E –, des problèmes de performances et de sécurité croissants et surtout de rétrocompatibilité d’une version à l’autre, entre les 7, 8 et 9 notamment. Le C# est une espèce de Java amélioré créé pour Microsoft par Anders Hejlsberg, l’inventeur, entre autres, de Delphi, au début des années 2000. Il est assez rapidement devenu le langage phare de la plate-forme .Net, poussant (enfin…) doucement mais sûrement au rencard VB .NET. Progressant constamment, il supplante le Java auprès de développeurs qui n’en peuvent plus du manque d’évolutivité et des problèmes de sécurité de ce dernier. Le seul véritable avantage restant au Java par rapport au C# est la portabilité de la JVM sur presque toutes les plates-formes. Cela aussi est en train de changer avec le passage en Open Source du .Net qui augure une disponibilité identique pour le CLR (Common Language Runtime, la machine virtuelle du .Net). En clair, le code C# pourra bientôt être exécuté sur tous types de systèmes Linux et non plus seulement sous Windows. Le C# est « le » langage à apprendre si l’on veut percer dans l’univers Microsoft. Il est le langage par défaut pour créer des applications sur la plate-forme .NET mais aussi pour développer des jeux vidéo sur Unity. Il permet de plus de coder – via Xamarin – des applications pour les platesformes mobiles Android et iOS.
PYTHON
Le langage Python a été créé en 1989. Il gagne régulièrement du terrain, après un long sommeil de plusieurs années depuis sa création, et surtout la sortie de nouvelles bibliothèques de code venues l’enrichir. Il a déjà dépassé le Java et se trouve à la deuxième place des langages les plus populaires sur GitHub. Le Python a largement bénéficié de la montée en puissance du Machine Learning (ML), domaine dans lequel il est l’un des langages les plus prisés – avec le R et quelques autres – grâce à des librairies puissantes. Élu meilleur langage 2017 par l’IEEE, il dépasse les Java et C en termes d’influence en 2018. Sa popularité vient en partie de sa grande simplicité et de la lisibilité de son code, séduisant de nombreux débutants. Rappelons que ce langage n’a pas grand-chose à voir avec le serpent éponyme et tirerait plutôt son nom d’une bande de joyeux drilles mondialement célèbres, les Monty Python. Il est reconnu comme un véritable langage web lorsqu’il est employé avec son framework Django, mais son cadre d’utilisation est bien plus large : scripts d’installation d’applications de type client lourd, Intelligence artificielle, ML, calcul scientifique – ou il a détrôné Mathlab dans bien des laboratoires de recherche et universités –, testing… Il n’est pas étonnant qu’il soit l’un des principaux outils de développement de Facebook, Google, Pinterest, Reddit, Spotify et autres YouTube.
Les langages qui sont peut-être à éviter selon Ben Frederickson.
Les langages de type client lourd
C
Le langage C a été créé en 1972 pour le système d’exploitation UNIX et il est encore et toujours utilisé sur nombre de projets de développement ! C’est l’un des langages de programmation les plus stables et il fonctionne sur presque toutes, voire toutes les plates-formes connues. Il existe un compilateur C pour quasiment tous les environnements.
Le C est le langage de développement des systèmes d’exploitation, pas seulement Unix et Linux, mais aussi Windows, Mac OS X…, et des pilotes de périphériques ou de logiciels. Il a récemment profité d’un nouveau regain de popularité grâce aux objets connectés. Le C est, d’une manière générale, assez bien adapté à la programmation de logiciels embarqués.
C++
Créé en 1983 comme une espèce de surcouche objet du langage C, et non pas pour le remplacer – pas du tout ! – comme prétendent certains, le C++ a profité d’une popularité quasi instantanée grâce à sa puissance et son mélange de programmation bas niveau et objet. C’est un langage hybride (structuré et objet) très stable permettant de créer du code réutilisable – un anti Swift, en quelque sorte… Le C++ est un langage de développement toujours en forte croissance qui reste presque en permanence sur le devant de la scène malgré de nombreuses tentatives pour le remplacer par d’autres langages – avec Go et Rust, récemment. Il est très performant, assez fiable pour peu qu’il soit bien maîtrisé, ce qui est loin d’être simple, et il possède de très nombreuses fonctionnalités via des bibliothèques de toute sorte, open source pour la plupart. C’est un des langages les plus connus au monde et sa maîtrise est très appréciée dans le monde de l’entreprise. Sa connaissance permet le plus souvent d’apprendre plus facilement d’autres langages dont la syntaxe a été inspirée. Vous pourrez coder presque tout en C++ : des jeux, des programmes complexes pour des domaines tels que le trading, les télécoms, le calcul vectoriel, la gestion graphique, les applications mobiles, scientifiques, etc.
Les langages pour les applications mobiles
KOTLIN
Inspiré du concept JavaScript, le langage Kotlin rencontre un certain succès depuis qu’il a obtenu le soutien de Google, en mai 2017. Il remplace surtout le JavaScript pour la partie descriptive des apps Android. La dernière version est la 1.3.
SWIFT
Swift a été créé en 2014 par Apple comme un langage maison pour les applications iOS – surtout – et Mac OS X. C’est ce que l’on appelle un langage de niche. Il a été fortement influencé par les Ruby et Python. Le problème avec ce type de langage est qu’il n’est vraiment intéressant, et un peu obligatoire, que pour développer des applications iOS. Apple peut l’abandonner du jour au lendemain, comme il l’a fait avec l’Objective-C. Et comme il n’est utilisé quasiment nulle part ailleurs, tout le travail investi dedans ainsi que le code existant seront inutilisables. Or, la réutilisabilité du code, en programmation, n’est pas un vague détail : les développeurs n’aiment pas trop qu’on les prenne pour des pommes… ❍
Le poids de l’éditeur, le choc du plébiscite
La plupart des langages populaires ont été plébiscités par de grandes entreprises : Google avec Go, Microsoft avec C# ou TypeScript, JetBrains avec Kotlin, Mozilla avec Rust, ou Sun avec Java. La chute perpétuelle du Java est d’ailleurs liée au désintérêt flagrant de son actuel propriétaire, Oracle, et du manque de confiance – plutôt justifié – que lui octroient les développeurs. Le succès d’un langage ne dépend donc pas que de sa syntaxe ou de sa puissance dans tel ou tel domaine applicatif, mais aussi de la communauté de développeurs voulant l’adopter, de la qualité du ou des EDI (Environnement de développement intégré), des bibliothèques de code, des outils, de l’ouverture – open-source ou non, et si oui, quelle licence ? – ou de la documentation existante.
Classement Github
Le développeur et blogueur Ben Frederickson a dressé un classement de la popularité des langages de programmation en se basant sur le nombre de personnes les utilisant sur les plates-formes d’hébergement de code – en particulier sur GitHub. Il s’est servi pour cette analyse des projets GitHub Archive et GHTorrent comme sources de données. Les données traitées remontent sur sept années, ce qui lui a permis de montrer l’évolution des différents langages de programmation au fil du temps. Il a pu ainsi faire le classement de la popularité des langages, mais aussi déterminer les langages de programmation qui vaudrait la peine d’être appris et ceux qu’il faudrait peut-être bien éviter.