Journal Mono 2.2 :interview d'une release notes.

Posté par (page perso) .
Tags : aucun
17
15
jan.
2009
C'est quoi ?
Une plateforme de dev pour Linux qui partage le même socle technique que le framework .NET sous Windows.

Quoi de neuf ?
Un nouveau moteur JIT (traduction en code natif à la volée), basé sur une représentation linéaire du code intermédiaire (aka IL ou bytecode) plutôt que sous la forme d'arbre.
http://www.mono-project.com/Linear_IL

Cool, et concrêtement ?
Permet de faire plus d'optimisation, et donc d'améliorer les perfs.

Mais encore ?
Il est maintenant possible de faire de la traduction AOT (traduction en code natif quand-je-veux) complète.

Pourquoi complète ?
Avant les méthodes génériques continuaient à être générés en JIT.

Ca sert à quoi ?
Améliore les perfs du programme exécuté lors de son démarrage (pas besoin de faire de traduction en code natif).
Peut améliorer les perfs du programme dans son ensemble... ou pas.

C'est quoi le nouveau "mperfmon" ?
Une application pour surveiller les performances d'une application mono.

Une autre nouveauté du runtime ?
On peut désormais s'attacher à un processus mono en "live" pour le déboguer ou même pour y ajouter du code.

C'est tout ?
Non y'a un dernier truc : des API pour utiliser les instructions SIMD des processeurs. En gros ca enlarge ton, enfin ca permet d'améliorer grandement les perfs d'une application qui fait du calcul intensif à base de vecteurs, comme par exemple le moteur physique d'un jeu vidéo.
Plus d'infos par là : http://tirania.org/blog/archive/2008/Nov-03.html

Ok, on passe à autre chose ? le C# par exemple ?
Rien de neuf sur le langage en soit. En revanche une nouvelle API fait son apparition : Compiler Service. Celle-ci offre la possibilité de compiler du code et de l'exécuter dynamique. Pratique pour scripter une application en C# (pour eux qui veulent pas le faire en IronPython).

On peut scripter en C# ?
Oui, d'ailleur Mono propose désormais un "Interactive Shell". Celui-ci est capable d'utiliser la nouvelle possibilité du Runtime de faire du déboggage en live.

C'est pas vraiment adapté le C# pour scripter...
Avec la syntaxe de c# 3 (notamment l'inférence de type) et la future syntaxe C# 4 (mot clé dynamic), cela prend tout son sens.
Suffit de voir à quoi ca ressemble :
http://www.mono-project.com/CsharpRepl

Oué cool, autre chose ?
Les expressions régulières vont maintenant être beaucoup plus performantes avec l'arrivée d'un compilateur dynamique dédié.

Comme en .NET donc avec l'option RegexOptions.Compiled.
Oué.

Et niveau web ?
Un bout d'ASP.NET 3.5 SP1 fait son apparition : le "Routing handler", un framework qui facilite le routage des requêtes afin d'avoir des jolies urls comme sur last.fm.

et c'est quoi ce gendarme ?
Gendarme, c'est un outil destiné à fliquer ton application avant de l'exécuter : en gros il te liste tout ce qui lui paraît louche (niveau sécurité, perf, portabilité, etc.). Pleins de nouvelles règles dans cette version.


Du neuf niveau API graphiques ?
corrections de bug essentiellement. Utilisation des contrôles natifs sous Windows.

Super on s'en tape, on est sur LinuxFR.
C'est pas faux. Mais pour ceux que ca intéresse, GTK# pour Windows passe en version 2.12.7. Et on peut même cross-compiler Mono pour Windows depuis Linux avec MinGW maintenant.

bla bla bla.

