Pourquoi Apple rend obligatoire les langages C, C++ ou Objective-C sur l'iPhone

Guillaume Champeau - publié le Lundi 12 Avril 2010 à 17h57 - posté dans High-Tech

Depuis l'iPhone OS 4.0, les développeurs n'ont plus le choix de leur plateforme de développement. Ils doivent impérativement écrire leurs applications dès l'origine dans les quelques langages acceptés. Un moyen pour Apple de limiter les risques qu'une société tiers impose au marché mobile un standard multi-plateformes.

La nouvelle a un peu surpris, et beaucoup choqué. En annonçant l'arrivée de l'iPhone OS 4.0 et de son SDK, Apple a modifié les conditions d'utilisation destinées aux développeurs. Désormais, un article 3.3.1 dispose que seuls les applications écrites dès le départ en Objective-C, en C, en C++ ou en JavaScript tel qu'exécuté par le moteur WebKit de l'iPhone seront autorisées sur l'App Store :

3.3.1
— Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

Il s'agit d'une première dans l'histoire de l'informatique. Jamais auparavant un constructeur ou même un éditeur de logiciels d'exploitation n'avait imposé à des développeurs le langage dans lequel ils devaient écrire les logiciels destinés à y être exécutés. Ce qui importe à Microsoft n'est pas d'imposer le C# plutôt que le C++ ou le Pascal, mais bien au contraire de faciliter au mieux la vie des développeurs pour qu'ils compilent des applications écrites comme bon leur semble. Mais elles seront exécutables uniquement sous Windows, et non compatibles avec Linux ou Mac OS. Plus il y a de logiciels compilés pour Windows, plus Windows s'impose comme standard obligatoire. C'est ce qui l'a aidé à avoir une part de marché proche de 100 % sur les PC.

Avec son nouveau contrat, Apple prend une posture totalement différente, mais qui répond à la même problématique d'incompatibilité. Il aurait pu permettre à tous les constructeurs d'installer l'iPhone OS sur leur téléphone mobile, comme l'a fait Microsoft pour Windows avec tous les constructeurs d'ordinateurs, dans l'espoir d'aquérir le même niveau de parts de marché. Mais la firme de Cupertino n'a pas cette culture ni cette ambition, et veut donc plutôt empêcher la création d'un standard unique qui serait compatible avec les principaux appareils mobiles, et dévaloriserait ainsi l'iPhone.

C'est un coup très dur porté aux éditeurs de SDK multi-plateformes comme Unity ou MonoTouch. Mais Adobe était le mieux placé pour parvenir à imposer un standard, avec son Flash CS5 qui devait permettre de compiler des applications écrites en Flash vers des applications pour iPhone ou d'autres plateformes. En quelques clics, les développeurs pouvaient créer une seule et même application en Flash, et la rendre compatible avec l'iPhone, l'iPad, l'iPod touch et divers appareils concurrents sous Android, Windows Mobile, ou Blackberry. De fait, le Flash se serait vite imposé comme standard dans les entreprises en recherche de productivité. Mais le navigateur mobile d'Apple ne reconnaît pas le Flash, et désormais les contrats imposés aux développeurs leur interdise de convertir une application Flash vers une application pour l'App Store. Il faut qu'ils la réécrivent en entier à partir du C, du C++ ou de l'Objective-C.

Or Apple ayant la part de marché la plus importante sur les smartphones, renforcée par le succès de l'iPad, il n'est pas concevable de se passer de la compatibilité avec l'iPhone et sa fratrie. L'iPhone OS restera donc la plateforme de prédilection, et les consommateurs qui souhaiteront accéder aux applications pour iPhone OS auront l'obligation d'acquérir un appareil Apple.

Interrogé sur sa stratégie, Steve Jobs n'a pas nié cette interprétation. Il a même renvoyé vers un billet de John Gruber, qui explique lui-aussi cette vision des choses. Gruber y voit aussi un souci de la part d'Apple de ne pas être dépendant de la vitesse d'Adobe ou des autres fournisseurs d'API alternatives à s'adapter à ses propres mises à jour. "Imaginez un monde où la boîte à outils cross-plateforme d'une autre société s'avère extrêmement populaire. Alors Apple dévoile de nouvelles fonctionnalités pour l'iPhone OS, et la boîte à outils de cette autre société est lente à s'y adapter. A ce stade, c'est l'autre société qui contrôle quand les applications des tiers peuvent tirer partie de ces fonctionnalités", écrit-il.

