IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Quelle est la probabilité de passer d'un langage de programmation donné à un autre ?
Des prédictions basées sur une étude empirique

Le , par Michael Guilloux

600PARTAGES

25  1 
Comme tout projet, les langages de programmation et technologies associées ont un certain cycle de vie. De nouveaux langages voient le jour, alors que d’autres évoluent pour gagner en maturité et d’autres encore sortent de la compétition. Pour un développeur, une veille technologique est donc importante pour mettre ses compétences à jour et préparer sa prochaine destination si nécessaire. C’est ainsi qu’on observe de nombreuses migrations d’un langage à un autre dans le milieu des développeurs. À partir d’un langage de programmation donné, la prochaine destination peut toutefois être prévisible ; raison pour laquelle un développeur s’est essayé à prédire la probabilité de passer d’un langage X à un langage Y, sachant qu'on envisage bien sûr de passer à un autre langage.

Pour y parvenir, il a écrit un script pour interroger Google pour trouver les différents billets de blog dans lesquels les développeurs ont expliqué qu’ils étaient passés d’un langage X à un langage Y. Il a essayé quelques chaînes de requête différentes, comme move from <language 1> to <language 2>, switch to <language 2> from <language 1> et quelques autres. En fin de compte, il a obtenu le premier tableau de contingence suivant. La cellule i,j représente le nombre de départs du langage sur la ligne i vers le langage sur la colonne j.


À partir de ce tableau, il a construit la matrice des probabilités associée en normalisant chaque ligne. Cette matrice stochastique nous donne une approximation des probabilités de basculer entre les langages et permet d’avoir une idée sur les futures popularités des différents langages. Il faut en effet noter qu'elle a été triée des langages qui seront les moins populaires à ceux qui seront les plus populaires.


Du tableau précédent, on peut tirer les conclusions suivantes :

  • les développeurs Lisp et Perl ont une plus forte probabilité de passer à Python s'ils doivent changer de langage. C'est le cas également des développeurs Erlang ;
  • un développeur Visual Basic qui veut changer de langage ira de manière presque inévitable (0,92) vers C# ;
  • il est plus probable pour les développeurs Fortran et Pascal de passer à C que vers un autre langage. C'est également le cas des développeurs R ;
  • pour les développeurs Cobol, Kotlin et Scala, la prochaine destination sera probablement Java ;
  • les développeurs qui abandonneront le langage Swift vont nécessairement (0,99) se tourner (ou revenir) vers Objective-C. Inversement, il y a plus de chances pour un développeur Objective-C de passer à Swift qu'à un autre langage ;
  • on remarque également que les développeurs qui utilisent des langages populaires tels que C, Java et Python sont en moyenne beaucoup plus susceptibles de passer à Go, s'ils doivent adopter un autre langage. Go est également la destination la plus probable pour les développeurs partant de Node, Rust et Ruby. C’est probablement tout cela qui annonce Go comme le langage de programmation du futur, comme plusieurs études ont essayé de le dire ces derniers mois.

Le classement des cinq langages qui seront les plus populaires à l’avenir, sur la base de cette étude, sont donc Go (16,41 %), C (14,26 %), Java (13,21 %), C++ (11,51 %) et Python (9,45 %). On voit qu’à 45 ans, le langage C continue d’être présent, Java est là pour rester, Rust semble se porter plutôt bien alors que Perl risque de mourir.

La même analyse a été faite pour les frameworks frontend JavaScript. Comme on peut le voir, React reste en tête dans cette catégorie. Il attire énormément les développeurs Angular (0,96), Vue (1,0) et Backbone (0,91), mais le framework Vue se trouve aussi dans une très bonne position, juste devant Angular.


La même analyse a été reproduite encore en sélectionnant un certain nombre de bases de données : DynamoDB, Riak, Redis, MariaDB, MongoDB, Cassandra, PostgreSQL et Mysql. Les résultats sont donnés par la matrice de contingence suivante :


Bien entendu, cette étude a ses limites, vu qu’elle ne considère que des billets dans lesquels des développeurs ont expliqué qu’ils ont changé de langage. En plus, les chaines de requêtes semblent être uniquement en anglais, ce qui exclut les autres langues et certaines régions. Vous pourrez vous-même découvrir d’autres limites. Mais il s’agit ici de voir en quoi ces résultats se rapprochent de la réalité que vous connaissez.

Source : Blog Erik Bernhardsson

Et vous ?

Que pensez-vous de cette analyse et de ces résultats ?
Quels commentaires faites-vous des différents résultats ?

Voir aussi :

