Java (et .NET), interdits d'iPhone ?

Le contrat de licence du SDK de l’iPhone pourrait poser problème aux éditeurs souhaitant créer des interpréteurs, ou des outils capables de lancer du code externe. Cela signe-t-il la mort de Java sur l’iPhone ?

Sun a récemment annoncé son intention de porter Java sur l’iPhone. Malheureusement, deux clauses du contrat de licence utilisateur final (CLUF, ou EULA en anglais) du kit de développement de l’iPhone

risquent de réduire à néant les plans de la compagnie : « une application ne peut pas installer ou lancer un autre code exécutable et ceci quelque soit le moyen employé, y compris, sans limitation, grâce à l’utilisation de greffons appelant d’autres frameworks, d’autres APIs, etc. ».« Une application ne peut télécharger et utiliser du code interprété, sauf si ce code met en œuvre les APIs et interpréteurs proposés par Apple ».

La position d’Apple est facile à comprendre. En permettant le téléchargement et l’exécution de code tiers, les développeurs pourraient contourner la boutique App Store… et ne pas payer les 30% de commission à Apple.

De même, les applications ne seraient plus contrôlées par Apple, ce qui ouvrirait la porte aux solutions de voix sur IP (que la compagnie interdit, afin de ménager les opérateurs de téléphonie mobile).

Cependant, cela ne peut qu’entraver ceux qui prévoyaient de porter leur machine virtuelle sur l’iPhone. C’est évidemment le cas de Sun avec Java, mais aussi celui de Mono (l’implémentation libre du framework .NET), dont le portage a déjà démarré.

Une alternative consisterait à fournir un pack permettant de mêler un logiciel Java et la JVM dans un seul exécutable, qui pourrait alors être distribué de façon classique sur l’App Store. Mono peut déjà créer de tels logiciels, avec la commande mkbundle (macpack sous Mac OS X).