Mac4Ever Refurb Guide d'achat Apple - Des conseils sur toute la gamme Apple Débuter sur Mac
#BitCode : quand Apple réinvente Java à sa sauce et vise l'indépendance matérielle
Actu Dossiers Forum Photos/Podcasts Petites Annonces V.I.P.
1180 connectés

#BitCode : quand Apple réinvente Java à sa sauce et vise l'indépendance matérielle

Le 18/06/2015 à 17h32
Créé en 1995, Java était présenté à l'époque comme une nouvelle façon de programmer et d'exécuter des applications. Pour faire simple, en écrivant son code, le programmeur n'avait plus à se soucier de la machine sur laquelle il allait être exécuté, il n'avait pas à se préoccuper de la gestion de la mémoire et le langage en lui-même présentait un niveau d'abstraction suffisamment élevé pour se concentrer sur le fonctionnel, plus que sur les optimisations diverses.

Java est partout... sauf sur iOS !

20 ans après, le Java a largement conquis le monde de l'entreprise, et a regagné en popularité ces dernières années, avec la décision de Google de l'utiliser pour Android. Il est désormais nettement en tête du classement Tiobe, qui évalue les langages les plus populaires chaque année. Malgré ce succès, Apple a choisi de poursuivre avec ObjectiveC, un langage également orienté objet, mais dont les bases sont très différentes du Java : il faut gérer la mémoire manuellement et il s'agit d'un langage compilé, qui produit des exécutables spécifiques pour une (ou plusieurs) plateformes. Chacun a ses avantages et ses inconvénients, et le choix d'Apple s'est finalement montré plutôt convaincant : le fait d'être compilé offre des performances nettement supérieures à CPU égal, les apps consomment moins de mémoire, il n'a pas besoin de « Garbage Collector » pour gérer sa mémoire et il ne faut pas oublier qu'il est rétro-compatible avec le langage C, encore très populaire (2e du classement Tiobe). Mais en face, Java garde quelques atouts, et pas des moindres : Java est bien plus accessible qu'ObjectiveC (il est souvent enseigné à l'école), le programmeur n'a pas à gérer la mémoire et surtout, il n'est pas dépendant d'une seule plateforme matérielle spécifique.

Swift, à la conquête de Java

Depuis quelques années, Apple a donc décidé de venir marcher sur les terre de Java, mais avec sa propre approche. L'arrivée de « ARC » a permis aux développeurs venant du web ou du monde Java de ne plus se soucier de la gestion de la mémoire sans faire de concession sur les performances (pas de Garbage Collector). Cette technologie, qui a fait ses preuves sur iOS, a été logiquement conservée avec Swift.



L'arrivée de ce nouveau langage ne s'est d'ailleurs pas faite par hasard et avait également Java en ligne de mire : la structure est plus simple, et se rapproche même plus des langages de script les plus populaires (JavaScript, PHP...), gage d'adoption majeur chez les jeunes. Mieux encore, Swift 2 est passé Open Source... tout comme Java depuis plus de 10 ans !! Comme Jeff vous l'expliquait il y a quelques jours, l'intérêt de cette décision est énorme, tant sur le plan universitaire que pour conquérir, par exemple, le marché des serveurs.

BitCode : la pierre angulaire

Cette année, Apple a finalement posé la dernière pierre nécessaire pour atteindre l'édifice Java : l'indépendance des plateformes grâce au « BitCode ». L'annonce est passée un peu inaperçue pendant la keynote et les développeurs présents à la WWDC ont d'ailleurs été assez étonnés de ne voir aucune sessions dédiée (hormis quelques mots dans «  App Thinning in Xcode »). Plus étrange encore, la documentation se limite à seulement quelques lignes :



Le « BitCode » d'Apple se rapproche en fait du « ByteCode » Java, à la différence près qu'il ne sera pas exécuté sur l'iPhone directement. Sur Android, Google utilise une technologie dite « Just In Time » qui permet de compiler l'app directement sur le téléphone, là où Apple fait le choix de n'offrir que des binaires optimisés à ses utilisateurs (on se demande d'ailleurs si une ferme de Mac existe quelque part pour réaliser l'opération !). Cupertino demande donc à ses développeur de « pré-compiler » leurs programmes, charge à elle de gérer la dernière étape, qui consiste à compiler le code pour une plateforme donnée et à gérer les dernières optimisations, habituellement réalisées par le compilateur, côté développeur. L'approche est intelligente, puisqu'Apple pourrait potentiellement changer ses processeurs sans demander de travail supplémentaire à ses éditeurs. Mieux encore, ce type de solution permet d'ajuster chaque app « aux petits oignons » pour un processeur et un environnement donné : actuellement, une app est compilée de la même manière pour tous les appareils, avec comme seul choix, une version 32 et 64 bits. Désormais, Cupertino pourrait offrir des dizaines de combinaisons possibles d'un même programme, chacune optimisée spécifiquement pour l'appareil concerné.

BitCode, la porte ouverte à des Mac ARM ? Pas si vite !

Un article anonyme posté sur Medium fait le buzz depuis hier, l'homme estimant qu'Apple prépare en fait une transition CPU ou plutôt, s'offre le choix des puces : si BitCode arrive un jour sur Mac (ce n'est pas encore le cas pour l'instant), il pourrait permettre aux développeurs de fournir à Apple des exécutables qui seraient indifféremment compatibles avec des machines ARM ou Intel. Toutefois, il ne s'agit que d'une théorie : actuellement, Apple impose un bitcode par architecture, il n'est donc pas possible d'avoir un seul et même code pour les apps 32 et 64 bits. Pour le moment, seules les évolutions mineures des architectures sont prises en charge, mais ce n'est sans doute que le début.

Sur iOS, BitCode est déjà imposé sur l'Apple Watch, ce qui permettra à Apple de proposer un processeur « S2 » immédiatement optimisé avec les « anciennes » applications, sans avoir à demander aux développeurs de recompiler leurs apps. Pour iOS, le binaire classique reste de mise, et le BitCode n'est envoyé (pour le moment) qu'en complément. BitCode se présente donc comme un moyen idéal de ne pas se retrouver dépendant d'une plateforme matérielle, sans pour autant perdre en performances ou être obligé de créer des techniques Just In Time utilisées actuellement pour accélérer l'exécution des langages non compilés (Java, JavaScript, PHP...).

Un accueil mitigé chez les développeurs

Et les développeurs, ils en pensent quoi de ce « BitCode » ? Le moins que l'on puisse dire, c'est que les réactions sont partagées. D'un côté, la plupart se félicitent de l'élégance de la solution, qui pourrait se montrer ultra-efficace le jour où le hardware ne se limitera plus à de l'ARM sur iOS et de l'x86 sur Mac. Mais cette technique ouvre aussi de nombreuses interrogations :

- Quid du testing ?

C'est LA crainte principale des développeurs : si demain, Apple sort un iPhone 6s avec un processeur A9, Cupertino pourrait recompiler toutes les apps pour ce processeurs, avec toutes les optimisations nécessaires. Seul hic, aucun développeur n'aura pu tester le code avant la sortie. Apple prend donc le risque de voir certains programmes planter ou se comporter anormalement. De nombreux développeurs continuent d'essuyer les plâtres du passage au 64 bits (qui ne s'est pas fait dans la douceur, loin de là) et l'idée qu'Apple puisse valider elle-même une nouvelle transition inquiète. Les ingénieurs se sont toutefois montrés rassurants durant les labs de la WWDC : pour l'heure, un même BitCode ne sera utilisé que pour de toutes petites modifications d'architecture. Mais le risque ne sera jamais nul !

