Le 16.10.22 à 12:49, Concombre Masqué a écrit :

Avec C j’étais perdu en terme de structurer un programme (NB: je ne suis pas un 
grand dév., plutôt hobby et personne du traitement du signal ne se cantonnant 
pas à Matlab).

Tous mes développements sont constitués d'outils, de librairies de bas niveau et finalement d'autres de plus haut niveau. Chaque fonction était un fichier (*.c), associé à un fichier *.h, avec des flags permettant d'utiliser le fichier *.h comme "définition" ou comme "déclaration"; ceci évitant d'avoir des versions séparées, et donc des informations potentiellement différentes.

Tout ceci était gérer par un IDE écrit en TCL/TK et utilisant un gros fichier GNU Make contenant plein d'automatismes et de pratiques conventionnelles (définies par moi un fois pour toute). Les tests de conformité étaient intégré au code et devaient ne pas avoir d'erreur pour la construction automatique des librairies et leur installation

Ce qui fait que je pouvais avoir des centaines de fichiers sources (et includes), mais la maintenant et le développement était hyper facile. J'avais tout automatisé et je n'avais pas besoin de perdre mon temps à configurer des usines à gaz hyper fragiles pour ça.

Ah, j'oubliais... la doc de la signature des fonctions était automatiquement générée en HTML et intégrée à la doc de la librairie.

OCaml m’a appris énormément de ce point de vue.
Rust sera peut-être la synthèse ou plutôt le "sweet spot" performant entre C et 
le monde ML.

J'ai aussi mis très vite mis à la poubelle tous les trucs lourdingues et non-intégrés liés à *ML et autres. Il vaut mieux définir des choses simples que tu peux faire et maintenir avec un minimum d'effort, plutôt que de te lancer dans le développement de monstruosité in-maintenable et qu'à la fin tu ne peux même plus faire évoluer tellement c'est gros.

D'ailleurs, cela rejoins exactement ce qu'essaie de faire SCRUM, qui démontre l'échec des ces trucs à grands projets...

Carbon de google, cppfront d’un tout bon de chez krosoft s’inspirent largement 
de Rust. Et ce sont deux candidat pour remplacer ou faire drastiquement évolué 
C++. Google, Krosoft...

Un langage de programmation est toujours destiné à faciliter l'écriture de code pour un type de problème donné. Dans les années 60, on avait trois langages qui avaient clairement émergé, CAD FORTRAN, COBOL et ALGOL. Comme aucun de ces langage n'était satisfaisant pour traiter d'autres problèmes que cexu pour lesquels ils avaient été conçus, des ingénieurs ont eu la brillante idée de vouloir réunir le "meilleur" de chacun de ces langages pour un faire un seul. Oui, brillante idée qui pense qu'en réunissant le meilleur de chacun, on va avoir un truc extraordinaire à la fin. Le résultat fut "PL1"... un échec retentissant car finalement on a eu le pire de chacun... Pour moi, un gigantesque éclat de rire ! Donc, je regarde tout langage qui prétend faire la synthèse d'autres langages avec un filtre assez ironique en me remémorant PL1. Et tu sais quoi `Je suis chaque fois mort de rire. Combien de langage soit-disant révolutionnaires depuis 1990 ? Combien sont vraiment utiles et n'engendrent pas de nouveau problèmes, souvent pire que les précédents ? On oublie le fait qu'un bon langage de programmation c'est avant tout de la simplicité et un éco-système.

Autre magnifique contre-exemple... ADA :-)

Le seul langage qui a trouvé grâce à mes yeux, depuis cette époque, est Python. Donc, j'en reste à la combinaison Bash/Python/C suivant les besoins et je ne vois toujours aucune bonne raison d'ajouter un autre langage. Sachant qu'aucun langage ne va remplacer ce trio infernal à mon avis.

https://cichocinski.dev/blog/trying-new-programming-languages-helped-grow-software-engineer

Oui, en théorie et je passe souvent du temps à investiguer des nouveaux langages (j'ai un peu cessé depuis un moment). Mais... Si tu es employé par une entreprise, tu n'as pas le choix du langage ! Si tu dois engager des développeurs, tu veux avoir le choix et pas te cantonner à une liste de 200 mecs en Europe qui maîtrisent le langage. C'est aussi vrai pour les outils du genre reactjs, ansible, maven, jquery, etc.

dc
_______________________________________________
gull mailing list
gull@forum.linux-gull.ch
https://forum.linux-gull.ch/mailman/listinfo/gull

Répondre à