Offres d'emploi en 2016 : Java largement en tête, suivi par JavaScript et PHP
Étude sur les salaires des offres d'emploi en 2016 : TypeScript, Go et Ruby sont les mieux payés

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de YAKYETI
Membre régulier https://www.developpez.com
Le 24/03/2017 à 14:14
Dans les années 80/90, un bon programmeur se devait d'être multi-OS et multi-langages. Formation à sa charge, rien n'a changé.
Multi-tâches aussi, mais c'est une autre histoire.
La diversité des OS venait des constructeurs et celle des langages du fait que l'on pensait, à juste raison, que certains d'entre eux étaient adaptés à un usage particulier.
A priori, rien n'empêche de faire de la gestion en Fortran, ni du calcul mathématique en Cobol et inversement, mais le résultat risque de ne pas être à la hauteur. Tout ceci a changé avec l'utilisation de C pour tout ou presque. Et surtout, l'appât du gain, donc, un OS (et encore ...) et un ou deux langages.
Comme cela, on a des consultants immédiatement opérationnels et à pas trop cher. On compense l'indigence de certains consultants (c'est du vécu ...) par une "inflation matérielle".
Il y a, fort heureusement, des gens sérieux, curieux et compétents (cela va ensemble).
2  0 
Avatar de vttman
Membre émérite https://www.developpez.com
Le 17/03/2017 à 14:36
pour les développeurs Cobol, Kotlin et Scala, la prochaine destination sera probablement Java
Souvent on demande la double compétence Cobol / Java mais de là à pouvoir effectivement passer de l'un à l'autre
la probabilité pour moi devrait être bien plus faible ?

-"Gaston ya téléphon qui son mais aujourd'hui tu vas laisser tomber JCL, VSAM et CICS pour finaliser
le module de paiement en Java ..." => Grand écart assuré
1  0 
Avatar de Gugelhupf
Modérateur https://www.developpez.com
Le 19/03/2017 à 17:38
Il est intéressant de voir le nombre de développeur C apprenant Go, c'est la volonté qu'exprimait Google dans leurs meetings, je pense que c'est une réussite.

Il est aussi intéressant de voir que les plus fortes fluctuations se situent autour du langage Java.

Technos pré-2009 :

[th]Développeur[/th]
[th]Venant de Java[/th]
[th]Vers Java[/th]
[th]Vers Java (%)[/th]
cobol 2 1227 99,67%
matlab 7 3838 99,64%
perl 12 1163 97,96%
c 21624 28921 14,44%
php 12044 15396 12,22%
python 9263 9723 2,42%
objective-c 4311 3875 -5,33%
c# 11256 9539 -8,26%
c++ 31778 15959 -33,14%
ruby 3229 2430 -14,12%
scala 8702 2779 -51,59%


Technos post-2009 :

[th]Développeur[/th]
[th]Venant de Java[/th]
[th]Vers Java[/th]
[th]Vers Java (%)[/th]
go 23527 2 -99,98%
node 4012 8 -99,60%
kotlin 3744 9 -99,52%
swift 334 5 -97,05%


@el_slapper,
Attention, qui dit JavaScript, dit TypeScript, dit Java
2  1 
Avatar de eclesia
Rédacteur https://www.developpez.com
Le 17/03/2017 à 14:01
Marrant comme résultat.

Pour ma part, venant de Java, mes seconds choix sont Ruby et D.
Pourquoi pas Go ? passer de Oracle à Google ca n'a rien d'une évolution, c'est tellement proche que ca n'a aucun interet.

Coté base de données : PostgreSQL, pas de raison de regarder ailleur.
1  1 
Avatar de jdddeschamps
Membre régulier https://www.developpez.com
Le 17/03/2017 à 16:09
•un développeur Visual Basic qui veut changer de langage ira de manière presque inévitable (0,92) vers C# ;
Je confirme : venant du VB, j'ai appris le Java, le C++ et finalement, j'ai opté pour le C#...
Cela ne m'a pas empêché, après coup d'apprendre le python pour de petites applications et scripts :
https://www.developpez.net/forums/bl...rendre-python/
0  0 
Avatar de sevyc64
Modérateur https://www.developpez.com
Le 17/03/2017 à 20:49
Citation Envoyé par Michael Guilloux Voir le message
un développeur Visual Basic qui veut changer de langage ira de manière presque inévitable (0,92) vers C#
Heu ouais d'accord, mais peut-on considéré celà comme changer de langage. Certes on passe d'une orthgraphe/syntaxe Basic Like à une orthographe/syntaxe C Like, mais au final 99% du code s'écrit exactement de la même manière. A tel point que même des bots sont capable de faire la conversion de façon automatique avec un taux qualitatif très élevé (quasiment rien n'est à reprendre derrière).

Quant à Java, oui il est toujours là, car le passif est tellement important qu'il ne va pas disparaitre comme ça. Mais cela dépendra aussi de l'avenir que lui donnera son propriétaire.

