Sondage : quels sont les langages de programmation que vous détestez le plus en 2019 ? Pourquoi ?
Partagez vos avis

Le , par Malick

126PARTAGES

34  0 
Quels sont les langages de programmation que vous détestez le plus en 2019 ? Pourquoi ?
Chers membres du club,

Vous avez été nombreux à vous exprimer sur notre précédent sondage relatif aux langages de programmation que vous détestez le plus, cela aussi bien dans le cadre de vos activités professionnelles que personnelles. Il convient de rappeler que les résultats dudit sondage montraient que le JavaScript était à la première position des langages les plus détestés avec 45,45 % des voix sur un total de 264 votants. Le langage VBA arrivait en deuxième position avec 26,14 % de voix et était respectivement suivi par le Java (25,38 %, le PHP (21,21 %), Cobol (13,64 %), C++ (9,85 %), l'Assembleur (7,20 %), etc. Comme pour le sondage de l'année 2016, la grande surprise a été de voir que le top 5 des sondages les plus hais est resté le même.


L'analyse dudit sondage montre également que le bas du classement est occupé par les langages Rust, Kotlin, Scala, TypeScript, etc. La position de Kotlin semble être confirmée par une récente déclaration de Google qui le confirme comme son langage préféré.

Par ailleurs, un récent sondage lancé sur Developpez.com montre que le langage JavaScript, qui est le plus détesté à en croire le dernier sondage à ce sujet, occupe la troisième place du classement des langages que les participants souhaitent apprendre durant l'année 2019.

C'est donc dans l'optique de recueillir à nouveau vos avis sur les différents langages de programmation actuellement disponibles que nous avons estimé nécessaire de relancer le sondage pour l'année 2019, et voir si vos points de vue ont évolué entre-temps par rapport au sondage de l'année dernière. Rappelons que plusieurs éléments peuvent pousser un développeur à détester un langage, et parmi ces derniers il y a les spécificités techniques propres à chaque langage à savoir la syntaxe, la gestion des variables, la consommation des ressources système, la portabilité, et bien d'autres points.

À travers ce sondage, nous vous invitons à nouveau à voter pour les langages que vous n'aimez pas, cela en fonction de plusieurs critères parmi lesquels :
  • la conformité du langage aux exigences fonctionnelles actuelles ( architecture, applications Web, transactions bases de données, etc.) ;
  • les contraintes et les spécificités techniques (syntaxe, gestion des variables, etc.) ;
  • la portabilité (hétérogénéité des systèmes d'exploitation supportés, cloud computing, etc.) ;
  • la gestion de la sécurité (sessions utilisateurs, vulnérabilités, etc.) ;
  • la maintenance applicative (gestion des modifications, évolutivité, etc.) ;
  • et d'autres aspects que vous pourrez relever.

La qualité du débat viendra donc du partage d'expérience.

Lire aussi

Quel langage de programmation comporte le plus de vulnérabilités en matière de sécurité ? Une étude de WhiteSource

Python est sacré langage de programmation de l'année 2018 par l'index TIOBE. Deviendra-t-il le langage le plus utilisé des programmeurs ?

Android : Kotlin est désormais le langage préféré et recommandé par Google. Vers la fin de Java pour le développement Android ?

Emploi développeur 2016 : Java en tête, suivi par JavaScript et PHP

Offres d'emploi sur Developpez.com : les langages les mieux payés en 2016

Et vous ?

Quels sont les langages de programmation que vous détestez le plus ? Cochez-les dans les cases à voter.
Avez-vous été obligé de programmer dans un langage que vous n'aimez pas ? Comment avez-vous ressenti cela ?
Existe-t-il des langages que vous évitez totalement ? Et pourquoi ?
Ce genre de sondage est il "biaisé" car plus un langage est utilisé plus il a de chances d'être aussi détesté (comme par exemple JavaScript) ?

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

Avatar de nouknouk
Modérateur https://www.developpez.com
Le 24/05/2019 à 11:34
Citation Envoyé par Sodium Voir le message
le modèle basés sur les classes est dominant parce que c'est celui qui fonctionne le mieux
Tu fais deux erreurs fondamentales dans ta réflexion:

1- tu a une vue dichotomique des choses: il n'y a pas une solution qui serait 'le bien', l'autre 'le mal'.

Les technos sont complémentaires et addressent des problématiques et des besoins différents. Un marteau en ferraille est super pour planter des clous mais n'égalera jamais un maillet quand on pose du carrelage. De la même fçaon, le JS n'est pas adapté pour écrire le driver d'un GPU, pas plus que l'assembleur n'est adpaté pour coder une page web.

2- d'autre part tu occultes complètement le fait que l'informatique n'est en rien un monde figé ; il évolue énormément, très vite, et les outils (dont les langages) avec lui.

Les lambda, la généralisation des appels asynchrones avec des callbacks, les promises (parmi d'autres choses) sont des exemples de concepts qui existaient depuis 40 ans (tu ne devais pas être né), mais que le JS a mis sur le devant de la scène parce que ça répond à un besoin de plus en plus courant, alors qu'il était marginal il y a quelques temps. Parce que l'informatique et les besoins évoluent, tout simplement. Et donc les outils avec.

Il y a 20 ou 30 ans, un programme était un monolithe qui vivait en relative autarcie ; l'overhead d'un code managé consommait en proportion une très large partie de la puissance de calcul disponible ; la mémoire disponible était une ressource relativement rare et limitée et on devait en optimiser sont usage, etc...

De nos jours, la plupart des logiciels sont pensés pour interagir avec l'extérieur , ils ont des besoins forts en traitements asynchrones, doivent être souple quant à la forme des données en input qui peut provenir de différentes sources, les développeurs veulent des outils qui résolvent les dépendances en allant les chercher eux-même sur des repositories sur le net, etc...
A contrario, l'évolution exponentielle de la puissance de calcul disponible rend l'overhead d'un code managé quasi négligeable pour la plupart des besoins, la RAM est disponible en quantité, etc...

Bref, tes réflexions manquent cruellement de mise en perspective et de pondération (peut-être as-tu une relative jeunesse comme excuse ?). Je te conseille vivement de ré-évaluer tes "certitudes". Pars du principe que s'il n'y avait qu'une seule solution parfaite à tous les problèmes et en tous temps, il n'y aurait qu'un seul langage qui conviendrait à tout le monde, ce qui n'est évidemment pas le cas.

La diversité des langages et autres outils n'est que le reflet d'une diversité des besoins, des projets, et qui évolue par ailleurs au cours du temps.
11  0 
Avatar de PhilippeGibault
Membre habitué https://www.developpez.com
Le 22/05/2019 à 11:18
Attention, ceci a réellement existé dans un vrai langage , et peut-être que ça existe encore

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
''        ==   '0'           // false
0         ==   ''            // true
0         ==   '0'           // true
false     ==   'false'       // false
false     ==   '0'           // true
false     ==   undefined     // false
false     ==   null          // false
null      ==   undefined     // true
" \t\r\n" ==   0
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
> parseInt('06')
6
> parseInt('07')
7
> parseInt('08')
0
> parseInt('09')
0
> parseInt('10')
10
Code : Sélectionner tout
1
2
3
4
5
6
7
> {} + {} // Ceci n'est effectivement PAS un nombre
NaN
> {} + [] // logique IMPARABLE
0
> [] + {} // fuck la commutativité
"[object Object]"
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
> '5' + 3
'53'
> '5' - 3
2
> "Vous en étiez à... peau de couilles je crois ?" + 1
'Vous en étiez à... peau de couilles je crois ?1'
> "Vous en étiez à... peau de couilles je crois ?" - 1
NaN
Code : Sélectionner tout
1
2
3
4
5
6
7
> Math.min(null, 1234)
0
> Math.min('null', 1234)
NaN
> Math.min('1', 1234)
1
12  3 
Avatar de dragonjoker59
Expert éminent sénior https://www.developpez.com
Le 23/05/2019 à 16:45
J'ai répondu Windev, parce qu'après m'être battu pendant 5 ans avec, quand on m'en parle, ma seule réaction c'est : "Windev, c'est dommage".
On peut faire énormément de choses très simplement, l'aide est globalement bien faite, mais dès qu'on sort des sentiers battus on se retrouve avec des fonctionnalités pas finies et buggées.

Au final ils ont de très bonnes idées, mais il me laisse l'impression d'un truc pas fini, à chaque fois.
Et on ressent bien qu'il est fait pour travailler avec lui-même : si tu bosses avec un SGBD autre que Hyperfile tu es au final vite limité (je n'ai plus les détails en tête, ça fait 5 ans que je n'y ai plus touché, pour mon plus grand bonheur).

Par contre, il a pour lui qu'un non développeur peut faire énormément de choses sans avoir à toucher au code.

Ah oui, dernier point qui est pour moi rebutoire : les sources ne sont pas des fichiers textes, mais des fichiers binaires, qui ne sont ouvrables que via l'éditeur (WTF ???).
Et la stratégie commerciale à vomir... (parlez en à vos collègues femmes, vous verrez ce que je veux dire)
8  0 
Avatar de Lcf.vs
Membre éclairé https://www.developpez.com
Le 22/05/2019 à 9:16
Et sur ce sondage, y aurait-il 45.45% des votes réalisés par un bot de Sodium ?
7  0 
Avatar de Sodium
Membre extrêmement actif https://www.developpez.com
Le 22/05/2019 à 11:35
Citation Envoyé par Lcf.vs Voir le message
On additionne pas des pommes et des poires, les opérations décrites ci-dessus n'ont juste aucune raison d'être.
Justement, un bon langage ne te laisse pas additionner des pommes et des poires. Un langage faiblement typé il te fait de la compote. JavaScript lui tu lui donnes des pommes et des poires et il te fait un faisan, un ballon dirigeable, une tour de babel ou un nénuphar.
16  9 
Avatar de rawsrc
Modérateur https://www.developpez.com
Le 22/05/2019 à 11:39
Citation Envoyé par Lcf.vs Voir le message
mais osef, un dev un minimum pas trop crétin ne fait pas ce genre de choses ^^'
je ne parierai pas ma chemise dessus vois-tu
9  2 
Avatar de grunk
Modérateur https://www.developpez.com
Le 22/05/2019 à 15:15
Citation Envoyé par Lcf.vs Voir le message
C'est exactement ce que je dis, ce n'est pas le JS, le problème, mais la façon dont certains s'en servent...

  • volatilité : suffit de pas choisir ses outils sur base de la mode du jour mais bien sur des approches plus stables, plus proches du natif, plus facilement remplaçable sans devoir tout réécrire, ...
  • dépendances : c'est toi qui les choisis, hein, ça ne devient une boule de pus que si tu fais en sorte
  • building : rien ne t'oblige à passer par des bundlers, les browsers modernes supportent bien les modules, à présent
  • Aujourd'hui j'ai un 3 projets Angular 2,4,5,6,7 . Rien ne me garantie que dans 5 ans Angular sera toujours là. Idem pour vue.js ou react qui sont pourtant les acteurs majeurs actuellement. Y'a qu'a voir le résultat avec Angular 1.x qui se retrouve finalement très vite abandonné.
  • C'est effectivement moi qui choisi mes dépendances , en revanche je choisi pas ce dont elles dépendent ... J'au aussi la solution de tout refaire pour ne dépendre de personne , mais personne ne fait ca. Donc un simple npm install d'une dépendance peut me conduire à me retrouver avec 200Mo de lib (j'exagère un peu mais parfois pas tant que ça).
  • J'ai pas le luxe de faire des app uniquement pour les navigateurs modernes. Je suis même dans un contexte où quand l'utilisateur à autre chose que IE c'est la fête , donc non je n'ai pas beaucoup le choix. Et c'est un des autres problème de JS , (qu'on rencontre coté android aussi, mais avec des solutions) c'est la fragmentation.


En fait pour moi le principal défaut de JS reste sa jeunesse (quand on parle de js moderne). L'écosystème évolue beaucoup trop pour en faire un candidat sûre dans mes développements pro.

A côté de ca j'ai fait un petit gestionnaire de dépendance pour C++ en js et c'est probablement un des langages les plus adaptés pour ce genre d'exercice.

Citation Envoyé par Sodium Voir le message
Bah non, j'aime TypeScript qui est plus ou moins ce que devrait être JS (moins les vérifications au runtime), quand JS aura implémenté tout ça sans devoir passer par 200mo de dépendances j'adapterai mon opinion
je suis du même avis , mais je pense que ça vient surtout de mon incapacité à embrasser les prototypes et autre truc un peu bizarre de js.
7  0 
Avatar de nouknouk
Modérateur https://www.developpez.com
Le 23/05/2019 à 22:55
Citation Envoyé par Sodium Voir le message
JavaScript est bien orienté objet par contre, il a juste sa façon très personnelle de le faire, et par très personnelle je veux dire stupide.
C'est l'histoire d'un charpentier qui rencontre un électricien qui se sert d'un tournevis ; le charpentier obtus ne peut s'empêcher de se moquer de l'électricien et de son tournevis, car cet outil est absolument nul pour enfoncer des clous de façon efficace.

Même chose ici: les 'haters' du JS sont avant tout des développeurs obtus qui ne connaissent que l'OO basé sur le principe de classes ; en se moquant du JS, il ne font que trahir leur méconaissance profonde de l'OO prototypal, et montrent leur incapacité manifeste à enlever les oeillères qu'ils se sont forgées avec le temps.

La répartie préférée des fanatiques de JS c'est qu'on ne l'aime pas parce qu'on ne le comprend pas. Très bien, mais pourquoi n'a-t-on pas la même relations avec tous les autres langages alors ?
Tu as maintenant ta réponse: l'immense majorité des développeurs ont été biberonnés aux langage OO basés sur des classes, des interfaces, de l'héritage. Ils sont incapables de penser autrement, faute de pouvoir prendre du recul sur leurs propres outils.

Et puis il y en a quelques autres, souvent ceux qui sont tombés dans la marmite de l'informatique à ses prémices, et avant l'hégémonie des langages style Java, C++). Ceux-là sont capables de prendre plus de recul, de comprendre que les classes c'est pas la seule façon d'aborder le sujet de l'OO (ou du dev. en général), et sont aptes à comprendre un approche différente, qui a elle aussi ses atouts.
11  4 
Avatar de Mrsky
Membre éprouvé https://www.developpez.com
Le 24/05/2019 à 0:39
Si on omet la guéguerre JS/anti-JS, les réponses suivantes sont assez intéressantes pour le monde du web en comparaison avec le dernier sondage il y a 2 ans.

