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 !

Offres d'emploi développeurs : Java est toujours en croissance et le langage le plus demandé
Swift arrive 9ème dans cette étude détaillée

Le , par Anomaly

28PARTAGES

14  1 
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.

À ce titre, nous avons analysé les offres d'emploi postées en juin 2016 sur le portail Emploi de Developpez.com (qui comporte plus de 15 000 offres à l'heure où ces lignes sont écrites) pour en dégager les langages les plus souvent demandés. Et voici les résultats en graphique :



Sans surprise, on trouve Java en première place, avec 30 % des offres demandant ce type de compétence. L'importance de Java dans les technologies industrielles n'est en effet plus à démontrer.

En deuxième place, on retrouve JavaScript, avec 18 %. Il faut savoir que JavaScript ne se limite plus depuis longtemps à quelques lignes dans un fichier HTML pour gérer une quelconque animation, mais est devenu un pilier majeur du Web dans la réalisation de sites dynamiques, et d'applications fonctionnant dans le navigateur. Mais plus récemment, JavaScript peut également être utilisé côté serveur avec notamment node.js, et peut aussi être utilisé pour développer des applications mobiles. Ce langage majeur est assuré d'avoir un avenir radieux.

En troisième place, talonnant JavaScript, on retrouve PHP avec 17 %. Ce langage, originellement conçu pour scripter les pages personnelles, a bien évolué depuis ses origines, et sa version 7.0 est sortie il y a quelques mois.

C# se retrouve en quatrième place avec 10 %. Quant à VB.NET qui est l'autre option standard pour développer en .NET, sa demande ne représente que 0,5 %.

Pour ce mois de juin, on remarquera aussi l'absence notable d'offres d'emploi concernant le langage D, Flash et Typescript.

Mais ce n'est pas tout ! Nous en avons profité pour mesurer l'évolution de la demande depuis 2013. Et voici les résultats :



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

De cette évolution, nous pouvons constater en particulier, que Java continue de progresser au fur et à mesure des années et est donc une valeur sûre. Inversement, la demande en PHP et C# diminuent significativement. En ce qui concerne JavaScript, C et C++, la demande est stable. La demande en Python a bondi à 2015 tandis que Flash s'enfonce dans les éternelles ténèbres des technologies qui ont fait leur temps.

Pour information, les demandes concernant HTML et n'ont pas été comptabilisées, n'étant pas réellement des langages de programmation, et étant le plus souvent associés à JavaScript et/ou un langage serveur comme Java, PHP ou C#. Pour la même raison, nous n'avons pas comptabilisé ASP.NET, qui est toujours associé à un langage comme C# ou VB.NET.

De la même manière ont été exclues de cette étude les offres d'emploi concernant les SGBD vu qu'ils ne sont pas des langages de programmation ; ces derniers feront l'objet d'une prochaine actualité. 

Source : portail Emploi de Developpez.com

Et vous ?

Que pensez-vous de ces résultats ?

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

Avatar de frecco
Membre à l'essai https://www.developpez.com
Le 07/07/2016 à 11:31
Js sur le web est orienté temps réel, le reste non . Synphony cest peut être très bien pour créer des sites commerciaux bateau à la WIX, mais pour créer des applications novatrices d'ingéniérie, c'est du JS et du framework et limite un back end java ou php qu'il faut(Mais à ce moment là, Node et MongoDb sont fait plus pour ça.).

Moi si il me prenait de vendre des pots remplis de sables ou de résine de pains , je le fais sur WIX, je veux dire, programmer des sites web de vente à la papa, avec son php ou son java des années 1998-2000 c'est fini, ça c'était il y a 15 ans le rechargement de pages, voir 20 , gagner de l'argent avec ça ? Je n'y crois pas désolé .