- Quid du versionning ?

Là aussi, on peut s'interroger : le développeur a-t-il encore la main sur ses apps ? Si Apple se charge de compiler les programmes, est-ce qu'une version optimisée pour le A9 sera automatiquement incrémentée sur l'App Store ou dans les numéros de build ? Pour l'heure, aucune information n'a été donnée.



- Quid du debugging ?

En imaginant qu'Apple génère de nouvelles versions des apps automatiquement (ce qui sera de toute façon le cas), comment récupérer les crashlog et débugger les programmes ? A cette question, iTunes Connect va normalement fournir les fichiers DSYMs nécessaires pour remonter à la source des plantages de ses utilisateurs. Cela nous a été confirmé par différentes sources.

- Quid des optimisations CPU ?

Le BitCode est généré durant une étape interne du compilateur Clang/LLVM, et même s'il ne s'agit pas de langage machine, on obtient tout de même un code assez bas niveau. Les optimisations seront évidemment réalisées automatiquement par le compilateur (et par Apple, in fine) mais il sera alors impossible d'inclure du code assembleur, par exemple. Difficile de savoir si aujourd'hui, beaucoup de développeurs iOS optimisent leur code de la sorte, mais sur Mac, il est probable que ces pratiques soient encore relativement courantes dans certains domaines (imagerie, jeux etc.).