Dans les flops, Python passe de 6% à 14%, TypeScript de 1.9% à 8.5%.
Dans les tops, Java passe de 25% à 16%, PHP de 21% à 14%.

A noter l'apparition de Windev dans la liste qui polarise 20% des votes, même dans le cadre d'un vote à choix multiple avoir une mauvaise techno (selon l'avis des votants contre Windev) dans la liste valorise positivement les autres technos. Difficile de savoir quel est l'impact réel de ce nouveau choix, mais il me semble que c'est facile de se dire "Java/PHP bof mais à côté de Windev c'est ok" et donc ne pas voter contre, ce qui explique une partie des gaps non-négligeables entre les 2 sondages.

Il y a une montée du typage fort ces dernières années et c'est à priori globalement apprécié. PHP est désormais presque fortement typé (PHP7.4 devrait achever cette transition), c'est optionnel mais ça fait parti du langage contrairement a Python (un script Python fortement typé n'est pas exécutable par Python alors que l'équivalent PHP l'est). Plusieurs personnes dans mon entourage se sont même remotivées à aller voir du côté de Java pour du backend web, et de mon petit cercle non-représentatif l'avis est unanime : c'est ok mais le système de licence et d'update est vomitif, puis ils vont voir vers Go et même Rust.

Python pour le web semble en déclin (ma constatation personnelle + des lectures sur la toile). Il y a encore 3-4 ans (pré-PHP7) il y avait une véritable fuite des dev. PHP vers Python pour plusieurs raisons : langage plus propre et plus respecté et PHP n'avait aucun argument pour lui hormis le monde du travail en France. Aujourd'hui les gens qui quittent PHP se dirigent plutôt vers JavaScript et même certains reviennent à PHP.

Du coup je ne comprend pas trop la montée négative de TypeScript, qui est dans cette veine du typage fort pour les langages interprétés. Peut être que la mouvance JavaScript n'est pas encore atteinte par ce phénomène.

EDIT : TypeScript était peut être très peu utilisé il y à 2 ans, ce qui pourrait expliquer cette différence.
7  0 
Avatar de AoCannaille
Membre émérite https://www.developpez.com
Le 22/05/2019 à 12:01
Citation Envoyé par Lcf.vs Voir le message
Cela prouve juste que certains devs ont besoin d'une béquille pour avancer... doit y avoir une épidémie de TDA chez les développeurs
Développer ne devrait pas être une torture, sinon on serait resté à l'assembleur! (quoi que, même si la syntaxe est immonde, avec les jeux d'instructions si réduit, on peut vraiment tout maitriser assez vite!)

Le fait est qu'on nous laisse jamais le temps de faire bien les choses. Donc penser à tous les pièges syntaxique du langage avant de pousser en prod, c'est compliqué. S'il y a des outils qui peuvent alléger cette charge mentale, je prend!

Développer n'est pas une fin en soit, on développe quelque chose pour un métier, une application. Notre temps et nos compétence doivent être au service de ce métier, pas à rester dans notre monde de dev.

L'important, c'est de connaitre les faiblesses d'un langage et d'y porter une attention suffisante pour éviter les catastrophe. Limiter cette attention est un objectif en soit.
9  3 
Contacter le responsable de la rubrique Programmation

Partenaire : Hébergement Web