Developpez.com

Le Club des Développeurs et IT Pro

JUniversal : Microsoft facilite le développement multiplateforme en Java

L'outil open source permet de traduire du code Java en C#, C++/Objective C

Le 2015-02-11 13:44:31, par Olivier Famien, Chroniqueur Actualités
Avec la prolifération des smartphones et des tablettes s’exécutant sur divers systèmes d’exploitation, les développeurs pour cibler une large gamme de terminaux et réduire les coûts de développement se tournent vers le développement cross-platform.

Le développeur Web a, par exemple, à sa disposition le célèbre framework PhoneGap, qui permet de créer des applications hybrides HTML5 cross-platform. Pour le développeur .NET, il peut se tourner vers Xamarin, qui permet de développer son application en C# et déployer sur Android ou encore iOS. Plusieurs outils sont offerts aux développeurs Java, notamment RoboVM, qui permet de compiler du code Java en application native iOS.

Microsoft, désormais fervent défenseur et acteur de l’open source, s’engage à simplifier encore plus le quotidien des développeurs Java qui souhaitent développer une seule fois et déployer partout. La division open source de la firme vient de publier JUniversal, un outil qui a pour vocation de transcrire le code source d’une application mobile écrite en java vers différentes plateformes.

Pour l’instant, seule la traduction du code Java en code C# est offerte. Des travaux sont en cours pour étendre les mêmes fonctionnalités vers C++/Objective C.

L’outil est disponible sous une licence open source et intègre une caractéristique intéressante qui est de produire des traductions de code dans un format similaire à celui écrit par une personne. Cela signifie que seront présents dans le code les commentaires ainsi que le formatage tel qu’on le retrouve dans les applications écrites par un homme.

À côté de ces fonctionnalités internes, il est possible d’en ajouter d’autres grâce à un ensemble des bibliothèques appelé JSimple et qui peut être téléchargé sur cette page. Pour ceux qui souhaitent obtenir le fichier zip de l’application, il est disponible sur GitHub. Pour mieux comprendre son architecture, on peut se référer au support ci-dessous.


Le projet est donc lancé et Microsoft affiche des arguments de plus en plus convaincants dans le domaine de la portabilité.

Télécharger JUniversal

SOURCE : Microsoft Open Technologies

Et vous ?

Que pensez-vous de cet outil ? Pourrait-il remplacer celui que vous utilisez déjà ?
  Discussion forum
18 commentaires
  • bouye
    Rédacteur/Modérateur
    Une très bonne initiative. J'apprécie de plus en plus la direction que prend Microsoft ces derniers temps.
  • GLDavid
    Expert confirmé
    Hello,
    Excellent!
    Je dois dire qu'étant ancien développeur Java, j'avais au début mal accueilli .NET.
    Maintenant, je dois admettre que la plate forme est très bonne et rapide.
    Cependant, je considérais qu'évidemment:
    1) cela restait trop cantonné à l'univers Windows
    2) pauvreté des APIs
    Maintenant, ces arguments ne sont plus recevables. Bravo à Microsoft d'oser sortir de son carcan propriétaire et d'exposer son travail, voir d'en faciliter la transition.

    @++
  • Shuty
    Membre éprouvé
    Entre JUniversal & Xamarin, on ne sait plus quoi choisir pour faire du native cross platform... Personne n'a essayé ces deux solution pour nous refaire un retour ?
  • Issam
    Membre confirmé
    Même si je ne fais pas de java, je salue comme mon collègue cette initiative de la part de Microsoft .

    Bravo !
  • doderic
    Membre habitué
    C'est bien tout ça mais il y a vraiment mieux avec Codename One. Je n'arrive pas à concevoir qu'un framework aussi complet, puissant, opensource et connu dans le monde anglophone est toujours aussi inconnu sur developpez.com. Si vous voulez vraiment faire du multiplateforme en Java, faites un tour www.codenameone.com et amusez-vous. C'est du bon et ça vient en plus d'Israël ;-)
  • landry161
    Membre éprouvé
    Envoyé par bouye
    Une très bonne initiative. J'apprécie de plus en plus la direction que prend Microsoft ces derniers temps.
    Je dirai même plus
  • landry161
    Membre éprouvé
    Envoyé par doderic
    C'est bien tout ça mais il y a vraiment mieux avec Codename One. Je n'arrive pas à concevoir qu'un framework aussi complet, puissant, opensource et connu dans le monde anglophone est toujours aussi inconnu sur developpez.com. Si vous voulez vraiment faire du multiplateforme en Java, faites un tour www.codenameone.com et amusez-vous. C'est du bon et ça vient en plus d'Israël ;-)
    Merci pour l'info
  • Matthieu Vergne
    Expert éminent
    Sauf qu'ils proposent de traduire du code Java, qui est déjà cross-platform, en d'autres langages ? Je sais pas pour vous mais mes programmes Java tournent très bien sous Windows. Pourquoi je devrais les traduire en C#? J'ai l'impression qu'ils veulent mettre à bas l'idée d'un "langage" cross-platform au profit de langages platform-specific associés à un "traducteur" cross-platform. Pour moi, c'est une attaque évidente à la philosophie de Java. Et commercialement, s'ils arrivent à faire valoir leur solution, ça leur permet de dévaloriser l'argument "langage cross-platform", et donc de convertir les gens à la philosophie "pas de convergence entre les plateformes, un traducteur est bien plus pratique". C'est chacun dans ses tranchées, donc Microsoft fais ce qu'il veut chez lui et ceux qui veulent que ça s'applique ailleurs doivent passer par son outil. C'est Open Source, donc pas de risque ? Avec Android on connait déjà un système Open Source dont l'éditeur a tenté de reprendre le contrôle progressivement. Les langages informatiques évoluant continuellement, il est évident qu'un tel traducteur devra toujours être maintenu. De plus, ce genre de modifs ne me semble pas des plus triviales au point que n'importe qui puisse reprendre le projet. Et c'est là une contrainte majeure qui permettrait à Microsoft, tout comme Google avec Android, de reprendre la main vers du non Open Source quand sa solution sera populaire.

    Donc autant je vois pas du tout la raison de traduire du Java d'un point de vue pratique, autant d'un point de vue stratégique pour Microsoft ça me semble être une idée des plus lumineuses. Enfin pour eux, pas pour moi.
  • landry161
    Membre éprouvé
    Envoyé par Matthieu Vergne
    J'ai l'impression qu'ils veulent mettre à bas l'idée d'un "langage" cross-platform au profit de langages platform-specific associés à un "traducteur" cross-platform. Pour moi, c'est une attaque évidente à la philosophie de Java.
    Pourquoi?
  • Matthieu Vergne
    Expert éminent
    Parce que c'est justement un des arguments phare pour passer à Java et une des raisons principales de son existence : il est cross-platform grâce à sa machine virtuelle (qui inclut déjà tout le platform-specific). Java foncitonne très bien sous Windows, alors pourquoi voudrait-on le transformer en C# ? À part une préférence de langage, j'en vois pas l'intérêt, mais dans ce cas on programme directement dans le langage qu'on préfère. Par ailleurs, je parle de Windows mais j'imagine que Java tourne aussi sur iOS, mais je ne m'avancerai pas sur "à quel point", j'ai pas essayé et je ne suis pas trop les news Apple.