Les seules voies nouvelles génératrices d'argent sont la créations d'applications réelles en JS avec des frameworks collaboratifs, des apps d'ingénierie sociale ou d'analyse commerciale ou industrielles reliées avec des librairies JS pilotant des robots ou du matériel électronique comme des contacteurs, à la limite cette partie peut être en java ou c++, étant donné que UML est garant d'une bonne application dans la mesure ou il est bien tenu à jour . Il faut aussi prendre en compte le plaisir de créer des classes, . Bien sur les écoles ont toujours 10 ou 15 ans de retard sur les évolutions hein...

Et quand je dis "générateur d'argent", je parle d'argent réel, je ne parle pas de levées de fonds ...
Les voies génératrices d'argent sont les connaissances générales de l'enseignement supérieur Français (Voir même de lycée...), appliquées à de nouvelles applications collaboratives en temps réel, avec Js et les framework. bon moi je préfère le mvc donc angular 1.5.(j'aime trop pas les nouveaux framework ils ont voulu se la pêter Java avec le typage de variable résultat, un code imbuvable et lourdingue, austère et non flexible)
La dernière fois j'ai lu un gars qui disait 'Ha ben pour ce projet, faut 6 mois avec java' , Ben ouais sauf qu'avec le noSql,le format JSON et angularJs faut 3 semaines par exemple. Mais d'un autre côté il faut avouer que Java étant rigoureux, et peut être plus rigoureux que JS( Je dirais moins permissif) cela est un bien à prendre en compte. La prrincipale qualité de Js était qu'il n'y avait pas le typage de variables obligatoire, ça c'est une tuerie j'adore ça !!! Et ça fait trop rire quand les dev JAVA et PHP doivent constamment convertir tout en JSON (JAVASCRIPT OBJECT NOTATION), Parce que c'est le meilleur format de données... mwa ha
Etre un énième concepteur de site de vente lambda(qui sera moins bien que WIX de toute façon), autant se reconvertir comme couvreur ou comme tondeur de pelouse(Couvreur est plus rémunérateur), c'est plus enrichissant. En plus, lutter contre l'anglicisation est épuisant à la fin, devant la masse de pantins anglicistes qui rodent partout.

L'avenir ? Js va commencer à piloter des robots, des réfrigérateurs, des télévisions. Vu que Js a maintenant la possibilité de créer des classes, il va prendre la place de tout le reste, je pense. A voir comment réagissent les USA, cela viendra de là bas. C'est pas sur, peut être que cela va rester plus ou moins comme ça, avec Java en premier. Primefaces m'a l'air super cool en plus alors je suis impatiente d'en faire !
Que de bêtises énumérées dans un seul message, et tant d'ignorance sur les principaux langages et acteurs du marché.
Déjà tu opposes JS et Java/PHP, or ces langages sont complémentaires. On peut très bien utiliser angular (et soyons fou, react) avec du JEE ou Symfony de pair en backend.
On peut également faire de l'isomorphisme en java car des moteurs JS existent dans cette techno. Et on peut avoir un back-end nodeJS qui interroge certaines briques Java dans un SI complexe aux technologies hétérogènes.
Pour ce qui est du JSON, cela s'utilise facilement avec des librairies adaptées (je pense à Jackson, mais il y en a d'autres sur le marché).
Ensuite, tu parles de MongoDB et de NoSQL, que tu opposes au SQL. Encore une fois, il ne faut pas opposer les bases de données relationnelles et le NoSQL, c'est différent et chacun possède son champs d'application où il est pertinent, même si on peut tout faire avec les deux. D'ailleurs sans rentrer dans les détails, le choix d'une base de données NoSQL n'est pas non plus à prendre à la légère, car il existe plusieurs types de SGBD NoSQL.

Enfin, chaque site web a ses besoins. Et certaines fonctionnalités restent assez associées aux langages VM (notamment les parties recherches et indexation des sites web, qui sont souvent interrogées en Java/Scala).

