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
hm, rien n'oblige les gens à acheter apple hein... De mon point de vue, qu'ils fassent bien ce qu'ils veulent, au final je m'en tamponne pas mal
laskov, le 13/04/2010 - 08:09
goulou, le 12/04/2010 - 22:23
Pour les développeurs Android ne résoud pas la problématique de la fragmentation : taille d'écran, performance, fonctionnalités différentes d'un mobile à l'autre. C'est ce qui rend les applications java (J2ME / Java ME) si difficiles à porter sur les mobiles "ancienne génération". L'écosystème de l'iPhone résoud en partie cette problématique : moins de modèles, moins de portage, moins de tests. De ce point de vue l'avenir d'Android n'est pas assuré...

c'est bizarre mais le pc est comme ça depuis des années et ça n'a jamais empêcher qui que ce soit de porter des logiciel et celà aussi bien de windows a linux ou l'inverse...

À cause de la fragmentation, pour faire un jeu Java sur téléphone il faut actuellement environ 400 versions différentes, alors que Java est censé être portable. Porter n'est pas difficile en soi, mais cela implique de gros moyens (notamment en tests).
Le, le 13/04/2010 - 00:39
Prince, le 13/04/2010 - 00:24
tac, le 12/04/2010 - 22:36
comme si c'était les développeurs qui faisait le succès d'une plateforme...
Clairement que oui.

Pour les machines de bureau, oui l'histoire est tres claire là dessus. (ou sont nos amigas, atari, BeBox ?) par contre, pour un telephone mobile, je serai moins catégorique. Il y a en effet une bonne proportion de gens qui passée la première semiane, vont utiliser leur téléphone principalement pour... téléphoner, surfer et lire leurs mails. Dasn ce cas, c'est plus la plateforme (et ses applis intégrées) que les développeurs tiers qui font la réussite de l'objet...


N'importe quoi de chez n'importe quoi. Et Alice au pays des merveilles aussi.

Ce qui fait le succès d'une plateforme comme de tout produit ce sont les consommateurs. C'est ce qui fait que des marques ou même des sous-marques qui du fait de leur bon positionnement en terme de prix, accessibilité et visibilité deviennent de grosses entreprises parce que tout simplement les utilisateurs adoptent leur produits au détriment de la concurrence qui fait peut-être même de meilleurs produits. Des exemples il y en a des milliards, c'est même souvent le produit le moins bon techniquement qui gagne.

Les développeurs vont là où il y a du fric et des businessmen pour les payer.
On écrit "société tierce", pas "société tiers" :)
iphone = console et non pas ordinateur. Je ne pense pas qu'on puisse faire ce que l'on veux quand on développe sur une console !
En général c'est facile de taper sur les entreprises qui font tout pour que leur technologie reste fermée mais là pour le coup quelqu'un qui se plain de la lenteur/lourdeur de flash ne peut pas avoir tord :p
C'est peut-être aussi par ce que l'on laisse développer n'importe quoi par n'importe qui avec n'import quoi sur Windows qu'on a ce niveau de perfs ou de stabilité aussi merdique!

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