Offres d'emploi en 2016 : Java largement en tête
Suivi par Javascript et PHP

Le , par Anomaly

75PARTAGES

6  0 
Choisir un langage ou une technologie, cela peut se faire par passion, par intérêt... ou par pragmatisme. En effet beaucoup d'entre nous ont choisi de vivre du métier de Développeur et donc choisir un langage ou une technologie peut dépendre aussi de la demande du marché de l'emploi.

Nous avions déjà procédé à une étude similaire sur le mois de juin 2016. En ce début d'année, c'est l'occasion d'actualiser cette étude en l'élargissant à l'année 2016 entière et en prenant en compte certaines des remarques qui ont été faites. Ainsi, nous avons décidé d'inclure quelques langages supplémentaires. En revanche, SQL reste exclu ; en effet bien qu'il s'agisse évidemment d'une compétence importante, ce n'est pas un langage auto-suffisant pour créer un programme et donc cela n'a pas semblé pertinent de le mettre au même rang que les autres.

Sans plus attendre, voici le graphique indiquant la répartition des demandes en langages pour l'année 2016.



Les proportions sont sensiblement les mêmes que sur la précédente étude. Les programmeurs Java peuvent danser la java devant la dominance de cette compétence, mais ce n'est pas surprenant devant la fréquente utilisation de cette technologie dans les applications industrielles, bien que l'attitude agressive d'Oracle au niveau des licences Java risque d'avoir une influence à l'avenir.

JavaScript s'obtient une solide seconde place ; ce langage originellement pensé pour apporter un peu de dynamisme à un HTML statique a su grandir en importance au fur et à mesure de la complexité du Web et a su se trouver de nouveaux domaines d'application, en particulier avec node.js.

PHP, qui n'est plus le langage pour développeurs Web en robe de chambre qu'il était et qui évolue régulièrement vers un langage toujours plus riche et solide, s'offre une bonne troisième place, bien que sa popularité soit en forte baisse par rapport aux années précédentes.

On trouve ensuite C# en quatrième place, talonné par Python que certains considèrent comme le langage à la mode du moment. Il faut dire que le langage au serpent a actuellement les faveurs de la majorité des enseignants.

Il est cependant encore plus intéressant de comparer l'évolution de la demande sur les 4 dernières années.



2013 2014 2015 2016
Java 23,8% 24,4% 25,1% 28,1%
JavaScript 20,5% 18,8% 20,8% 19,2%
PHP 26,6% 24,2% 18,6% 17,0%
C# 12,7% 10,2% 9,3% 9,4%
Python 4,1% 5,6% 9,2% 8,2%
C++ 6,5% 5,7% 6,8% 5,9%
C 1,1% 2,7% 2,3% 2,5%
Perl 0,6% 1,6% 1,4% 2,2%
Ruby 1,5% 2,6% 1,9% 2,0%
Swift < 0,1% 0,1% 0,9% 1,8%
VBA < 0,1% 1,8% 1,4% 1,2%
VB.NET < 0,1% 1,1% 1,2% 0,8%
Delphi 0,7% 0,7% 0,2% 0,6%
R < 0,1% < 0,1% 0,4% 0,5%
Go < 0,1% < 0,1% 0,2% 0,3%
TypeScript < 0,1% < 0,1% < 0,1% 0,2%
Flash 1,7% 0,5% 0,4% 0,1%
D < 0,1% < 0,1% < 0,1% < 0,1%
Objective C 0,4% 0,1% 0,1% < 0,1%

On peut constater notamment que PHP est une technologie de moins en moins demandée, alors qu'elle était numéro 1 des langages demandés en 2013. À l'inverse, la demande en Python est deux fois plus forte de nos jours qu'il y a quatre ans. Beaucoup d'autres technologies sont plutôt stables au fil des ans, et quant à Flash, la descente vers les oubliettes technologiques semble inéluctable.