Pour ce qui est du " La prrincipale qualité de Js était qu'il n'y avait pas le typage de variables obligatoire", cela n'est pas propre au JS. D'autres langages sont typés dynamiquement, à commencer par Python ou PHP (d'ailleurs Python sorti en 91 est antérieur au JS sorti en 95). Cependant le typage statique permet de détecter les erreurs de programmation en amont (gain d'argent) et facilite la collaboration à plusieurs sur un gros projet. La programmation web va d'ailleurs dans ce sens avec PHP7, HACK, TypeScript (Hack étant réalisé par Facebook, TypeScript par Microsoft et utilisé par Google dans le moteur d'Angular2... sans doute des noobs du web).

Pour ce qui est question des classes, le JS permet la programmation par prototype, et l'ES6 a bien la notion d'objet (au sens classes) et tout ce qui en découle (héritage etc).

J'ajouterais qu'être fanatique d'une technologie tout en rabaissant les autres technologies en dit long sur le niveau de compétences supposé du posteur. Plutôt que d'opposer les technologies, il serait plus judicieux de comprendre les avantages et inconvénients de chaque technologie afin d'en déduire dans quels cas une techno sera plus légitime qu'une autre.

Ce n'est pas le langage qui fait le développeur, mais le développeur qui fait le bon code. Et un bon développeur qui maîtrise très bien l'OO n'aura aucun mal à passer à du ES6, TypeScript ou autre langage moderne.

D'ailleurs ça pourrait te surprendre, mais j'ai déjà vu des annonces d'emplois de migration de NodeJS vers Java/Scala. Et oui, outre la technologie, il faut également prendre en compte l'architecture du SI dans sa globalité et homogénéiser les technologies. Toutes les entreprises ne peuvent pas se permettre d'avoir X applicatifs construits avec Y technos à maintenir. Et puisque l'on parle de travail vu que c'est le sujet de cette étude, il n'est pas non plus idiot de s'orienter sur une technologies fortement demandée par les employeurs.
12  1 
Avatar de Vivien46
Membre averti https://www.developpez.com
Le 08/07/2016 à 12:01
Le but de ce topic n'était pas à la base de comparer celui qui a la plus grosse...
11  0 
Avatar de Pierre Louis Chevalier
Expert éminent sénior https://www.developpez.com
Le 14/07/2016 à 23:08
Les offres d'emploi ne donnent pas forcément les mêmes chiffres que les autres "études", par exemple Python est devenu très à la mode dans le milieu éducatif, c'est pas pour autant que toutes les entreprises vont aussi l'utiliser.
D'autres études prennent aussi en compte l'utilisation générale des langages, y compris donc aussi les utilisations par les amateurs passionnés, hors il à en à beaucoup sur Python ce qui fait gonfler les chiffres.
Pour finir le marché n'est pas le même dans tous les pays c'est normal que les chiffres soient différents l'étude n'est pas fausse pour autant.
Cette étude me parait au contraire parfaitement refléter l'état du marché de l'emploi actuel sur la Francophonie, ce qui est différent de l'utilisation des langages qui donnent forcément d'autres chiffres avec les amateurs inclus...
D'ailleurs même en faisant abstraction de cette étude, tu va toi même sur http://emploi.developpez.com et en 5 secondes tu trouves :
Java : 4233 offres d'emploi
PHP : 2180 offres d'emploi
Python : 717 offres d'emploi

