l'indépendance de la plate-forme (principal avantage de la VM, mais à mon avis ce n'était pas le but recherché par Microsoft)
MS doit supporter plusieurs architectures matérielles : x86, x64 plus les proc de PDA/smartphone (ARM, etc.) L'indépendance vis-à-vis d'une plateforme matérielle est donc bien un but recherché par MS.
- langages de haut niveau comme c#/delphi.NET/<votre_langage_favori> avec garbage collector, programmation fonctionnelle & co... (il existe déjà des langages compilés qui font tout ça, cf OCaml. Au pire il suffirait de coder un frontend c# pour gcc => pas besoin de VM non plus !)
Faut bien voir que la VM n'est qu'une "vision", une sorte d'abstraction pour les programmeurs et compilateurs. Mais à l'exécution tout ca est compilé en code natif (JIT), voir même avant (AOT), bref après ca marche comme OCaml ou du code compilé avec gcc. Faut bien voir que gcc propose intrinsèquement la même architecture avec un code intermédiaire entre le frontend et le backend (commun à tout le monde). La différence c'est que gcc n'offre pas (ou très peu) de services supplémentaires (à l'exécution). S'il y a des différences de perf, c'est pas lié à la présence du code intermédiaire pour la VM, mais justement aux services associés : GC, sécurité, reflection, etc. Après tout est une question d'objectifs. Si les VM ont du succès aujourd'hui par rapport à hier, c'est que les services qu'elles offrent sont plus intéressant que les pertes de performances qu'elles engendrent (avant c'était trop pénalisant, aujourd'hui ca peut le rester dans des parties critiques).
Donc en gros, pourquoi l'avenir de l'informatique passerait t-il forcément par un dispositif avec une machine virtuelle ?
Pour l'ensemble des services qu'elles offrent, qui permettent de gagner en productivité.
[^] # Re: C# et le libre...
Posté par TImaniac (site web personnel) . En réponse à la dépêche talweg, une migration vers Mono. Évalué à 3.
MS doit supporter plusieurs architectures matérielles : x86, x64 plus les proc de PDA/smartphone (ARM, etc.) L'indépendance vis-à-vis d'une plateforme matérielle est donc bien un but recherché par MS.
- langages de haut niveau comme c#/delphi.NET/<votre_langage_favori> avec garbage collector, programmation fonctionnelle & co... (il existe déjà des langages compilés qui font tout ça, cf OCaml. Au pire il suffirait de coder un frontend c# pour gcc => pas besoin de VM non plus !)
Faut bien voir que la VM n'est qu'une "vision", une sorte d'abstraction pour les programmeurs et compilateurs. Mais à l'exécution tout ca est compilé en code natif (JIT), voir même avant (AOT), bref après ca marche comme OCaml ou du code compilé avec gcc. Faut bien voir que gcc propose intrinsèquement la même architecture avec un code intermédiaire entre le frontend et le backend (commun à tout le monde). La différence c'est que gcc n'offre pas (ou très peu) de services supplémentaires (à l'exécution). S'il y a des différences de perf, c'est pas lié à la présence du code intermédiaire pour la VM, mais justement aux services associés : GC, sécurité, reflection, etc. Après tout est une question d'objectifs. Si les VM ont du succès aujourd'hui par rapport à hier, c'est que les services qu'elles offrent sont plus intéressant que les pertes de performances qu'elles engendrent (avant c'était trop pénalisant, aujourd'hui ca peut le rester dans des parties critiques).
Donc en gros, pourquoi l'avenir de l'informatique passerait t-il forcément par un dispositif avec une machine virtuelle ?
Pour l'ensemble des services qu'elles offrent, qui permettent de gagner en productivité.