Libre adaptation de http://www.mono-project.com/Release_Notes_Mono_2.2
  • # Très bon

    Posté par (page perso) . Évalué à 6.

    C'est une bonne idée, cette intervista... du coup j'ai lu un truc sur c# pour la première fois depuis des lustres ;-)

    ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

  • # Quelle doc utiliser

    Posté par . Évalué à 1.

    Salut,
    tout d'abord, comme dit plus haut, super idée que cette interview. Ça rappelle la série « Head first » de chez O'Reilly.

    La question que je me pose est : existe-t-il une bonne doc (ou encore mieux un bon livre) pour qui veut se mettre à mono sans être un spécialiste Java ou .NET ? Doc qui introduirait C# et surtout GTK# (et accessoirement les design pattern).

    J'ai bien trouvé des livres sur C# (il y a un Head first justement) mais je n'en ai jamais vu de récent sur GTK# (il existe bien un livre sur Mono chez O'Reilly mais il est vieux).

    Bye
  • # .NET c'est mieux!

    Posté par . Évalué à -1.

    Parce qu'aucun décideur pressé ne recommande Mono.
    • [^] # Re: .NET c'est mieux!

      Posté par . Évalué à 5.

      Si tu lis Monologue aujourd'hui (bref Planet Mono), tu apprendras que le premier jeu Wii basé sur Mono est en vente, qu'il y a une multitude de jeux pour iPhone utilisant Mono.

      Certes Mono n'a aucune chance sur plateforme Windows face à .Net, mais il reste un champ d'action très large pour Mono (embarqué, multiplateformes, vidéo-ludique etc)
      http://www.mono-project.com/Companies_Using_Mono
      • [^] # Re: .NET c'est mieux!

        Posté par (page perso) . Évalué à 4.

        Oué j'ai oublié de citer cet avantage également, la compilation AOT sert aussi à déployer sur des plateformes comme l'iPhone, qui ont une protection interdisant l'utilisation de compilateur JIT.
      • [^] # Re: .NET c'est mieux!

        Posté par . Évalué à 6.

        Un jeu de gestion de poneys et de lapins ( http://www.myanimalcentre.com/ ) écrit avec un framework propriétaire ( http://unity3d.com/unity/ ) : la grande classe.
        • [^] # Re: .NET c'est mieux!

          Posté par . Évalué à 5.

          Damned, tu pourrais prévenir avant de mettre des liens pareils.C'est pas work-safe du tout, cette affaire.

          Et en plus, mes yeux ont fondus et mon collègue épileptique est bien parti pour demander un arrêt de travail à durée indéterminée. Terroriste!
        • [^] # Re: .NET c'est mieux!

          Posté par . Évalué à 7.

          N'empêche, la plateforme Mono attire une communauté de développeurs et se retrouve dans de vrais projets commerciaux.
          Tu as beau tourner en dérision ces jeux, mais ça contredit totalement ta théorie selon laquelle aucun "décideur pressé" ne recommenderais Mono.
  • # Bravo mono !

    Posté par . Évalué à 1.

    J'en profite pour poser une petite question à propos de mono, devant faire un projet en c#/c++ dans le cadre de mes études, mais n'étant pas très motivé pour le faire dans une machine virtuelle avec mon single core, ni à faire de la place sur mes partitions pour installer un OS proprio sur ma machine...
    bref, est-il possible facilement de programmer une appli dont la vue du mvc serait en c#, le reste en c++, d'utiliser les winforms (ou l'équivalent... mes connaissance en librairies redmondiennes sont encore trop pauvres) sous linux, puis de retaper la popote dans un projet .net ni vu ni connu ?
    Hasan sehef ?
    • [^] # Re: Bravo mono !

      Posté par . Évalué à 2.

      Bon alors il y a des choses faciles:
      créer un projet "MSBuild"/VS.net
      coder avec la completion de code & autres goodies

      Pour ça utilise monodevelop.

      Pour la doc: utilise la MSDN, en web

      et puis il y a des choses difficiles....

      Pour les winforms, je crois que tu dois tout te taper à la main

      Autre solution, tu vires les winforms, et tu utilises GTK#, pour ça monodevelop a un gui builder, et puis gtk# a un installer pour .net
    • [^] # Re: Bravo mono !

      Posté par (page perso) . Évalué à 2.

      Oué le problème, c'est le C++.
      Si tu veux vraiment faire ca, le plus simple est de faire une lib qui exporte une API en C (tu peux wrapper du C++ si tu veux).
      Après une fois que t'as fais ca, tu peux facilement utiliser des méthodes C en C# de manière portable.
      En gros tu t'arranges pour compiler ton code C/C++ dans une lib dynamique, .so sous linux et .dll sous Windows.
      Après tu lis ca :
      http://www.mono-project.com/Interop_with_Native_Libraries

      Pas besoin de recompiler ton code C# d'une plateforme à l'autre, une modif dans le fichier de conf et tu utilises le .so sous linux et le .dll sous Windows.
  • # A propos de http://www.mono-project.com/CsharpRepl ...

    Posté par . Évalué à 2.

    C'est quoi comme OS de type Unix qui n'a pas de fichier commençant par 'p' dans '/etc' ? MacOS ? Ou le fichier passwd n'est pas visible de l'utilisateur ? Étrange, non ?

    C# Shell, le premier Shell kikoolol qui supporte les "émoticones" ! Ça affiche les pubs de MSN (pardon, Live Messenger) ou pas ? :-D

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.