• [^] # Re: Un peu d'histoire à la Higgins et café du commerce, et du troll velu et méchant ...

    Posté par (site web personnel, Mastodon) . En réponse au journal COBOL : c'est dans les vieilles marmites.... Évalué à 6.

    Combiens d'idées "géniales" ou projets miraculeux doivent finir à la benne avant d'avoir de l'expérience? Je ne sais pas, mais je ne pense pas que la réponse à cette question soit propre à un langage particulier.

    Trop de projets je le crains, et c'est pas plus mal ...parce-que je vois parfois des « tests » ou des « POC » qui sont poussés en production et franchement la benne aurait été un cadeau (et de réels économies) !

    Pour développer en C/C++/Java/Python/Kotlin/Groovy, 4 stagiaires sur 5 fait du code inutilisable en production après l'école. Peut-être que d'autres langages offrent un cadre plus restrictif, donc permettrait de changer ce ratio, mais je n'y crois pas trop, ou alors, le prix à payer ne serait pas négligeable.

    Alors, il y a deux raisons principales à cela à mon avis.
    Premièrement l'école ne fait qu'une/un initiation/survol au/du langage et les élèves n'ont généralement pas assez de pratique/heures pour bien les familiariser au langage : le stage d'entreprise est donc un TP en grandeur nature pour le coup. Or les langages ont des spécificités et des subtilités qui s'acquièrent avec le temps, contrairement aux principes d'enseignement qui font apprendre quelques motifs et pour le reste les gens vont taper sur un moteur de recherche et copier des lignes sans trop comprendre ce que ça fait...
    Deuxièmement, les élèves ne sont plus formés à l'analyse et à l'algorithmique, et du coup ces futurs devs ne se rendent pas compte de certaines énormités qui ne sont pas liées à la syntaxe du langage mais à l'algo sous-jacent. Je remarque que trop de notions que j'aurais cru basiques (comme comprendre le type de structure qu'on est en train de manipuler ou comment dérécursiver etc.) sont incomprises.

    C et pensé et conçu pour être très proche du matériel (c'est quasiment le niveau qui suit l'assembleur pur et dur) et laisse donc beaucoup de libertés (après tout on est sensé savoir ce qu'on fait.) Du coup c'est catastrophique par rapport aux formations actuelles qui survolent un peu trop, et c'et aussi de là que vient la réputation (certes infondée) de difficulté.
    C++ et Java, ainsi que tous les langages qui reprennent la syntaxe du C essayent de limiter certains travers (on dit par exemple que C++ est une surcouche de C mais il y a plein de constructions bordeline permises par la norme qu'un compilateur purement C accepte mais que le compilo Cpp ne laisse pas passer) ; mais ce n'est pas assez cadrant par rapport à ce que font les stagiaires. Dans le cas de C, vu sa non maîtrise, une approche quand on ne doit pas exploiter certains aspects de l'architecture matériel (donc programmes un peu génériques), serait de revenir au Pascal qui est plus structurant. On peut aller encore plus loin en passant à Ada dont le compilateur est à la fois plus strict et un peu didactique. Ces deux langages sont en plus syntaxiquement moins laxistes (Ada encore plus car ayant appris appris de tous ses prédécesseurs) et supportent le paradigme objet aussi. Il doit y avoir d'autres langages comme ça mais qui malheureusement ne sont pas à la mode...
    Par contre, on ne traite qu'un point et il n'y a pas d'outil à ma connaissance pour remplacer l'analyse.

    "It is seldom that liberty of any kind is lost all at once." ― David Hume