PDC 2008: Miguel de Icaza présente le projet Mono

Ce projet joue la carte de la différence pour se démarquer de l’offre de Microsoft. Ou pour la compléter ?

Mono est une implémentation open source de la plate-forme .NET, sponsorisée par Novell. Le responsable de ce projet, Miguel de Icaza, est venu présenter les avancées de Mono lors de la PDC2008 (non sans humour, comme on le constate sur la vidéo). Avec la sortie de Mono 2.0, le monde open source dispose enfin d’une alternative viable à .NET.

Les évolutions futures permettront de coller plus encore à .NET 3, à un (énorme) détail près ; Miguel de Icaza ne pense pas que Mono sera compatible avec le WPF (Windows Presentation Foundation). Selon lui, la quantité de travail à fournir est bien au-delà des capacités actuelles de la communauté des développeurs de Mono.

Il faudra donc se contenter de Gtk# et des Windows.Forms.

Moonlight, l’alternative open source à Silverlight, avance bien, avec la sortie de la version 1.0 bêta programmée dans les semaines à venir. Pour la mouture 2.0 (compatible avec Silverlight 2), il faudra s’armer de patience, mais son développement semble définitivement en bonne voie.

Miguel de Icaza a rappelé les avantages de Mono : intégration du compilateur C# dans un programme en quelques lignes (classe Mono.CSharp) et C# en ligne de commande (fonction qui sera présente dans Mono 2.2). Ces deux techniques permettront d’utiliser C# en mode interactif et d’offrir une méthode aux applications pour proposer des services aux autres.

La compilation Ahead Of Time (avant distribution de l’exécutable) a également été abordée. Elle permet de lancer le code rapidement, mais aussi de réduire les besoins en mémoire. Le prix à payer est une vitesse d’exécution un peu plus faible. C’est toutefois une solution viable pour créer du code destiné à l’iPhone, puisque ce dernier n’est pas compilé à la volée sur la machine (ce que la licence développeur d’Apple ne permet pas).

Miguel de Icaza a enfin présenté l’outil Unity3D qui propose de créer des jeux multiplates-formes. Il utilise Mono comme fondation pour les logiciels générés. Unity Technologies a implémenté un support SIMD (Single Instruction Multiple Data), qui accélère grandement les calculs matriciels, et donc les fonctions liées à la 3D. Il sera intégré en standard dans Mono 2.2. Cet ajout permet à la plate-forme de dépasser les offres concurrentes (hors usage d’une librairie externe spécifique). Le code généré s’exécute ainsi de 3,3 à 5,6 fois plus rapidement que celui créé avec le langage C++ (lorsqu’il utilise des routines optimisées ). Un joli travail de programmation.