• # Un autre bonne raison de ne pas utiliser Mono

    Posté par . En réponse au journal Utiliser Mono sans peur. Évalué à 2.

    Moi, j’ai une autre bonne raison de ne pas utiliser Mono : la CLI et le Framework .Net sont mal pensés (le language C# est lui vraiment pas mal).

    Programmer en .Net n’est pas des plus simple pour plusieurs raisons, la principale étant l’utilisation du garbage collector. Son fonctionnement a été tellement mal pensé que l’on passe son temps à faire le travail du garbage collector à sa place (interface IDisposable) ou bien de l’empêcher de faire son travail de façon abusive (interface ISponsor en remoting .Net).

    Concernant l’interface IDisposable ( http://msdn.microsoft.com/fr-fr/library/fs2xkftw.aspx ), MS n’a pas voulu appeler le destructeur des objets lorsque leur compte de référence tombe à 0 et le fait dans le garbage collector (qui ne devrait être là que pour éviter la fragmentation de la mémoire).
    Résultat, il est nécessaire d’appeler manuellement le destructeur des objets (c.à.d. la méthode Dispose de l’interface IDisposable), le "vrai" destructeur des objets ne sert à rien et l’on perd tout l’intérêt de la libération automatique des objets, car :
    1) il est impossible de libérer certaines ressources dans le destructeur (il est exécuter dans le contexte du garbage collector, ce qui empêche par exemple la libération les domaines d’application),
    2) le garbage collector se déclenche tellement rarement que l’on peut provoquer des pénuries de ressources non managées.
    3) ...

    Je trouve le développement en .Net extrêmement technique comparé au développement Java, Perl ou Python et préfère encore développer en C ou C++ avec de bonnes bibliothèques comme la glib ou Qt.