- Quid des librairies tierces ?

De tous les développeurs avec qui nous avons pu discuter, c'est là que règne la plus grande incertitude. Il faut dire que cette année, beaucoup ont déjà eu de grandes difficultés à obtenir des versions 64 bits requises par Apple des bibliothèques tierces utilisées abondamment dans les programmes. Avec BitCode, Apple est très claire et c'est même Xcode qui crache le morceau :

You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. Note: This will be an error in the future.


Si pour les libs OpenSource, il est facile d'obtenir de nouvelles compilations, c'est toujours plus compliqué pour les bibliothèques propriétaires. Beaucoup espèrent qu'Apple n'imposera pas le BitCode trop rapidement, comme ce fut le cas pour le 64 bit !

BitCode au coeur du futur d'OS X et d'iOS ? Pas sans un Mac App Store 2.0 !

Si l'arrivée de BitCode sur iOS génère finalement plus de questions que de véritables inquiétudes, son extension au Mac et à OS X parait comme une évidence, surtout avec l'idée d'un Mac ARM en ligne de mire.

Seule différence notable, actuellement, les programmes peuvent encore être téléchargés en dehors du Mac App Store, qui peine d'ailleurs à convaincre les développeurs. Sous le manteau, on parle même de vrai fiasco, la solution d'Apple étant jugée bien trop restrictive en matière de coding et les fameux 30% prélevés ne compensent pas l'apport de visibilité que pourrait apporter la boutique.

Sur le papier, et sans un modèle de distribution centralisé, on est encore loin de pouvoir espérer l'arrivée du BitCode sur OS X. Et même si Apple verrouille de plus en plus son modèle (en obligeant notamment les développeurs à signer leur programme), on ne voit pas bien comment la firme pourra obliger les éditeurs à ne plus distribuer leurs apps comme bon leur semble, sans prendre de très gros risques pour l'avenir du Mac.
partage email

L'Apple Watch 2 embarquerait une caméra et prendrait quelques distances avec l'iPhone

Vie privée : Edward Snowden croit aux promesses de Tim Cook

chargement des réactions

Réagissez à ce dossier !