C'est en somme la situation qu'ont subi les développeurs et webdesigners pendant des années, lorsque les spécifications adoptées par le W3C pour enrichir les pages web étaient publiées. Avant de pouvoir les exploiter, il fallait attendre parfois plusieurs années que Microsoft les prenne en charge sur Internet Explorer.

Publié par Guillaume Champeau, le 12 Avril 2010 à 17h57
 
 
47
Commentaires à propos de «Pourquoi Apple rend obligatoire les langages C, C++ ou Objective-C sur l'iPhone»
 

1
2
3
J'avais testé un truc de RunRev "revolution" je crois.. c'était pas mal pour écrire une appli rapidement mais un peu beugué sur les bords
Bon je vais prendre un téléphone sous Android ....

Que me conseillez vous comme modèle ?
Steve Jobs ne devraient pas s'entêter dans la guerre anti-adobe car il risque d'y laisser des plumes. Il a l'air de considérer que son App Store est une fin en soi et qu'il est parti pour durer... Rien n'est moins sûr...
Je connais pas parfaitement l'histoire des Mac, mais cela n'y resemble-t-il pas? Apple voulant garder l'exclu ne démocratise pas ses produits et fini par se faire doubler par une solution concurrente.
Apple est loin d'avoir la plus grande part de marché, que ce soit sur les smartphones ou les téléphones.
Au 1er trimestre 2010, elle possédait 20% de PDM des smartphones, loin derrière RIM. Son OS a une PDM de 25% en gros, loin derrière Symbian, ou encore RIM.

L'iPhone perd d'ailleurs pas mal en PDM ces derniers temps, la mode est terminée, il y a des équivalents sans les restrictions made in Apple, et on voit la montée en puissance d'Android.
enzopitek, le 12/04/2010 - 18:04
Bon je vais prendre un téléphone sous Android ....

Que me conseillez vous comme modèle ?

Et moi je vais me mettre à Flash ça a l'air pas mal en fait :D C'est gratuit?
Marrant comme personne ne semble decrypter la startégie d'Apple : taper le plus fort possible sur Adobe (L'annonce de l'article 3.3.1 à 3 jours de la mise sur le marché de CS5, donc un des attraits était de faire des applis iphone, tres fort)
du coup, l'action Adobe baisse, haro sur la techno flash, et adobe ne valant polus que 10% du cash dispo d'Apple, zou on rachete et on en profite pour virer flash et CS pour windows en un joli mouvement... Machiavel doit faire "mouahh ah ah"...
En clair, la iPhone Mania est terminée, il faudrait maintenant que les médias le comprennent, ce n'est plus un fer de lance technologique, et son OS a vraiment mal vieilli.

On attend juste que les développeurs se décident à migrer, il y en a déjà pas mal sur Android (42 000 applications déjà !), les autres plate-formes ne sont pas vraiment intéressantes pour les développeurs amateurs, RIM par exemple ne donne accès qu'à un développement sur la surcouche JAVA, ça limite énormément les possibilités comme les performances.
Le truc aussi c'est qu'il faut arrêter de vouloir le beurre l'argent du beurre et le cul de la crémière en prime : quand on développe pour mobile, on fait de l'embarqué, pas du dev façon PC (ou mac, linux...).

Faire tourner un programme dans une couche de wrapper elle-même tournant dans une VM java ou flash, c'est un gaspillage de ressources comme seuls les développeurs de nouvelle génération savent en faire...

Or, en mobile, les ressources , c'est la batterie !

Ca a le don de m'agacer qu'on demande en tant qu'utilisateur à la fois une compatibilité flash, java .net et autres et en plus une batterie de 6 jours en veille !!! c'est juste débile.
@tac android est un OS basé Linux avec une mini machine java au dessus.

C'est un produit de Google mais tous les constructeurs peuvent l'utiliser car c'est sous license GPL.