Après, au-delà de l'attrait personnel pour certaines technologies ou langages, on pourrait être tenté d'en déduire que pour trouver du travail, il serait tentant de se focaliser sur les technologies populaires comme Java et éviter Flash comme la peste. Or, cela ne semble pas forcément aussi simple.

En effet s'il y a beaucoup d'offres Java, et beaucoup de développeurs Java en recherche d'emploi, cela veut dire qu'on a l'embarras du choix au niveau des offres, mais obtenir un poste peut se trouver ardu puisqu'on se trouve en concurrence avec de nombreux autres postulants.

D'un autre côté, s'il y a quelques rares postes dans des technologies rares ou démodées, et encore moins de développeurs compétents dans ces technologies rares ou démodées, ces derniers seront recherchés activement et auront beaucoup de chances d'obtenir un poste lorsqu'un tel poste rare sera ouvert.

Voir aussi : Plus de 15 000 offres d'emploi développeurs et informatique.

Et vous ?

Préférez-vous subir la concurrence des autres développeurs sur une technologie populaire ou préférez-vous être la pépite disponible pour le poste rare ?
Pensez-vous que la demande en Java risque d'évoluer dans les prochaines années ?

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

Avatar de Pierre Louis Chevalier
Expert éminent sénior https://www.developpez.com
Le 06/01/2017 à 14:09
Je me permet de vous rappeler que avant que la mode vienne à Java et à Python pour l'éducation, le premier langage de programmation le plus utilisé en éducation, par exemple en Fac, c'était le Pascal, et pas le C.
Le Pascal est beaucoup plus intéressant que le C à titre éducatif pour tout un tas de raison, donc dans certaines écoles c'était par exemple Pascal puis ADA. D'ailleurs le Pascal est encore le standard dans beaucoup d'écoles, mais cependant le Python est devenu le langage le plus à la mode la mode pour le premier langage en éducation, après quoi en deuxième langage c'est généralement Java, ou parfois C# ou C++.

Le portage par l'INRIA du Pascal/CDC sur l'Iris 80 a mis ce langage à la disposition des centres de calcul universitaires à la fin des années 1970. À partir de 1980, des universités et des écoles d'ingénieurs s'en sont servis comme support de l'algorithmique et de la programmation structurée. En effet, il était :

plus efficace et plus ouvert qu'Algol 60,
plus ouvert, plus structuré et moins permissif que Fortran,
plus clair, plus structuré et moins permissif que PL/I.

L'arrivée des micro-ordinateurs introduisit une certaine compétition entre Pascal UCSD, Microsoft Pascal, et Turbo Pascal.

L'enseignement de l'informatique en classes préparatoires n'est introduit qu'en 1987, basé sur Pascal (plus précisément Turbo Pascal). Une bibliothèque (« MODULOG »), développée par l'ALESUP37 et l'IREM de Marseille, était également mise à disposition des lycées38,39,40.

Avec la réforme de 1995, l'enseignement de l'informatique en prépa scientifique est séparé en un tronc commun, basé sur un logiciel de calcul formel, et une matière optionnelle en MPSI et MP basée, au choix, sur Pascal ou Caml. Le succès de ce dernier est tel qu'au « stage de Luminy » en 1997, seulement trois participants choisissent le Pascal41. Très minoritaire dans la filière MP, Pascal est officiellement abandonné à partir de la session 2015 des concours, et depuis seul Caml est autorisé aux épreuves de l'option informatique.

Les prépas BCPST ont suivi un chemin similaire : le Pascal est introduit au programme en 1987, puis retiré au début des années 2000, au profit de MATLAB et Scilab. Le Pascal n'est plus proposé aux concours à partir de 200442.
6  0 
Avatar de Grogro
Membre extrêmement actif https://www.developpez.com
Le 29/11/2017 à 16:35
Citation Envoyé par el_slapper Voir le message
Et puis désolé d'être pédant, mais si on fait une specs totalement complète, qui contient toutes les décisions du code, complète formellement, ce n'est plus une spec, c'est déjà du code. De plus haut niveau, mais c'est du code. A partir du moment ou la machine n'a plus qu'à suivre les ordres, alors les ordres, on appelle ça du code.
Ce qui me fait penser à ce strip de l'excellent CommitStrip :

