• [^] # Re: C# et le libre...

    Posté par (site web personnel) . En réponse à la dépêche talweg, une migration vers Mono. Évalué à 2.

    Non. Une VM peut faire dynamiquement des optimisations de très haut niveau

    A une certaine époque, j'avais lu (dans un bouquin de Perl qui parlait aussi un peu de Java) que la VM Java était d'assez bas-niveau (un peu comme un assembleur) alors que celle de Perl était de très haut niveau (appels directement traduisibles en appels de fonctions C), ce qui expliquait la différence de vitesse entre Perl et Java. Je pensais que la CLR était un peu comme la JVM, une sorte "d'émulateur" pour un proc virtuel, avec donc des instructions de très bas niveau...

    Maintenant, si je comprends bien, la CLR possède des instructions de plus haut niveau que la JVM, permettant davantage d'optimisations en tout genre ?

    Mais à l'exécution tout ca est compilé en code natif (JIT)

    Oui, mais je me dis que ça prend du temps de faire tous ces traitements (suffit de voir le temps de chargement d'une appli Java, ou le temps de compilation d'un programme C++ pour se dire qu'il vaut mieux les faire une fois pour toutes qu'à chaque lancement de l'appli). Du coup est-ce qu'on arrive quand même à concilier légèreté / rapidité de lancement avec toutes les optimisations en question ?

    voire même avant (AOT)
    Quand la VM existe, développer un compilateur n'est pas non plus super difficile car la VM est de bien plus haut niveau que l'assembleur

    Donc il existe une manière de compiler du .NET en natif ? (comme avec gcj ?)

    Ah, pendant que j'y suis, on parle beaucoup de Mono mais quid de DotGNU ? le second est une vraie alternative ou pas ?