Developpez.com

Le Club des Développeurs et IT Pro

Java remplacé par C# dans Android ?

Xamarin développe XobotOS, une solution qui annule l'utilisation de Java dans l'OS mobile de Google

Le 2012-05-02 12:50:00, par Hinault Romaric, Responsable .NET
Alors que le procès entre Oracle et Google pour violation de brevet Java dans Android bat son plein, la startup Xamarin développe une solution pouvant permettre de ne plus utiliser le langage dans l’OS.

La société à l’origine de Mono pour Android, l’implémentation open source du framework .NET permettant la conception des applications natives Android en C#, s’est lancée dans un projet ambitieux avec pour objectif de remplacer le code Java dans Android par du code C#.

Le projet a donné naissance à XobotOS, une plateforme d’exécution d’applications pour Android entièrement en C# qui ne nécessite pas Java.



Pour parvenir à ce résultat, les développeurs de Xamarin ont utilisé Sharpen, un outil de conversion de code Java en C#. La société a dû améliorer Sharpen afin qu’il puisse gérer la complexité de la base du code Android. Certaines portions du code Java ont dû être portées manuellement.

L’analyse des performances de XobotOS a permis de constater une exécution plus rapide des programmes .NET par rapport aux programmes Java équivalents dans Android. Selon les développeurs du projet, la machine virtuelle Mono est mature avec des optimisations plus poussées que la machine virtuelle Dalvik de Google et profite de certaines fonctionnalités du Framework.NET dont ne dispose pas Java.

De plus, cette solution serait même plus avantageuse pour Google dans la mesure où Microsoft a proposé le langage C# et la machine virtuelle .NET à l’ ECMA pour standardisation, et la plateforme est couverte par la licence Microsoft Community Promise license permettant à Google d'obtenir une licence peu couteuse.

Pour l’instant, XobotOS n’est qu’un projet de recherche pour Xamarin qui n’a pas l’intention de le maintenir comme un projet autonome, mais l’utiliser comme une couche d’accès direct au système d’exploitation plutôt que de passer par la machine virtuelle Java pour améliorer Mono pour Android.

XobotOS a été publié comme un projet open source sous les termes de la licence Apache, sur GitHub. Une solution sur laquelle devrait se pencher Google pour contourner l'utilisation de Java dans Android ?

Le projet sur GitHub

Source : Xamarin
  Discussion forum
49 commentaires
  • pitbull78
    Membre actif
    Ce serait plutot cool que l'on puisse facilement développer en C# sur Android, de plus ça avantage Microsoft en quelque sorte.

    Quand un dev fera une appli pour Android en C# il pourra facilement la porter sur Windows Phone (normalement sans trop de trucs à changer). Et vu qu'Android est vachement utilisé, ça profite aussi à Microsoft, 1 appli sur le Google Play = 1 appli sur le Store.

    Et vu les talents en négociations de Microsoft, je suis sûr que Google s'en sortira mieux qu'avec Oracle.
  • Un ami avait dit déjà il y a quelques années : "Le C# remplacera peut être Java un jour". Et ceci pourrait être tout à fait plausible, si en plus des implémentations multi-plateformes sont développées. Java recule d'ailleurs lentement il me semble, tandis que d'autres langages montent en flèche.
  • kedare
    Membre chevronné
    Comme ça, ça sera plus Oracle vs Google mais Microsoft vs Google....

    Ca serait plus logique de se lancer dans une solution plus ouverte style Python ou Ruby par exemple.
  • maxwell302
    Membre confirmé
    Ca m'étonnerais que Microsoft supporte officiellement ce projet, si les devs .NET fuient vers Android, Windows Phone a du souci a se faire...
  • air-dex
    Membre expert
    Envoyé par kedare
    Ca serait plus logique de se lancer dans une solution plus ouverte style Python ou Ruby par exemple.
    Ou alors Google Go, tout simplement. Les applications auraient en plus les avantages du natif.

    Le seul risque est que Google fasse un procès à Google.
  • maxwell302
    Membre confirmé
    Envoyé par pitbull78
    Abordable bien sûr si on a un "vrai" projet d'application.
    C'est sur, mais pour developper ses applications dans son coin sans vouloir se lancer dans le Java ce n'est pas forcément le bon plan.
  • pitbull78
    Membre actif
    Hypothèse :

    Google passera au .NET et les contructeurs ne verseront non pas 5-7$ par appareils mais 15-20$ et Microsoft se fera de l'argent du ".Android" et les applications seront compatibles pour les 2 plateformes
  • kedare
    Membre chevronné
    Envoyé par maxwell302
    Ca m'étonnerais que Microsoft supporte officiellement ce projet, si les devs .NET fuient vers Android, Windows Phone a du souci a se faire...
    Le développement .NET est déjà possible sur Android: http://xamarin.com/monoforandroid
    Et ça a l'air pas mal du tout.
  • camus3
    Membre éprouvé
    je trouve C# plus intéressant et souple que Java , même si ces 2 langages sont très proche. Par contre ,que le framework .NET remplace les solutions java c'est pas sur. Mais Microsoft a réussi son pari de faire un langage aussi bon , voir meilleurs.
  • Traroth2
    Membre émérite
    Envoyé par kedare
    Comme ça, ça sera plus Oracle vs Google mais Microsoft vs Google....

    Ca serait plus logique de se lancer dans une solution plus ouverte style Python ou Ruby par exemple.
    Oui, c'est vrai. Pourquoi passer d'une solution propriétaire et polluée de brevets à une autre, alors que des solutions réellement libres et ouvertes existent ?