C Soixante fois plus rapide que java
Dès que des traitements algorithmes lourds sont à effectuer j'utilise le C. j'ai fait récemment une application pour smartphone android en java de traitement de fichiers vidéos qui durait bien trop longtemps (attendre plusieurs dizaines de minutes un résultat sur un smartphone c'est rédhibitoire). J'ai écrit la routine de traitement en C, appelée depuis java (android-ndk et jni). Le temps de traitement a été divisé par SOIXANTE !! Un traitement qui durait 5 minutes ne durait plus que 5 secondes. L'application devenait utilisable.
Il y a quelques années je me disais à quoi bon essayer de gagner du temps au niveau de la programmation, il n'y a qu'à attendre les progrès (fulgurants il est vrai) des processeurs. mais là j'étais tombé sur un contre-exemple.
Les programmeurs qui n'ont pas commencé par le C ne se rendent pas compte de la différence d'efficacité qui existe entre ce langage et ses successeurs C++, java, C#..., surtout que les enseignants toujours attirés par la nouveauté attribuent aux nouveaux langages des avantages qui n'en sont pas. Un professeur de grande école d'ingénieur qui a enseigné tous ce langages me disait "au début je parlais des avantages du nouveau langage que j'enseignais, et plus tard je ne disais plus avantages, mais caractéristiques".
Je programme depuis 1966 avec des langages généraux : PAF, Fortran, APL, Cobol, Basic, Forth, C, C++, Java.. et des langages spécifiques d'applications : Lisp, PostScript, Latex, Matlab, Scilab, Maxima, HTML...
Heureusement que la retraite est arrivée !! A mes débuts, on faisait quasiment tout avec un seul langage. Maintenant plusieurs langages sont en compétition dans chaque domaine d'application.
Il n'y a pas d'instance magique qui puisse réguler ou orienter tout ça.
D'après moi, ce forum est utile car il permet aux individus, comme moi de livrer leur expérience. Malgré sa longueur (de mon expérience), je ne sais que conclure et ne conclurait pas, sinon qu'en disant que si un langage à su faire sa place c'est qu'il a dû à une époque correspondre à un besoin ?
Pour terminer, je rappellerai qu'en ce qui concerne les traitements algorithmiques lourds le C reste le langage le plus efficace en terme de rapidité, bien au-delà des chiffres généralement admis. Pour vérifier, faites vous-même vos propres tests.