Maintentant je demandais si quelqu'un a un retour d'expérience avec un appareil qui l'utilise comme le Samsung Galaxy.
la mode iphone est terminée?! c'est marrant j'en vends de plus en plus, sans compter les clients qui n'attendent que la sortie de l'iphone 4/HD :D
Le chapitre pour microsoft n'est plus valable avec dotNet.
Un exécutable compilé peu tourner sous n'importe quelle plateforme qui implémente le framework (mono sous linux par exemple), suivant pour ça la philosophie de Java.
enzopitek, le 12/04/2010 - 18:04
Bon je vais prendre un téléphone sous Android ....

Que me conseillez vous comme modèle ?

le HTC Desire, ou le HTC Legend. :)
Sous Unity on peut coder en JS mais c'est compilé en librairies reposant sur .NET par dessous. Sa compte?
Effectiveenmt la france est comme toujours une exception, avec presd 50% de pdm.
Exception culturelle o bin exces de moutonisme aigue?
Ben_789, le 12/04/2010 - 19:11
enzopitek, le 12/04/2010 - 18:04
Bon je vais prendre un téléphone sous Android ....

Que me conseillez vous comme modèle ?

le HTC Desire, ou le HTC Legend. :)

Le Desire en 1er choix,
Le Legend en 2e. :)
mac afficionado, Apple me gave depuis longtemps .
D'un autre coté, Flash 10 me super gave !!!! ;-)
le seul truc chiant, c'est qu'on change la done, pour les développeurs.
Hors, c'est un pari à long terme :
ce qui a fait le succés de l'iphone, c'est ses applications, couplées bien sur à un object intelligent, mais ce sont les softs qui ont portés le phone.
maintenant, comme à son habitude, Apple change les règles : je le comprends, c'est commercialement juteux, mais humainement??? combien de développeurs vont stopper ???
C'est un gros risque, mesuré, un peu comme l'abandon de l'os 9.2 & an après sa sortie, ou l'abandon des PPC.
le nombre de dév qui ont été éc?uré par cette marche forcée en avant... Bref, l'avenir le dira, je crois en Steve Jobs, même si je regrette qu'à sa place on ait pas Wozniak.....
enzopitek, le 12/04/2010 - 19:01
@tac android est un OS basé Linux avec une mini machine java au dessus.

C'est un produit de Google mais tous les constructeurs peuvent l'utiliser car c'est sous license GPL.

Maintentant je demandais si quelqu'un a un retour d'expérience avec un appareil qui l'utilise comme le Samsung Galaxy.

je parlais de l'outil de dev de adobe Flash...

Ceci dit je viens de lire plusieur articles l'Iphone est loin d'être mort au contraire il progresse plus vite que les autres et devient même un concurrent sérieux à blackberry pour les professionnel.

Ce qui a de bien avec Apple par contre, c'est que tout l'environnement de développement pour Mac, Iphone, etc... ben c'est gratuit ;-)

Et puis honnêtement je n'aime pas flash, à un moment donné je n'utilisais plus que IE 64bits parce que j'étais sûr que flash ne tournait pas dessus. Si Safari n'était pas compatible flash je serais resté dessus :D même sous windows du coup j'utilise firefox que je suis obligé de relancer de temps à autres quand il se mets à me bouffer 100% de cpu et je suppose que le coupabe c'est encore flash.

L'autre truc qui me fil des boutons quand je le vois c'est norton antivirus, même gratuit je n'en veux pas!
tac, le 12/04/2010 - 19:38
Ce qui a de bien avec Apple par contre, c'est que tout l'environnement de développement pour Mac, Iphone, etc... ben c'est gratuit ;-)
Si tu veux développer pour Iphone, Il te faut acheter un Mac.

Pour Android, il te faut soit un mac, soit pc (Win ou Linux).




Ps : A ceux qui s'y connaissent, vous pensez quoi du Acer Liquid ?
Tout ce qui peut tuer Flash est bon à prendre

1
2
3
Télécharger
Offline Explorer Pro
 
Rainlendar Lite
Organiseur - Calendrier intégré au bureau
 
JelloCar
Plate-forme - Jeu de course/plateforme original
 
Brute Force Uninstaller (BFU)
Nettoyeurs - Fabriquer un script pour désinstaller un programme récalcitrant
 
TerraExplorer
Cartographie - un Google Earth français et en 3D!
 
Avril 2010
 
Lu Ma Me Je Ve Sa Di
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 1 2
3 4 5 6 7 8 9
Matoumba
EntrepreNantes
Numerama est un site du réseau PressTIC