6  0 
Avatar de el_slapper
Expert éminent sénior https://www.developpez.com
Le 30/11/2017 à 19:32
Citation Envoyé par Jacti Voir le message
(.../...)
On ne parle pas de la même chose. Donc reprenons. Vous avez tout un tas d'outils très rigolos pour garantir avec certitude l'exactitude de vos specs. C'est sans doute bien utile dans certains domaines. Dans le mien, c'est surtout bien trop couteux(alors même qu'on jour avec la vie des gens - mais bon, le ministère préfère baisser les dotation informatiques des hôpitaux, tout en accroissant la pression réglementaire sur les éditeurs de logiciels, donc on fait avec ce qu'on a).

Mais moi j'insiste : si la spec est compréhensible par la machine, alors c'est déjà du code. C'est la définition. Quand je dis que c'est descriptif, ça veut dire que ça décrit le résultat attendu, tout simplement. Que SQL ne soit pas Turing complet, je n'en ai rien à foutre. Je lui dis ce que je veux "SELECT BIERE FROM FRIGO", et il se démerde pour aller chercher la bière au frigo(je sais, il est pourri, mon exemple, mais il est rigolo). Je n'ai pas codé le comment. J'ai codé le quoi(alors que dans un langage standard, effectivenent je vais coder le comment). Il y a des trous? C'est bien possible. Après tout, c'est un langage spécialisé sur quelques tâches bien précises de manipulations de données. Non, en effet, ça ne passe pas l'aspirateur. Ca n'est pas mon propos. Je ne cherche pas l'outil magique qui sait tout faire.

Tout ces trucs sur des specs magiques qui passent elles-même l'aspirateur, c'est exactement pareil. Encore une fois, je ne critique pas, j'imagine que dans des domaines où on a les moyens de s'atteler à la qualité totale, c'est certainement une sécurité qui n'est pas un luxe. Maintenant, croire qu'il suffit d'aligner des formules mathématiques pour régler un problème, ça sous-entend que le problème est bien défini au départ. Ce qui est à peu près le cas quand le problème, c'est de lancer une fusée en orbite, ou déterminer l'enveloppe d'altitude optimale de vol pour un avion de ligne, voire même de doser la quantité de radiations émises par les outils de télédiagnostic médical. Quand le problème, c'est de mettre en place une gestion informatisée de la prescription que les médecins hospitaliers en balancent pas par la fenêtre au bout de 45 secondes, c'est très différent. Le but du jeu n'est pas seulement d'avoir zéro bug. Ca, à la rigueur, c'est facile(sauf pour les intraveineuses, mais je digresse). Le but du jeu est d'avoir une interface qui rassure des vieux tyrans de 70 ans, qui n'ont aucune patience pour "ces conneries"(ce mot désignant l'ensemble de nos professions liées à l'informatique), et qui considèrent tout changement comme une atteinte inacceptable à leur pouvoir de droit divin sur tout ce qui se passe dans l'hôpital.

Dit autrement, on est sur de l'humain. Bons, certains sont certes beaucoup plus civilisés que la description que je viens de faire, mais "des gens vont mourir" à chaque proposition, et à chaque contraire, c'est une réaction fréquente, dans notre cas. Le but du jeu est donc de coder une interface ou l'utilisateur ne se rend même pas compte qu'il utilise un logiciel. Dès qu'il s'en rend compte, on a perdu. Et ça, ce n'est pas une spec formelle qui va nous le faire. C'est de la diplomatie, de l'ergonomie, du doigté, et du graphisme. Et de la performance, aussi - dès que ça rame, ça commence à ressembler à un logiciel. Et puis franchement, faire une spec formelle pour garantir que volume = débit * durée, euh, c'est un peu la bombe atomique pour écraser une mouche.

