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

XobotOS Mono java Google C# android Le 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 (´・ω・)


Réagir à cet article

Article original écrit par Philippe Scoffoni le 15/05/2012. | Lien direct vers cet article

Cette création est mise à disposition sous un contrat Creative Commons BY à l'exception des images qui l'illustrent (celles-ci demeurent placées sous leur mention légale d'origine).

.
Vus : 1841
Publié par Philippe Scoffoni : 544