Les mauvais programmeurs ont de mauvais langages

Lorsque l’on commence à comparer les langages en terme de qualité des logiciels produits, on en vient souvent à la conclusion que c’est le développeur qui fait la différence, plus que le langage. En ajoutant aussi que quand même certains langage plus strict “force” les développeurs à produire du code de meilleurs qualité.

En fait j’ai l’impression que d’une certaines manière c’est le contraire qui se passe. Prenont les langage “serieux” comme C++ ou Java. On peut tout à faire produire du code infame avec C++ ou Java. A l’inverse un langage comme VB, plutôt mal considéré, peut être utilisé pour produire du très bon code.

J’avais tendance à considerer que les language objects compilé comme Java, C++ ou plutôt C# sont plus adaptés à la production de code de qualité, alors que les language de script non strictement objet comme Javascript, PHP, VBScript tendent à produire du code de moins bonne qualité.

Mais j’ai lu du code PHP particulièrement bien structuré, et du code Java très mal écrit.

Alors pourquoi cette idée continue à rester dans ma tête (et dans d’autres d’ailleurs…) ?

En fait je crois que c’est simplement que la difficulté d’accès d’un langage est en quelque sorte un filtre, une selection. Les langages simples d’accès comme PHP ou VB attirent naturellement les developpeurs autosdidactes ou débutants, parmi lesquels tous ne deviendront pas de bon développeurs. Par contre l’apprentissage de C++, voire Java ou C# demande plus d’investissement et donc ces langage attireront des développeurs plus motivés qui seront souvent meilleurs.

Et finalement l’explication est là : on préfére les langages élitistes parce qu’ils n’attirent que l’élite.

Evidement les langages plus faciles permettent d’avoir une main d’oeuvre moins chère, puisque souvent moins qualifiée. Cela aura encore plus tendance à éloigner les bon développeurs de ces langages. Je me rappele de collègues développeurs C++ qui traitait les développeurs VB de bouffeur de quiche. Pour rien au monde ils n’aurait voulu “s’abaisser” à écrire en Basic, de peur de se noyer dans une mer de developpeurs moyens. Pourtant tous n’étaient pas de bon développeurs C++.

La conclusion à tout ça ? Eh bien encore une fois, ce n’est pas l’outil qui fait le bon artisan…