Pour réagir directement dans le forum, cliquez ici.
Pour réagir, vous devez être identifié.
Si vous ne possédez pas de compte, créez-en un !
Identifiant :
Mot de passe :
Gras Italique Souligné Image URL Smiley confus Smiley cool Smiley M. Vert Smiley malsain Smiley mort de rire Smiley geek Smiley surpris
Important : soyez concis, courtois et pertinents. (plus d'infos ?) Les messages injurieux et hors sujet seront effacés. En cas de non respect de ces instructions, le compte d'un utilisateur pourra être bloqué sans préavis.
Pour toute erreur dans un article, merci de nous le signaler en nous contactant ici.

Conseils d'achat

  • Macintosh

  • iPhone, iPad & iPod

iMac 27" 5k Indicateur orange Informations 06/2017 2099 € L'iMac 27" (Retina) a été mis à jour le 5 juin 2017 avec Thunderbolt 3, GPU dédié et puces Kaby-Lake. On attend des modèles Coffee Lake (à 6 coeurs) d'ici le courant du printemps/été 2018.
iMac 21,5" 4k Indicateur orange Informations 06/2017 1499 € L'iMac 21,5" (Retina) a été mis à jour le 5 juin 2017 avec Thunderbolt 3, GPU dédié et puces Kaby-Lake. On attend des modèles Coffee Lake (à 6 coeurs) d'ici le courant du printemps/été 2018.
Apple TV 4k Indicateur vert Informations 09/2017 199 € L'Apple TV 4k est une petite évolution de l'Apple TV pour les téléviseurs 4k. Il gère le HDR, le HDMI 2a et tous les codecs récents. Si vous avez une télévision OLED 4k, il s'agit du modèle idéal. Son prix est raisonnable par rapport à la version HD, qui reste au catalogue.
iMac Indicateur orange Informations 06/2017 1299 € L'iMac 21,5" (non Retina) a été mis à jour le 5 juin 2017 avec Thunderbolt 3 et puces Kaby-Lake. On attend des modèles Coffee Lake (à 6 coeurs) d'ici le courant du printemps/été 2018.
iMac Pro Indicateur vert Informations 12/2017 5499 € L'iMac Pro est actuellement le Mac le plus puissant du marché. Il ne sera pas renouvelé avant une bonne année, sauf surprise. N'hésitez pas à consulter nos tests et nos vidéo avant de vous décider ! A noter qu'Apple va sortir un Mac Pro courant 2018 (ou 2019), donc si vous n'êtes pas trop pressé, il sera + modulaire...
Mac Mini Indicateur rouge Informations 10/2014 549 € Le Mac mini a été mis à jour fin 2014, avec quelques améliorations notables, comme Thunderbolt 2, WiFi ac. Son prix a également fortement baissé, mais au prix d'un boiter moins évolutif (RAM soudée) et d'absence de quadri-coeur. Une renouvellement pour la rentrée (voire fin 2017) est possible, même si Apple n'a pas l'habitude de mettre à jour cette machine très souvent. Regardez aussi du côté du Refurb, où l'on trouve régulièrement des modèles à partir de 459€ !
Mac Pro Indicateur rouge Informations 10/2013 3339 € Apple a annoncé un nouveau Mac Pro courant 2018 (voire 2019), plus modulaire et moins fermé que la version actuelle. Dans tous les cas, surtout n'achetez pas les modèles "tube" datant de 2013 et désormais assez dépassés.
MBP Retina 13" Indicateur vert Informations 06/2017 1499 € Le MacBook Pro 13" a été mis à jour le 5 juin 2017, avec peu de nouveautés, en dehors du passage à Kaby-Lake. Vous pouvez encore acheter tranquillement, aucune mise à jour prévue avant le printemps/été 2018 (avec des puces à 4 coeurs en vue !)
MBP Retina 15" Indicateur vert Informations 06/2017 2799 € Le MacBook Pro 15" a été mis à jour le 5 juin 2017, avec peu de nouveautés, en dehors du passage à Kaby-Lake et de "nouveaux" GPU. Vous pouvez encore acheter tranquillement, aucune mise à jour prévue avant le printemps/été 2018 (avec des puces à 6 coeurs en vue !)
MacBook Air Indicateur orange Informations 06/2017 1099 € Le MacBook Air a été "mis à jour" le 5 juin 2017, avec des fréquences légèrement supérieures, mais aucune autre nouveauté. Cette machine est en fin de vie et Apple ne lui accordera plus aucune vraie mise à jour. Achetez le plutôt sur le Refurb !
MacBook Indicateur vert Informations 06/2017 1499 € Le MacBook Pro a été mis à jour le 5 juin 2017, avec peu de nouveautés, en dehors du passage à Kaby-Lake. La prochaine mise à jour n'est pas attendue avant l'été 2018 (voire en milieu de printemps).
Apple TV 2015 Indicateur vert Informations 10/2015 159 € L'Apple TV 2015 est sortie fin 2015 et Apple le garde au catalogue malgré l'arrivée de la version 4k. Avec en prime, une petite baisse de prix ! Si vous n'avez pas de TV 4k, cela reste une bonne affaire.
Téléchargez nos
applications mobiles
À découvrir sur Mac4Ever
b 1  b 2 
Mon Mac4Ever
Pour participer, vous devez être identifié.
Si vous ne possédez pas de compte, vous pouvez en créer un gratuitement !
Identifiant :
Mot de passe :
Sondage
iPhone lent : la décision d'Apple (remplacement à 29€) vous satisfait-elle ?
5767 votes
app
  • Nouveautés

  • Gratuites

  • Payantes

A propos | Mentions légales | Infos Cookies | Contacts | Emploi | RSS | Apps