Je suis codeur et j'ai de l'expérience avec du code natif et géré. J'ai commencé avec Pascal et C, puis je suis passé en C ++ et finalement en C #.
Au cours de la dernière année, j'ai codé presque exclusivement en C # et j'ai perdu beaucoup de ce qui se produisait naturellement lorsque j'étais codeur C ++.
Il y a quelques semaines, lorsque je me suis assis pour écrire du code C ++ natif, je me suis retrouvé à tâtonner pendant que je reprenais lentement connaissance de la complexité, des bizarreries et des particularités de tout cela. Je suis presque gêné de dire que j'avais complètement oublié que le passage d'un tableau alloué dynamiquement à une fonction sans également transmettre sa taille signifierait que la fonction de réception n'aurait aucun moyen de connaître la longueur du tableau.
Il existe d'innombrables articles et documents qui comparent et contrastent le code géré par rapport au code non géré. Nous savons tous que le code natif, s'il est bien optimisé, peut fonctionner beaucoup plus rapidement et plus léger que le code géré. D'autre part, le code managé a des récupérateurs de place et une optimisation spécifique au processeur et au système d'exploitation au moment de l'exécution, ce qui peut donner au code natif une course pour son argent.
D'un point de vue purement technique, il n'y a pas de vainqueur clair.
Il ne fait aucun doute que le code managé est des ordres de grandeur plus simples à coder et à comprendre. Regardez simplement la différence dans le nombre de lignes nécessaires pour construire une interface graphique simple dans Win32 C ++ vs C #.
À l'époque de mon codage natif, j'ai principalement écrit des simulations mathématiques fonctionnant sur des superordinateurs. Ils avaient des CLI laides et étaient principalement axés sur des algorithmes. Aujourd'hui, j'écris en C # et je produis de belles applications GUI, mais je serais perdu si je devais faire quelque chose d'un calibre similaire sur une langue native. Même avec un framework tel que QT, il faudrait encore deux fois plus de temps pour produire quelque chose en C ++ / QT qu'en C #.
Chaque fois que je vois quelqu'un qui a écrit une application graphique à grande échelle et complète en C / C ++, je ne peux pas m'empêcher de ressentir un sentiment de crainte et un soupçon de jalousie.
Je suis curieux de voir comment d'autres codeurs expérimentés voient les langages gérés et non gérés. Voyez-vous le code managé comme amateur-ish ? Pensez-vous que les codeurs natifs sont plus hardcore ?