7 commentaires pour “Les mauvais programmeurs ont de mauvais langages”

  1. cagou dit :

    Evidemment c’est vrai dans beaucoup de cas…

    Mais attention certaines de vos remarques peuvent affecter… de vieilles connaissances…lol

  2. Le Saint Bernard, Empereur du Chaos dit :

    Ça commence à faire… quelques années que je dis la même chose. Et j’adore C/C++/Objective C (surtout le dernier, et non je ne suis pas machinetocard), moins Java, nettement moins C#, infiniment moins VB. Question de goûts, probablement…

    Il me semble que l’apprentissage des bonnes pratiques de programmation se fait plus facilement dans des langages absolument pas cités ici, je pense à Pascal, à Ada, des langages très hautement structurés, et dont le monde industriel ne veut pas… La question de savoir si les industriels en veulent ou pas est à la limite "irrelevant", comme disent nos amis bouffeurs respectivement de bacon à la menthe et de hamburger, mais le fait qu’on ne voie plus ses langages dans les formations des jeunes en école est un signe. Un signe qu’on est bien dans la merde pour les années à venir à mon avis. Car on n’apprend plus aux gens à structurer leur code "de force", comme on devrait le faire. J’ai à titre personnel commencé à apprendre la programmation à 7 ans. Aujourd’hui j’en ai 27 et mon analyse rétrospective est… différente. Si je n’avais pas passé ma phase critique sur du Pascal, puis appris de manière formelle bien plus tard avec un très bon intégriste du code, je serais aujourd’hui un incompétent de plus, j’en suis absolument certain, doué ou pas que j’étais. Et je pense que vraiment la première étape m’a permis d’appréhender correctement la seconde. Bref, comme souvent, la formation d’abord, après on cause… Les excellents formateurs (profs ou autres) sont rarissimes, si au moins ils utilisaient des outils adaptés pour l’apprentissage plutôt que des outils imposés par une industrie qui croit que 5 ans comme un boeuf sur un langage nous le fait mieux maîtriser qu’une année et une bonne approche de l’informatique, je pense que le niveau général des programmeurs se réhausserait sensiblement.

    Du reste à chaque tâche son outil. C/C++/Objective C et hélas des langages comme FORTRAN permettent des niveaux d’optimisation atteints par fort peu d’autres langages, tous compilés, et ça aucun quiche eater ne pourra jamais rien contre :-)
    Sans aller jusqu’à prôner (ça jamais !) un retour à l’assembleur, disons que programmeur, à ne pas confondre avec graphiste codouilleur de PHP, c’est un métier, et contrairement à certains langages, ça ne s’apprend pas en trois semaines, et ça ne peut pas non plus s’apprendre n’importe comment.

  3. Alexis KARTMANN dit :

    Cher Saint Bernard, tu serais donc un élitiste ?

    En fait pas tant que ça, puisque tu considère que la formation est capitale.

    On ne peut qu’être d’accord. Pour ma part je suis de plus en plus persuadé que le langage utilisé n’est qu’un des aspect de la programmation. Et c’est vrai que certains langage facilite l’apprentissage.

    Mais si Pascal a disparu de l’enseignement, c’est plutôt parce que les langage procéduraux sont passés de mode, balayés par les langage objet, que ce soit à l’école ou dans l’industrie. Parce ce que enseigner des langage unitilisé n’a jamais géné les enseignants (qui se souvient du LSE ?).

    Je fais du développement depuis 23 ans et j’ai encore l’impression de m’améliorer. Et c’est vrai qu’avoir fait de l’assembleur me permet quelquefois de mieux comprendre pourquoi certaines façon de coder sont plus efficace que d’autre.

    Mais le sujet de mon billet n’était pas l’enseignement de la programmation (bonne idée de sujet d’ailleurs), mais pourquoi certains outils ont meilleure réputation que d’autres ?

    Et finalement, bidouilleur de PHP, c’est pas si mal, si ça permet à certains non programmeur de realiser leur site perso ? Ce qui est plus gênant pour des professionels c’est quand un bidouilleur prend leur boulot, non ?

    Parce qu’un bon développeur Web, rien que le temps d’assimiler CSS, HTML, Javascript, un langage de script serveur (ASP/PHP), plus toutes les recommendations de design, c’est pas 3 semaines, c’est plutôt 3 ans !

  4. Le Saint Bernard, Empereur du Chaos dit :

    Je suis élitiste dans le sens où j’estime que programmeur c’est un métier. Un métier qui peut s’apprendre comme un loisir (je suis pour l’essentiel autodidacte) mais un vrai métier quand même.

    Effectivement, pour moi "professionnel" bien que pas du tout par la voie classique, qui fais du développement depuis 20 ans dont plus de 5 en tant que professionnel, le langage importe peu, et il n’est qu’une forme qu’on donne à ses idées algorithmiques. Et puis j’en ai pratiqué tellement que je n’y prête même plus vraiment attention, alors que les lecteurs de mon CV semblent y accorder une importance capitale… (encore un autre sujet que le lamentable des DRH en info…) Très rares sont les spécificités d’un langage difficiles à retranscrire dans un autre que j’ai tendance à utiliser.

    Pascal existe en version objet chez Borland, Ada existe en version objet avec GCC, Ruby, Python, même tcl sont de meilleurs langages objet pour apprendre que C++ ou Java. De même, on peut programmer "objet" en C de base, l’orientation objet d’un langage n’a rien de vital pour ça, même si ça aide grandement, mais ça aucun décideur n’est souvent foutu de le comprendre… C est un langage sur lequel se concentrent tant de compétences que, même si c’est loin d’être mon langage préféré, si j’ai le choix je travaillerai dessus, parfait symptôme de la critique lue ci-dessus. Les structures de pointeurs sur fonction sont parfois de merveilleux outils pour coder "objet", et dans tous les cas quand on travaille bien, suffisent, même si elles ne garantissent pas le travail de qui passe derrière. Moi aussi, au bout de 20 ans révolus j’ai le sentiment de continuer à m’améliorer, d’une amélioration qui pourrait aussi servir dans les langages que je n’utilise pas, mais parfois je me demande si ce n’est pas parce que mon environnement baisse de niveau… Ce qui manque à beaucoup de programmeurs aujourd’hui, c’est ce qui fait la fierté des écoles françaises dans tant d’autres domaines que la programmation : les BASES. Je suis convaincu que qui apprend à programmer dans son coin, ou parfois en école (de graphisme ou de comptabilité par exemple) en PHP ou en BASIC n’arrivera JAMAIS au niveau de celui qui apprendra dans son coin en Pascal ou en Ada. Parce que ces langages forcent l’apprentissage des bases, plutôt que de "juste fonctionner". A cause de ce manque de bases, un programmeur PHP aura grand mal (sans parler en plus du problème de l’intégration dans le code HTML) à apprendre un autre langage, quel qu’il soit. De même pour le spécialiste du BASIC… Je crois que c’est une source essentielle de la mauvaise réputation de pas mal de langages. De même qu’un coboliste a du mal à faire autre chose que du Cobol (oui oui, j’admets, les cobolistes c’est spécial, et très extrême…), un bidouilleur PHP aura du mal à coder autre chose que du PHP, comme je l’ai dit, et de plus son PHP sera souvent du n’importe quoi. Que celui qui est un real programmer et n’est pas d’accord me jette la première caillasse… Un code "n’importe" quoi qu’il n’aurait même pas osé tenter en C. Même s’il est très souvent par ailleurs un excellent graphiste :-) On n’a pas envie de repasser sur du code de ce genre de personne, qu’on soit ou non élitiste.

    Alors effectivement, les écoles d’ingénieurs font souvent beaucoup mieux que ça, et nous sortent quelques programmeurs valables. Mais le niveau baisse. Peut-être en grande partie à cause de l’accessibilité de l’informatique personnelle, d’un manque d’élitisme, je ne sais pas…

    L’élitisme n’est pas une solution, mais l’ouverture totale au tout venant a mis le métier dans une situation plus que critique, alors même qie personne ne semble se rendre compte que les compétences approchent de la retraite, et que des personnes loin d’être des professionnels prennent des places trop critiques en entreprise. Si quelques pages sortent, même si c’est totalement pas maintenable, la patron croit que son graphiste avec trois semaines de PHP vaut un vrai programmeur, et à toute petite échelle pour un projet sans SAV il a hélas raison… La gestion d’entreprise se fait bien trop à l’échelle de l’opérationnel, parfois du tactique, et plus du tout du stratégique, c’est un problème… Je n’ai pas de solution à proposer hélas, si ce n’est peut-être de donner de l’air ou un coup de pied au cul à nos entreprises… Très flou et peu exploitable !

    Voilà voilà, c’est rare, mais j’ai défendu une vue élitiste… J’espère sinon avoir été convaincant, au moins avoir apporté quelques idées intéressantes… Tout ça sans souffler, je suis fort (?), j’espère que je n’ai pas fait trop de fautes, et ne me suis pas trop laissé emporter par mon verbe !

  5. Alexis KARTMANN dit :

    J’ai l’impression qu’au fond nous sommes d’accord.

    Je ne suis pas sur que le niveau baisse, je crois surtout qu’il y a de plus en plus de développeurs, donc forcement en proportion le niveau baisse.

    C’est un problème fréquent dans toutes les activités qui ont une forte croissance, parce que naturellement plus de monde est attiré par la croissance.

    Maintenant qu’il y moins de besoin en informatique, j’espère nous allons naturellement aller vers une réduction des informatiens amateurs, mais ça risque de prendre du temps.

    Merci de ne pas dire trop de mal des cobolistes, j’ai moi même développé 6 ans en COBOL…

    En tout cas merci de la qualité de tes commentaires, j’adorerais lire ton blog si tu en as un.

  6. Le Saint Bernard, Empereur du Chaos dit :

    J’ai codé un moteur de blog en CGI en C vers… disons 1995, selon mon souvenir. Je ne savais même pas que ça s’appellerait comme ça un jour. Honnêtement c’était de la merde :-) DotClear est beaucoup mieux (en dehors de quelques défauts que je veux croire de jeunesse, je trouve vraiment l’outil tout à fait impressionnant et bien meilleur que ses concurrents).

    Bref, pour X raisons, moi qui suis sur le net depuis juin 1993, je m’interdis de trop m’y impliquer. Je n’ai jamais écrit "comme un chatteur" même sur IRC, dans ce qu’on appelle aujourd’hui le style SMS qui est apparu bien plus tôt que les SMS et ailleurs que sur les téléphones cellulaires. L’"élitisme", la prise de distance, peu naturelle et un peu forcée, mais choisie et probablement nécessaire, continue. J’ai naturellement une tendance à l’excès, que je préfère contenir en fait. J’aurai peut-être un blog dans les mois qui vont venir, car il est probable que j’aurai de vraies choses à dire au quotidien à ce moment-là, mais le scoop qui n’en est pas un ne sera pas pour aujourd’hui. Je prendrai sans doute à ce moment-là un nom de domaine du genre "empire-du-chaos.net" ou quelque chose dans ce genre-là, car je suis vraiment le Prince du Foutoir en dehors de mon code, et ça me va bien :-) Nous n’y sommes pas, j’ai encore une mission à finir…

    Au sujet des cobolistes, j’ai un peu de mal, j’en ai vu quelques uns en reconversions à VB en 1998 ou 99 (ceux qui ont bouclé leur boulot "an 2000" (ou "9999") tôt ont eu droit à leur tentative de reconversion tôt aussi…) et qui n’y arrivaient pas, alors que je n’étais moi-même pas officiellement analyste-programmeur et que je cherchais à en acquérir officiellement le statut, alors forcément j’ai un peu de mal… Désolé, j’ai mes petites antipathies. Elles se limitent toutefois aux purs cobolistes, ceux qui ne connaissent rien d’autre. Ceux-ci, à mes yeux, ne sont pas des programmeurs. Même pas des mangeurs de quiche. Au mieux des vestons qui touchent à un clavier Ou alors j’ai pas vu les bons….

    Enfin, ce qui me fait dire qu’il y a une baisse… et je pense qu’il y a une baisse, c’est surtout la dépendance de certains envers l’interface graphique, le fait que beaucoup de programmeurs n’en soient pas (je ne parle pas forcément de niveau scolaire, je n’ai même pas le bac et j’ai une assez haute estime de moi-même…), le fait également que certains apprennent beaucoup trop (à cause du marché) des outils plutôt que des méthodes. Dès qu’on a cette approche-là, on est très mal parti. L’élite d’aujourd’hui vaut celle d’hier. Mais malgré les volumes de programmeurs formés, j’ai l’impression qu’elle arrive à être encore moins nombreuse. Ou à peine autant. Ou super-bien planquée. Mais là ça mériterait quelque étude…

  7. Alexis KARTMANN dit :

    Je crois aussi que ça dépends des entreprises dans lequelles on travaille.

    De mon côté j’ai un blog depuis que je ne travaille plus. J’arreterais sûrement quand j’aurai trouvé du boulot…

Laisser un commentaire


Propulsé par WordPress