Sachant qu'une VM n'est qu'une abstraction et que le bytecode peut être pré-compilé en code natif avant exécution (sans JIT donc), ca fou pas un peu en l'air tout ton raisonnement ?
Sachant qu'à code natif exécuté identique, le bytecode équivalent est plus court, le fichier support est donc plus petit et prends moins d'espace disque, n'y a-t-il pas moins de risque d'erreur lors des entrées/sorties disques à la lecture du bytecode par rapport à un binaire qui contient la même chose en natif ?
Quel est le plus probable ? Un problème d'entrée/sortie disque ou un problème bas niveau au moment de l'exécution par le processeur ?
Sachant qu'on peut faire un processeur qui exécute directement du bytecode sans passer par une couche intermédiaire, l'avantage apparent du code natif ne peut-il pas être contourné ?
Quel est le plus probable : un bug dans l'application où dans le processus d'exécution sous-jacent ?
Partant de là, faut-il mieux fournir un environnement d'exécution sécurisé quitte à ajouter une couche supplémentaire ou faire du natif pour limiter les risques liées à l'exécution des instructions ?
Comme toujours, il faut prioriser les risques et voir lesquels sont les plus pertinents à limiter en premier.
[^] # Re: Techniquement, pourquoi Mono
Posté par TImaniac (site web personnel) . En réponse au journal Utiliser Mono sans peur. Évalué à 1.
Sachant qu'à code natif exécuté identique, le bytecode équivalent est plus court, le fichier support est donc plus petit et prends moins d'espace disque, n'y a-t-il pas moins de risque d'erreur lors des entrées/sorties disques à la lecture du bytecode par rapport à un binaire qui contient la même chose en natif ?
Quel est le plus probable ? Un problème d'entrée/sortie disque ou un problème bas niveau au moment de l'exécution par le processeur ?
Sachant qu'on peut faire un processeur qui exécute directement du bytecode sans passer par une couche intermédiaire, l'avantage apparent du code natif ne peut-il pas être contourné ?
Quel est le plus probable : un bug dans l'application où dans le processus d'exécution sous-jacent ?
Partant de là, faut-il mieux fournir un environnement d'exécution sécurisé quitte à ajouter une couche supplémentaire ou faire du natif pour limiter les risques liées à l'exécution des instructions ?
Comme toujours, il faut prioriser les risques et voir lesquels sont les plus pertinents à limiter en premier.