Une des valeurs ajoutée de Mono: la portabilité et l'embarqué.
Mono a pour défaut d'être un peu moins performant que .NET et
pourtant il a une place non négligeable dans "l'embarqué" ou les
ressources sont souvent guettés sans vergognes pour gagner en masse, en
cout de production en réduisant les spécifications du CPU, en
autonomie...
Cet article vise à vous faire saisir les enjeux
de Mono et les raisons pour lesquelles il est choisi malgré une
stabilité et des performances un peu inférieure.
L'embarqué proposé par des compagnies:
Pourquoi Sandisk, grande entreprise de renom, marque de choix pour les
cartes SD ou autre, a préféré utiliser la plateforme Mono pour
développer son lecteur "Sansa Connect"? L'info n'est pas fraîche mais n'en est pas moins d'actualité. Les plus de cet appareil étaient outre le Wifi l'intégration avec Yahoo! Music, une interface fluide avec des effets corrects, la radio en streaming, bref... Un appareil correct encore noté correctement sur Amazon
bien qu'il soit moins d'actualité plus d'un an et demi après sa sortie.
L'intérêt de Mono est que l'on peut se créer son Embedded framework sur
mesure et le réduire à la demande, le compiler avec seulement le strict
nécessaire en spécifiant une option de compilation. Il suffira de
composer un document XML des éléments à compiler ou non. La structure
du Puzzle correspond à vrai dire mieux à Mono qu'au .NET. Même si on
doit se l'assembler et qu'à base égale ce n'est pas autant optimisé, on
peut enlever et mettre les pièces que l'on veut. En face .NET propose
un framework portable et un Framework PC complet et compilé par
version. De plus SanDisk en a profité pour s'économiser de nombreuses
licences Windows Mobile en se compilant ses applications et son
environnement pour sa plateforme.
La plateforme développement Unity3D servant à faire des jeux sur
serveurs (en s'intégrant par exemple dans le navigateur par le biais
d'un plugin) ou en local utilise aussi la plateforme Mono pour toute la
gestion de logique (Scripting, AI ... Mais évidemment pas le moteur
3D). Leur "IDE" semble bluffant de simplicité, o
n dirait une fusion
entre Blender et XCode (que connaissent les MacUsers). Unity marche sous Mac, XBox, PS3, Wii, IPhone (sans JailBreak), sous Windows mais pas
encore de paquets pour Linux. L'intérêt est que ce soit hautement
multiplateforme, puissant et que ça laisse le choix du langage. Les
langages proposés par défauts pour les scripts sont le Boo (Iron-Python
réadapté pour être mieux intégré au .NET), le C# et le JavaScript.
Certains auront peut-être le poil irisé à l'association de C# à un
langage de script, mais le projet Mono a développé un Interpréteur C#
prévu à cet effet. Microsoft devrait implémenter ça avec C#5.0 dans... Un moment.
L'embarqué par la communauté:
Mono arrive aussi avec ses applications sur les tablettes internet
Nokia (N800/N810 ...) dont la couche logicielle est open-source. Cet
environnement/plateforme de développement Maemo permet de coder en C++
avec du GTK+ standard. GTK# et Mono avec des bindings pour Maemo.
Mono Tomboy sur Nokia N810 Maemo
Les NetBooks sont une certaine réussite et ceux même sans Windows, une
initiative assez communautaire entamé avant la sortie du premier EeePC
le voyait venir. Un projet visant à succéder à la "console Open-Source
et Libre GP2X" en face de la GP2X Wiz, le projet OpenPandora. Cette
console de format comparable à une Nintendo DS et prévu pour le jeu
(notamment l'émulation car
ils savent qu'aucun éditeur ne proposera de jeux pour cette console) a
des spécifications qui peuvent laisser rêveur pour un prix abordable.
Le choix de l'architecture ARM Cortex permet pour une cadence à 600 MHz
un bon rendement et une faible consommation énergétique. Mono arrivera
dessus vu que Canonical éditeur de la distribution Ubuntu devrai
proposer des Jaunty Jackalope (dans cinq mois) une version compilée
pour ARM de sa distribution incluant Mono. Un pas vers les PC
incompatible Windows et Mono en seul recours pour le .Net.