Citation Envoyé par Michael Guilloux Voir le message
La même analyse a été reproduite encore en sélectionnant un certain nombre de bases de données : DynamoDB, Riak, Redis, MariaDB, MongoDB, Cassandra, PostgreSQL et Mysql.
Manque quand même les principales, Oracle, SQL Server, etc ...
Certes Oracle perd du terrain et il n'est pas facile d'y passer. Par contre SQL Server gagne du terrain partout, y compris sur des domaines jusque là réserver à des MySql, Postgre, etc... et il est relativement simple à aborder.
Je pense qu'il aurait justement été judicieux de l'intégré dans cet étude.
0  0 
Avatar de el_slapper
Expert éminent sénior https://www.developpez.com
Le 18/03/2017 à 7:51
J'ai échappé à la malédiction du programmeur Cobol qui finit en Java, mais, rétrospectivement, il était peu probable que j'y échappe, en fait. Et pourtant...

Bon, tout ça pour finir à m'autoformer en Javascript.
0  0 
Avatar de lilington
Membre chevronné https://www.developpez.com
Le 28/03/2017 à 6:48
@YAKYETI on est a l'age de qui a la plus grosse.
en faite je comprend meme pas pourquoi migrer?

moi je suis developpeur C et je ne vois auccune raison de quiter C pour autre chose. si je veux faire queque chose ou le C n'est pas approprier ben j'ajoute un langage plus approprier a mon arsenal.
du coup j'ai C + autres
en faite je choisis les langages selon 2 criteres
1/ approprie pour la tache demander (je vais pas ecrire une page web en C)
2/ me laisse la liberete de choisir object ou pas (par exemple je preferai C++ a Java juste parce que si je fait de l'objet si je veux)
sur ce dernier point le C entre en contratiction puisqu'il oblique a faire de procedurale (faire de l'objet en C est une idiotie c'est pas fait pour ca)

du coup a part dire "Mon langage est le plus utilise nananana" je vois pas l'interret. agrandissez vous panoplie, apprennez plus de langage et maitrisez au moins 2 de preference totalement differents.
0  0 
Avatar de Loceka
Expert confirmé https://www.developpez.com
Le 28/03/2017 à 13:28
Je comprends pas bien la notion de "passer à".

Personnellement je suis "développeur Java" mais je suis tout aussi compétent en Javascript, SQL (et bien souvent je me sers des 3 langages au sein d'un même projet).
Je code aussi régulièrement en PHP, Perl, shell et XSLT.

Est-ce que ça aurait un sens de dire qu'on passe de développeur Javascript à développeur Java ?
De développeur Perl à développeur Java ?

Certes il est possible (surtout maintenant avec nodejs) de tout faire avec n'importe quel langage mais généralement ils ont un domaine de prédilection.

A la rigueur si on se cantonne aux langages qui s'utilisent dans les mêmes conditions (et j'insiste sur le "à la rigueur", comme le C, le C++, le C#, le Java, le Cobol et potentiellement Scala et PHP, ça peut avoir du sens.

Mais inclure des langages accessoires comme l'Objective C, le Javascript, le SQL, le Perl, le shell, etc. dans la comparaison n'a que peu d'intérêt ou de sens.
Par accessoire j'entends qu'ils sont surtout utilisés dans des domaines très restreints et pour lesquels ils ont quasiment le monopole. Pour les 3 premiers que j'ai cité c'est une évidence, pour les langages de script orienté serveur (shell, Perl, Python, ...), ils sont déjà plus interchangeables et dépendent des affinités et de la tâche à effectuer.
Pour créer un lanceur (avec plus ou moins d'options et de contrôles), je préférerais utiliser un script shell alors que pour des opérations un peu plus poussées genre des traitements de fichiers, j'opterais plus pour du Perl (ou Python mais je connais pas plus que ça).

Bref, ils sont plus souvent utilisés en complémentarité les uns des autres que comme langage unique pour tout faire et du coup comparer le passage de l'un à l'autre est totalement sans intérêt.
0  0 
Avatar de abriotde
Membre chevronné https://www.developpez.com
Le 17/03/2017 à 14:55
Etant en France dans un pays occidental, l'anglais, peux largement être considéré comme représentatif du marché français qui suit le marché anglo-saxon.

On peux de plus considérer que sa méthode de recherche est statistiquement totalement fiable dans la mesure ou il n'y a pas de raison pour qu'un langage soit sous représenté. Autrement dit on peux considéré que la probabilité "publier une note" est indépendante du langage utilisé/

Ce qui est intéressant c'est aussi de voir la somme par colonne/lignes pour voir les langages en en pertes de vitesse et ceux d'intérêt supérieur.

Le principal biais est celui de l'effet de mode et le fait que pour certains langages ancien, la nécessite de déplacement est moins significative. (Un développeur C est assuré de trouvé du travail même dans 30 ans)
0  2