Suivez-nous

Technologies

Bitcode, une fenêtre ouverte sur les prochains processeurs Apple ?

neilime

Publié le

 

Par

app_thinning.png

Bitcode, nous l’avons déjà évoqué, est un système mis en place par Apple pour limiter le poids des applications à partir d’iOS 9 : le développeur ne soumettra plus son application avec plusieurs binaires adaptés aux différents processeurs que compte l’iPhone (essentiellement les processeurs 32 bits jusqu’au processeur A6 puis les 64 bits à partir de l’A7). En revanche, le développeur ne soumettra plus qu’une version bytecode, c’est-à-dire intermédiaire entre le code source et le binaire compilé. Apple pouvant ainsi ne faire télécharger au client, qu’un binaire, compilé à la volée, spécifique au processeur de son iPhone et pas tous les autres inutiles comme c’est le cas jusqu’à iOS 8.

Mais le Bitcode LLVM utilisé par Apple, ce n’est pas seulement la possibilité d’alléger l’application téléchargée, c’est aussi la possibilité de faciliter une éventuelle transition vers une autre architecture de processeur. En effet, le bytecode intermédiaire qui est soumis à l’App Store, n’étant pas spécifique d’une architecture, Apple le compilera et donc l’optimisera à la volée pour le processeur de l’iPhone qui télécharge l’app. Ainsi, si Apple sortait un processeur avec une nouvelle architecture, le développeur n’aurait pas besoin de resoumettre son application, Apple se contenterait de compiler de manière spécifique le code intermédiaire déjà en sa possession.

Ce Bitcode est en fait un encodage de la représentation intermédiaire fournie par l’infrastructure de compilation LLVM adoptée et poussée par Apple depuis de nombreuses années.

Mais que dit cette adoption du Bitcode, de la stratégie future d’Apple concernant ses processeurs ? Certains spéculent déjà sur le fait que la lumière mise sur cette représentation intermédiaire du code pourrait directement bénéficier à l’Apple Watch.

En effet, tout comme l’iPhone embarquait en son temps un processeur alors utilisé par Samsung dans ses lecteurs DVD qui fût largement amélioré par la suite, obligeant les développeurs à sans cesse revenir sur leurs apps, l’Apple Watch embarque un processeur S1 de première génération sur lequel les ingénieurs de la Pomme vont probablement apporter de très nombreuses améliorations dans les mois et années qui viennent. Des améliorations si fortes que les applications compilées pour le S1 ne fonctionneront peut-être pas sur le S2, obligeant tous les développeurs d’applications natives pour la montre pommée à remettre l’ouvrage sur le métier. À moins que… ?

À moins que les développeurs, obligés par Apple à soumettre des apps natives au format intermédiaire, soient en réalité déchargés de tout travail d’adaptation, Apple se chargeant de compiler le code intermédiaire fourni en fonction de la génération de la montre. Apple pourrait même abandonner l’architecture ARM –ce qui ne semble pas près d’arriver– que les développeurs ne s’en rendraient peut-être pas compte, l’App Store fournissant une version adaptée à la nouvelle architecture au moment de la distribution.

La réflexion d’Inertial Lemon sur medium.com ne s’arrête pas là : ce qui est valable pour iOS et watch OS, l’est aussi pour le Mac. Si Apple décidait de remplacer tout ou partie des processeurs Intel dans le Mac par une autre architecture (ARM ?), toutes les applications du Mac App Store soumises en représentation intermédiaire fonctionneraient immédiatement sur les Mac dotés d’une nouvelle architecture processeur, Apple distribuant à tous ses clients une application avec des binaires adaptés au nouveau processeur. Notez que pour le moment, Bitcode est réservé à iOS et watch OS.

Certains développeurs s’en rappellent encore, Apple a déjà fait le coup dans le passé : pendant plusieurs années, les ingénieurs Apple avaient exhorté les développeurs à abandonner CodeWarrior pour Xcode qui n’avait pas un succès fulgurant. Or le jour où Apple a annoncé la transition vers Intel, malgré l’existence de Rosetta, la transition avait été douloureuse pour tous les développeurs qui n’avaient pas encore franchi le pas vers les outils d’Apple.

Alors qu’Apple est-elle en train de nous préparer avec son Bitcode ?

Apple’s Bitcode Telegraphs Future CPU Plans