Donc je reprends mon analyse, en précisant le domaine : je ne suis pas sur des algorithmes scientifiques de pointe. Je ne suis pas dans un domaine ou la certitude de l'exactitude de l'algorithme et de son implémentation sont l'alpha et l'oméga du développement informatique. Je suis sur des domaines complexes, ou la difficulté n'est pas l'algorithme, mais l'immense quantité de choses à gérer, ainsi que la réaction de l'utilisateur face à celles-ci. Et de ce que je lis sur ces forums, c'est la majorité de l'informatique aujourd'hui. Les gens qui gèrent des flux bancaires, leur algo, il est facile : on additionne, et les grands jours, on soustrait. Mais sur un nombre invraisemblable d'opérations, avec des exigences réglementaires fortes(notamment en termes de traçabilité pour audit), et une exigence de tenue à la charge délirante. Ces gens-là n'ont pas une vie facile, et des méthodes formelles ne leurs seraient d'aucune aide.

Pour en revenir au début, j'ai lu le mot assertion. On peut faire une assertion "passif après = passif avant plus investissement"(ou moins, la compta n'a jamais été mon fort). Imaginons qu'on le fasse de manière formelle, et que le système soit capable d'en tirer les opérations nécessaires pour appliquer l'algorithme. ça veut dire que la spec formelle est interprétable telle quelle par le système informatique, et est suffisante pour être exécutée. C'est donc, à ce niveau, étymologiquement parlant, du code. Très différent du COBOL qui fait ça en vrai, mais c'est du code aussi.
6  0 
Avatar de Grogro
Membre extrêmement actif https://www.developpez.com
Le 29/11/2017 à 9:50
Citation Envoyé par Jacti Voir le message
Pourquoi l'avenir c'est la génération automatique du code à partir de spécifications formelles ? Parce que les systèmes deviennent de plus en plus complexes et que le code à écrire va devenir très rapidement non appréhendable par un humain. C'est déjà le cas pour certains logiciels d'intelligence artificielle ou les règles engendrées sont issues d'algorithmes d'apprentissages à partir d'énormes quantités de données (big data).
Pour des systèmes qu'il est possible de spécifier formellement, oui. Pour des besoins spécifiques de pointe, oui. Dans la vraie vie de nos clients, donc le plus souvent de l'informatique de gestion pour les grands groupes, non. Parce que des spécifications cohérentes, non ambiguës, non contradictoires, exhaustives, j'en ai jamais vues. C'est pas pour rien si 70% des bugs qui remontent de la production sont des problèmes de conception.
5  0 
Avatar de el_slapper
Expert éminent sénior https://www.developpez.com
Le 06/01/2017 à 11:58
Citation Envoyé par LapinGarou Voir le message
Pourquoi les enseignants "préfèrent"-ils Python ? Serait-ce dû à des directives du ministère ?
Amha C++ devrait être enseigné plus longtemps, parce que vu la "rigueur" requise et la "complexité", il apporte de bonnes bases pour les autres langages. A l'inverse, un dev Python par ex sera t-il capable de comprendre du C++ avec des pointeurs par ex et des aggregations ?

Qui peut le plus peut le moins en informatique non ?

Je vois défiler pas mal d'étudiants en 5e année pour des stages et dès qu'on les sort de "leur langage" (python ou php) pour les mettre sur du C / C++ il n'y a plus grand monde qui sache faire
Ca, savoir quel est le language le plus adapté pour débuter est une question vieille comme le monde. Enfin, le monde informatique. https://www.joelonsoftware.com/2005/12/29/the-perils-of-javaschools-2/]Par exemple, Joel Spolsky regrette le bon vieux temps ou on enseignait le C au lieu du Java. Mais il me parait interessant de lire son argument principal en détail :
Citation Envoyé par Joel Spolsky
I’ve seen all kinds of figures for drop-out rates in CS and they’re usually between 40% and 70%. The universities tend to see this as a waste; I think it’s just a necessary culling of the people who aren’t going to be happy or successful in programming careers.
En bref, selon lui, l'avantage d'un langage difficile, c'est qu'il élimine les gens qui ne sont pas prêts à affronter certaines difficultés. Je conçois et comprend cet argument. Mais lui, il a sa boite d'info, il vend du logiciel, il cherche à recruter les meilleurs, et les justes bons, il n'en a rien à foutre. Son point de vue se tient, mais il faut comprendre sa position.

