• [^] # Re: Pourquoi Mono ?

    Posté par (site web personnel) . En réponse au journal Utiliser Mono sans peur. Évalué à 10.

    Faire abstraction de la machine, c'est aussi fournir des services qui ne sont pas offerts en natif : introspection, gestionnaire de mémoire, protection contre les débordements, contrôle fin des droits d'exécution (sandboxing & co), interopérabilité entre les langages de programmation, gestion des exceptions.
    Une VM facilite aussi la création de nouveaux langages en proposant de base tous ces outils.
    C'est aussi faire abstraction des incompatibilités de la machine qui peut casser mon soft en C recompilé : 32 vs 64 bits, litle-big endian, etc.
    C'est aussi faire abstraction des incompatibilités de l'OS : gestion des threads notamment.
    C'est aussi utile dans des situations ou recompiler n'est pas une option : déployer une applet web par exemple ou bêtement exécuter du javascript sans utiliser d'interpréteur.

    Le coup du "c'est nécessaire pour le proprio qui cache les sources" est un mauvais argument, bien au contraire : ce type de VM a une sémantique bien plus proche du langage utilisé dans le code source : un coup de décompilateur permet de retrouver le code source dans un format proche de l'original (sans les commentaires forcement).