J'ai fait le même test sur les autres sites emploi connus et j'ai à chaque fois trouvé le même genre de ratio, à savoir généralement 3 fois moins d’offres sur Python que sur PHP, donc l’échantillon qui est sur développez est totalement représentatif (et c'est le site qui à désormais le plus d'offres d’emploi de développeurs, quelques centaines seulement sur les autres sites, voir pire quelques dizaines alors qu'il y à en à plus de 15 0000 sur developpez.com).

D’où tu a vu qu'il y à plus d'offres d'emploi Python que PHP sur la Francophonie ?

Les résultats sont différents sur les sites américains, la part de marché de PHP sur la francophonie est donc effectivement surdimensionnée par rapport à d'autres marchés, comme le marché US par exemple.
11  0 
Avatar de jopopmk
Membre expert https://www.developpez.com
Le 07/07/2016 à 8:45
Salut,

des stagiaires que je croise on voit que le C# prend, petit à petit, le pas sur le Java au niveau de l'enseignement.
On peut donc imaginer un effet mécanique : moins de dev Java > plus de postes à pourvoir.

@sazearte : du point de vue extérieur à Python (le mien, je n'en ai jamais fait) je ne pense pas que c'est un langage de "programmeur du dimanche", mais un langage d'étudiant/logicien. On se fout de la bécane derrière, de l'implémentation réelle, pour se concentrer sur l'algo. Pour un code Python plus rapide que du C++ ? ... euh, non, ou alors du mauvais code C++.

Pour continuer la fête du troll sur quel langage a la plus grosse (même si c'est hors-sujet) : un tit comparo'.

edit : correction du lien défaillant.
7  0 
Avatar de kremvax
Membre averti https://www.developpez.com
Le 07/07/2016 à 0:31
Citation Envoyé par yetimothee Voir le message

Bah oui, UML, ce grand garant de la sécuité et de la fiabilité de nos systèmes d'information : http://programmers.stackexchange.com...pen-to-mdd-why

Ca me fait marrer quand je vois encore aujourd'hui, en 2016, des offres d'emploi qui exigent de maîtriser UML. Au secours!!
6  0 
Avatar de astralien3000
Membre à l'essai https://www.developpez.com
Le 07/07/2016 à 11:25
Y'a un type qui m'a osez me dire une fois : "Python, mais c'est pas performant sa !", bah si avec les bibliothèques adéquat (comme Numpy) on fait des trucs plus rapide que du C++, faut juste bien savoir utiliser ce langage.
Alors, autant je suis pas d'accord avec le fait que le python soit pas performant, autant :

Faut vraiment arrêter avec cet argument... "Si tu sais bien utiliser le python, il est plus rapide que du C++" ? Quel type de C++ ? Du C++ codé par un débutant ? Pas très équitable la comparaison...

Si tu utilise des bibliothèques codé en C natif, si tu peut être plus rapide que du c++.
Aux dernières nouvelles, un programme en C est compilable avec un compilateur C++ (sauf quelques rares exceptions), et obtient le même code assembleur. Et le C++ peux, dans certains cas alléger le temps d'exécution par rapport à un code C qui fais la même chose (cas relativement rare, j'en conviens, mais j'ai déjà eu affaire à ce type de cas).

Donc voila, oui, le C++ a des fonctionnalités qui augmentent le temps de calcul, c'est des fonctionnalités qui rendent le code plus agréable à écrire et à maintenir, le rendre plus générique, etc... Comme le python en fait. Mais, si tu compare les langages pur (sans bibliothèques), bein python est plus lent, et c'est normal, on lui demande pas d'être plus rapide, on lui demande d'être plus "agréable".

Et enfin, tu est en train de vanter les mérites de python en donnant des exemples qui sont codés avec moins de 50% de python. Et en plus l'autre moitié est codée dans la famille de langage avec laquelle tu compare le python (55% de C pour numpy, 30% de C(17%)/C++(14%) pour scipy, le reste étant du Fortran). Alors, je dis pas que le python n'est pour rien dans la vitesse de calcul de ces bibliothèques. D'ailleurs d'autres langages feraient sûrement moins bien avec 50% du langage dans la même bibliothèque.

Bref, pour du calcule scientifique je pense que Python est le meilleur langage.
Là je peux être un peu plus d'accord. La richesse des bibliothèques fais la richesse du langage.
6  0 
Avatar de Anomaly
Responsable technique https://www.developpez.com
Le 04/01/2017 à 21:39
Offres d'emploi : Java largement en tête, suivi par Javascript et PHP
Sur l'année 2016 sur le portail Emploi de Developpez.com

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 ?
6  0 
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