Le ministère a d'autres priorités. Notamment, pour des raisons de démocratie, démystifier le code informatique. A ce titre, le Python, qui est très complet car multi-paradigmes, et malgré tout assez facile d'accès, qui en plus est libre, a été mis au point en Europe, possède plein de qualités rigolotes. Et surtout, utiles dans ce contexte.

Quand ma fille se sera calmée avec le crochet(elle ne fait plus que ça de son temps libre, depuis trois semaines, elle est indécrochable), je la mettrait au Python. Pas au C. Parce-que l'objectif, c'est de la familiariser. Pas d'en faire une professionnelle.
5  1 
Avatar de berceker united
Expert confirmé https://www.developpez.com
Le 11/01/2017 à 13:12
Citation Envoyé par RyzenOC Voir le message
Je connais aucun dev php qui code from scratch c'est tous sauf professionnel !!!
Ton code en PHP pure ne sera pas réutilisable (le from scratch sera probablement infâme et buggera de partout), non transmettable (un nouveau dev qui arrive devra se farcir ton code et le comprendre, tandis que si tu utilise Laravel ou autre le dev se remplace plus facilement), ton code ne sera pas sécurisé (tu vas coder les 3000 fonctions pour vérifier les formulaires ?!).

Tu peut par contre crée ton propre framework, mais sa nécessite déja de maitrisé le langage ainsi que 2-3 framework.
Non mais là t'es en train de me parler de l'avantage d'utiliser un framework et je suis d'accord avec toi, mais dans la réalité c'est rarement le cas. C'est du développement page blanche car souvent c'est un développement déjà présent. L'utilisation des framework est très récent, car l'utilisation des objets en PHP était assez pauvre.
4  0 
Avatar de Jacti
Membre du Club https://www.developpez.com
Le 28/11/2017 à 21:59
Je suis maintenant retraité mais j'ai terminé ma carrière comme "Expert en systèmes complexes à logiciel prépondérant", ce qui caractérise l'ingénierie système et pas seulement l'ingénierie logicielle. C'est principalement le domaine du spatial (satellites, missiles, navettes spatiales, etc), du nucléaires, du transport d'énergie (genre RTE), de l'avionique, des systèmes d'armes et, maintenant, les véhicules autonomes, etc. Dans l'armée de terre, les systèmes de commandement sont principalement écrits en Java et C++ (logiciels de plusieurs millions de lignes). Pour ma part ces 10 dernières années, dans ces domaines, j'ai vu surtout du Java, du C++ et il reste aussi du C. Dans ce genre de système il est TOTALEMENT exclu d'utiliser des langages à typage dynamique comme Python ce qui est une aberration pour ce genre de logiciels. Pour les fusées, il y aussi de l'ADA.
Ma conclusion c'est que pour choisir dans quels langages vous souhaitez travailler, il faut regarder les domaines d'application. Ceux qui veulent faire du Python ou du PHP doivent plutôt choisir les applications Web et encore, ça dépend lesquelles parce que dans les applis de e-commerce qui utilisent des web services transactionnels, il y a intérêt à regarder de près les environnements et les frameworks utilisés par l'entreprise avant de se lancer. Pour le big data, il faut connaître R (et Java pour les grosses applis). En gestion, je ne sais pas mais il y a encore du ... COBOL ! Pour "l'urbanisation" des systèmes d'information il est utile de connaître xml et xml. Il est également très utile de se pencher sur l'ingénierie dirigée par les modèles (IDM) (MDE et MDA).
L'avenir du développement c'est la production de code à partir de spécifications formelles comme ce qui a été fait, dès 1998, par exemple, pour les aspects sécurité de la ligne 14 du métro parisien, à savoir, spécifications formelles en B (langage de Jean-Raymond Abrial) et génération automatique du code en ADA. On est loin des langages Python, PHP, Perl et VBA ou VB.net.
Pourquoi l'avenir c'est la génération automatique du code à partir de spécifications formelles ? Parce que les systèmes deviennent de plus en plus complexes et que le code à écrire va devenir très rapidement non appréhendable par un humain. C'est déjà le cas pour certains logiciels d'intelligence artificielle ou les règles engendrées sont issues d'algorithmes d'apprentissages à partir d'énormes quantités de données (big data).
4  0 
Avatar de Grogro
Membre extrêmement actif https://www.developpez.com
Le 01/12/2017 à 15:09
Citation Envoyé par el_slapper Voir le message
On ne parle pas de la même chose. Donc reprenons. Vous avez tout un tas d'outils très rigolos pour garantir avec certitude l'exactitude de vos specs. C'est sans doute bien utile dans certains domaines. Dans le mien, c'est surtout bien trop couteux(alors même qu'on jour avec la vie des gens - mais bon, le ministère préfère baisser les dotation informatiques des hôpitaux, tout en accroissant la pression réglementaire sur les éditeurs de logiciels, donc on fait avec ce qu'on a).
Voilà tout est dit. Du coup Jacti ça m'intéresse beaucoup des "méthodes formelles", mais outre l'automatisation de ligne de métro (et ça c'est déjà un projet de ouphe gueudin vraiment impressionnant), peux-tu nous dire dans quels contextes ça marche ?

Et puis il y a un point dans la réponse d'el slapper qui est fondamental : le plus dur à gérer dans l'informatique, c'est l'humain. Qu'il soit donneur d'ordre (MOE) ou utilisateur du produit. Ca n'est pas quelque chose que tu peux spécifier formellement. Ce n'est même pas spécifiable tout court.
4  0 
Avatar de berceker united
Expert confirmé https://www.developpez.com
Le 10/01/2017 à 13:04
Citation Envoyé par RyzenOC Voir le message
... mais PHP sa s'utilise avec un framework ...
La meilleur de la journée. T'es sérieux là ?

Tu peux utiliser PHP sans framework. Ces derniers, à l’échelle de l'histoire de PHP sont arrivé tardivement et avant nous développions sans. Même si ça te fait mal au cœur il y a beaucoup d'entreprises utilisant PHP ne le font pas avec un framework.

Pour revenir à la position de Java, il y a une explication à prendre en compte. Les SSII poussent beaucoup plus vers des projets en java alors que ça peut être fait en PHP. Pour l'avoir souvent entendu Java est un "langage plus noble". Cela m'a été souvent dit et sans filtre. Pourquoi ils poussent Java car il y a une meilleur facturation.
3  0 
Avatar de jojosbiz
Membre habitué https://www.developpez.com
Le 13/01/2017 à 11:11
Citation Envoyé par RyzenOC Voir le message
Je connais aucun dev php qui code from scratch c'est tous sauf professionnel !!!
Ton code en PHP pure ne sera pas réutilisable (le from scratch sera probablement infâme et buggera de partout), non transmettable (un nouveau dev qui arrive devra se farcir ton code et le comprendre, tandis que si tu utilise Laravel ou autre le dev se remplace plus facilement), ton code ne sera pas sécurisé (tu vas coder les 3000 fonctions pour vérifier les formulaires ?!).

Tu peut par contre crée ton propre framework, mais sa nécessite déja de maitrisé le langage ainsi que 2-3 framework.
Ça me fait mal au coeur de lire des trucs comme ça...c'est ridicule.

Parce qu'un "code" Laravel ça n'a pas besoin de temps pour être compris peut-être ?

Soit tu connais le language, soit pas du tout.

Ma boite cherche un dev Laravel actuellement et c'est loin d'être si facile à trouver...
3  0 
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web