La question semble réglée, voire battue en brèche. Les gens intelligents ont dit les choses intelligentes sur le sujet. Pour être un très bon programmeur, vous devez savoir que C .
Ou le faites-vous ?
J'ai été éclairé deux fois cette semaine. Le premier m'a fait réaliser que mes hypothèses ne vont pas plus loin que les connaissances qui les sous-tendent, et étant donné la complexité des logiciels qui tournent sur ma machine, ces connaissances sont presque inexistantes. Mais ce qui m'a vraiment fait comprendre ce commentaire de Slashdot :
Le résultat final est que je remarque les nombreuses façons naïves dont les programmeurs C traditionnels "bare metal" supposent que les langages de plus haut niveau sont mis en œuvre. Ils prennent de mauvaises décisions d'"optimisation" dans les projets qu'ils influencent, car ils n'ont aucune idée du fonctionnement d'un compilateur ou de la différence entre un bon système d'exécution et le modèle naïf de macro-assembleur qu'ils comprennent.
Puis ça m'a frappé : C est juste une abstraction de plus comme tous les autres. Même le CPU lui-même n'est qu'une abstraction ! Je ne l'ai juste jamais vu se briser, parce que je n'ai pas les outils pour le mesurer.
Je suis confus. Mon esprit a-t-il été mutilé au-delà de toute récupération, comme Dijkstra l'a dit à propos de BASIC ? Est-ce que je vis dans un état constant d'optimisation prématurée ? Y a-t-il de l'espoir pour moi, maintenant que j'ai réalisé que je ne connais rien à rien ? Y a-t-il quelque chose à savoir, même ? Et pourquoi est-ce si fascinant que tout ce que j'ai écrit au cours des cinq dernières années ait pu être fondamentalement faux ?
En résumé, est-il utile d'en savoir plus que ce que la documentation de l'API me dit ?
EDIT : Made CW. Bien sûr, cela signifie aussi que vous devez maintenant poster des exemples de l'interpréteur/exécution optimisant mieux que nous :)