./8630 > Tu n'as qu'à aller voir chez Android si l'herbe est plus verte…
Ils ont apparemment "enfin" optimisé la dernière version d'Android pour que ça puisse tourner sur des machines avec aussi peu de RAM… qu'un iPhone 4S.

Pour le moins trollatoire, Brunni a à peu près tout déjà dit : Ils ont revu l'OS et oui ça bouffe plus de performances.
D'autre part tu noteras qu'il y a peu d'intérêt à sortir du nouveau hardware si tu n'optimises pas ton logiciel pour fonctionner avec ce nouveau hardware. Tu peux appeler ça prendre les consommateurs pour des cons si tu veux — c'est vrai que ce n'est pas très "gentil" sous le seul point de vue du matériel > 4 ans non supporté — mais c'est quelque chose qu'on retrouve absolument partout, et je vais te citer quelques exemples bien concrets, et autrement plus emmerdants qu'un téléphone qui *fonctionne*…
• Drivers de carte graphique ATI ou NVIDIA qui supportent moins bien les cartes graphiques de plus de 4 ans, parfois de seulement plus de 2 ans.
• Drivers d'imprimante HP qui ne sont pratiquement jamais mis à jour après leur première sortie, malgré une pléthore de bug: si tu changes d'OS, tu devras te contenter du driver fourni par Microsoft, certes exempt de bugs, mais aussi exempt de fonctionnalités. Ton imprimante est bonne pour la poubelle.
• Mises à jour *obligatoire* de MMO, comme World of Warcraft, où pour un matériel donné, la même zone du jeu avec exactement les mêmes réglages graphiques, ne s'affiche même plus correctement à 2fps là où avant le rendu était parfait avec 20-40 fps…
• Les anciens dumbphone type Sagem myX-6 qui n'étaient jamais mis à jour par l'opérateur…
• Windows XP qui ne tourne pas exactement bien sur PC avec la configuration minimale requise… Sauf à vouloir n'utiliser qu'une application à la fois.
• Windows Vista qui était à lui seul en mesure de faire ramer le matériel raisonnable de son époque…
Pour finir sur une touche de sérieux (cela étant dit, la liste au dessus, loin d'être exhaustive, est plus que sérieuse…), je rapellerai que Apple, tout comme Samsung, HTC, LG, Motorola, Nokia, ou n'importe quel constructeur chinois à deux balles, te vendent un
téléphone.
Un téléphone
qui va sur internet, parfois même
qui peut installer des applications, mais ça reste un téléphone, juste un peu plus "intelligent". Et c'est exactement ce que tu as entre les mains.
Les mises à jour de ton OS ne sont pas un droit. C'est plus un cadeau de ton constructeur/opérateur qu'un privilège. Tu peux comparer avec ce qui se fait à côté et critiquer ceux qui font moins bien (hint: Android

), c'est de bonne guerre, mais tu ne peux pas considérer ça comme un dû. Dans un sens, même si ton téléphone n'est jamais mis à jour, ton constructeur a rempli son contrat : Il t'a vendu un téléphone, et ton téléphone fonctionne.
(Je ne dis pas que je suis 100% d'accord avec la façon dont les choses fonctionnent, mais c'est la façon dont les choses fonctionnent, c'est tout.)
./8632 > Non, leurs puces ne sont pas imbattables… Elles sont cependant sensiblement meilleures que celles de la concurrence, sur certains points, mais pas partout:
Par exemple, le processeur A6 de l'iPhone 5 en activité consomme bien plus que la plupart des concurrents, mais au repos, il consomme moins.
De manière générale,
Apple prend pas mal de libertés avec le design de leurs puces par rapport au design de base fourni par ARM, alors que les autres en prennent moins.
Mais il faut rappeler qu'ils ont racheté des boîtes spécialisés dans ce domaine, et ce n'était pas un pur hasard.
Sinon, si j'ai bien compris ART, c'est juste du bytecode précompilé. En fait, presque exactement ce que fait déjà Microsoft pour Windows Phone (Y'a des articles mieux que ça mais flemme de chercher :
http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj585401(v=vs.105).aspx). C'est sur que ça peut améliorer le temps de démarrage, mais après, ça ne veut rien dire sur les performances "stables" de l'application. Un bon compilateur AOT peut produire du code plus optimisé dans certains cas (car plus de temps et de mémoire disponibles pour compiler), mais ce n'est pas obligatoire.
Chez Microsoft avec .NET, par exemple, on sait que les assemblys précompilés AOT (avec NGEN) ne sont pas nécessairement plus performants que ceux compilés JIT, mais se chargent beaucoup plus vite, surtout sur les machines peu performantes.
Concernant la qualité de Dalvik, je pense que la plupart des gens ici savent tout le bien que je pense du Java, alors je me contenterai de mentionner
XobotOS, une expérience sérieuse de Xamarin. C'est un peu orienté, parce qu'ils tapent là où ça fait mal, mais ça montre la marge de progression qu'il y a à obtenir en se passant de Java…
Et concernant le choix de Java, ben Brunni a résumé pour la partie évidente. Pour la partie moins évidente, je cite un petit bout de
cet article (que je n'ai pas eu le courage de lire intégralement) :
Unlike Apple's iOS, Android's Dalvik VM wasn't designed with the intent of bringing "desktop class" apps to mobile devices. Google's Android project began as a way to embrace and extend Sun's Java Mobile platform into an open source project Google could use without licensing fees; the Dalvik VM was expressly created to run simple applets on a slow processor without much RAM. Only after the iPhone debuted did Android change course to catch up.
(Honnêtement, je reste convaincu qu'ils auraient vraiment mieux fait d'adopter la technologie .NET, comme ils l'avaient envisagé, mais bon… À l'époque où ils ont fait ces choix, c'était moins évident :
http://www.osnews.com/story/25264 
)
En tout cas, il vaut sans doute mieux mieux être un développeur iOS que Android:
http://appleinsider.com/articles/13/06/20/apple-now-charting-app-store-ios-fragmentation-just-like-googles-android 