XobotOS : Android réécrit en C# pour qui, pour quoi ?

closeCet article a été publié il y a 11 ans 11 mois 2 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

androidLe développeur bien connu Miguel de Icaza qui est à l’origine du projet Mono a créé une société Xamarin dont les premiers travaux viennent d’être rendus publics. La machine virtuelle Java, nommée Dalvik, du système d’exploitation Android de Google, a été ré-écrite dans le langage  C#. Qui peut-être intéressé par cet outil ? Google ?

Mono, un Microsoft .Net open source

L’histoire de Miguel de Icaza se confond en grande partie avec celle du projet Mono qu’il initia en 2001. Il s’agissait de développer une version open source du framework de développement .Net de Microsoft.

Mono propose entre autres (Source Wikipedia):

  • Un compilateur C# 3.0, une machine virtuelle, de nombreuses classes de base; tous ces composants reposent sur les standards Ecma-334 et Ecma-335. Mono propose également un compilateur Javascript et VB.NET ainsi que le portage de Silverlight sous le nom de Moonlight ;
  • des API indépendantes de l’environnement : sécurité, base de données, web services, XML, web forms ;
  • des API destinées à la programmation sous GNU/Linux et plus particulièrement GNOME : Gtk#, Glade# Gecko#, Gst# ;
  • des API compatibles avec le framework .Net de Microsoft. Il s’agit du portage de briques logicielles non couvertes par une standardisation ECMA, comme ASP.NET, ADO.NET ;
  • un IDE (environnement de développement intégré) : MonoDevelop, avec notamment le support de la complétion de code ;
  • un outil pour naviguer dans la documentation : Monodoc, qui a l’originalité de pouvoir être modifié par le programmeur qui peut ensuite envoyer automatiquement les modifications au CVS de Mono ;
  • un serveur web léger entièrement compatible avec la technologie ASP.NET qui permet d’utiliser n’importe quel langage de la plate-forme pour générer des sites web dynamiques. Un module Apache est également disponible.

Mono partage aussi avec le langage Java certaines ressemblances comme l’utilisation d’un langage intermédiaire (IL pour Intermediate Langage, équivalent du bytecode Java).

Le projet Mono fut initialement porté par la société Ximian, qui fut racheté par Novell en 2003 puis racheté à son tour par Attachmate en 2011. Depuis, Mono a été repris par la société Xamarin où Miguel de Icaza tient le rôle de CTO (Chief Technical Officer ou Directeur Technique).

De Java en Dalvik en XobotOS

Le moins que l’on puisse dire, c’est que la vie des projets open source portés par des entreprises n’est pas souvent un long fleuve tranquille. A l’origine était Java. Un langage de développement porté par la société Sun qui fut racheté par ORACLE en 2009. Google eu l’idée de re-développer une machine virtuelle nommée Dalvik permettant d’exécuter des applications Java au sein de son système d’exploitation Android pour s’affranchir je suppose de toute dépendance envers ORACLE.

Ceci fut le point de départ de pas mal de discussions et d’immanquables procès en justice dont celui actuellement porté par ORACLE à l’encontre de Google. Dans un récent verdict partiel, le jury a déclaré que Google avait bien copié les structures de 37 API de Java, ainsi que 9 lignes de code composant une fonction estimée mineur.

C’est là qu’intervient le projet de Miguel de Icaza : XobotOS. Son équipe a pu réécrire à l’aide d’un outil de conversion de code amélioré pour l’occasion et dénommé Sharpen, la quasi-totalité du code source Java de l’OS Android dans le langage orienté objet C# de Microsoft. Le résultat est une version d’Android qui est capable d’exécuter des applications dans ce langage, mais aussi des performances, selon les auteurs, en nette hausse par rapport à l’original.

Nous voici donc en présence d’un Android adossé au run-time Mono. Un beau tour de passe passe technologique pour Xamarin qui pourrait lui ouvrir les portes du marché les terminaux mobiles. Mais pour cela encore faudrait-il que les constructeurs s’y intéressent.

Le premier à qui l’on pense est Google. XobotOS pourrait offrir à ce dernier une porte de sortie pour éviter de futurs procès. Encore que l’on puisse imaginer que les juristes d’ORACLE puissent arguer de la filiation avec Java.

Personnellement je ne crois pas que cela puisse arriver. Tout d’abord, cela supposerait de ré-écrire toute la bibliothèque d’applications aujourd’hui disponible soit prés d’un demi-millions d’applications. Autrement dit, le destin de XobotOS me paraît quelque peu douteux et relègue ce projet au rang des « proof of concept« .

La performance me semble davantage résider dans la capacité de traduire des applications Java en C# pour Mono. Un savoir-faire probablement plus intéressant à monnayer auprès des entreprises qui souhaiteraient abandonner Java.

Crédit image certains droits réservés par MJ/TR (´・ω・)

Philippe Scoffoni

Je barbote dans la mare informatique depuis 30 ans (premier ordinateur à 16 ans, un ORIC ATMOS) et je travaille à mon compte au travers de ma société Open-DSI. J'accompagne les associations, TPE et PME dans leurs choix et dans la mise en oeuvre se solutions informatiques libres.

1 réponse

  1. Etenil dit :

    Se prémunir d’éventuelles poursuites d’Oracle pour tomber dans les griffes de Microsoft (et ses éventuelles poursuites, rappelons que seuls les standards ECMA sont couverts par la promesse de non-attaque de Microsoft, laquelle ne vaut pas plus que le vent qui l’a porté) me semble etre une bien piètre solution pour Google.

    Il leur serait sans doute plus facile et avantageux de déveloper une nouvelle machine virtuelle pour Go, python ou tout autre langage sur lequel aucune autre entreprise n’a de brevet ou de paternité.

    Bref cette performance de Xamarin semble etre encore une fois juste un tour de passe passe pour rappeler leur existance au grand public.