Apple tire le jus des processeurs

Arnaud de la Grandière |
Les processeurs modernes qui équipent l'ordinateur de Monsieur Tout-le-monde sont de véritables monstres de puissance. Ainsi, un Core 2 Duo atteint-il environ 25 milliards d'opérations par seconde, soit 25 gigaflops. Certes, une paille en regard du dernier supercalculateur d'IBM, le Roadrunner (alias Bip-bip), qui vient de franchir la barre du petaflop (un million de milliards d'opérations par seconde, , soit la moitié de la capacité théorique d'un cerveau humain, ça laisse rêveur…), malgré tout le vulgum pécé est 25 fois plus rapide qu'un supercalculateur Cray 2 de 1985. Vu comme ça, on réalise subitement la marche du progrès. Pourtant, dans les grandes lignes, les ordinateurs ne font rien de radicalement différent dans le traitement automatique des données… où est donc passée toute cette grisante puissance?

Il faut dire que dans les débuts de ce qu'on appelait alors la micro-informatique, les développeurs devaient déployer des trésors d'ingéniosité pour que tout fonctionne. Imaginez-vous que les premiers Macs faisaient tenir un système et un logiciel dans 128 Ko de RAM, le tout chargé à partir d'une disquette de 400 Ko, de quoi faire rire la moindre clé USB… Il fallait donc optimiser à tout crin, écrire le code en assembleur pour gagner en vitesse, en compacité, et en efficacité, et racler tous les fonds de tiroir, pour réaliser l'impossible. C'était éreintant, et restreint à une élite. La montée en puissance des processeurs a permis de réaliser les mêmes choses, mais en se compliquant beaucoup moins la vie, ce qui a également mis la programmation à la portée de beaucoup plus de monde. Moralité, les logiciels modernes n'exploitent pas les processeurs modernes dans leurs moindres retranchements.

Qui plus est, la progression des logiciels souffre de beaucoup plus d'inertie que le matériel : ainsi au fil de leurs versions, les logiciels doivent-ils subir le poids de leur propre héritage, pour finir en véritables "bloatwares" (inflatuiciels). Certes, du côté d'Apple, les lourdes remises en question constituées par le passage du processeur 68000 au PowerPC, puis de MacOS 9 à MacOS X, et enfin au processeurs Intel, ont permis d'épurer quelque peu la ligne des applications et de moins reposer sur les acquis que dans le clan Windows, mais le constat demeure néanmoins.

Avec l'arrivée des processeurs gravés à 45 nanomètres (tout juste de quoi faire tenir 450 atomes…), on touche aux limites physiques de la course à l'augmentation pure et simple de la fréquence d'horloge des processeurs. Pour ne pas faire mentir la fameuse loi de Moore, les fabricants se sont repliés sur l'augmentation du nombre de processeurs, et de cœurs dans ces derniers. L'inconvénient, c'est que l'utilisation de cette augmentation transversale de la puissance ne peut plus se faire à l'aveugle, et qu'il faut désormais créer du code capable d'exploiter cette nouvelle donne dans l'architecture informatique : vous aurez beau augmenter le nombre de processeurs, vous n'en sentirez pas le moindre effet si les logiciels continuent à n'en exploiter qu'un seul. Apple l'a pris en compte dans ses plans avec Snow Leopard, qui intégrera des technologies comme OpenCL pour tirer parti des processeurs graphiques en tant qu'unités de calcul pures, et surtout Grand Central. Ce nom de gare n'est pas anodin, puisqu'il s'agit d'une véritable gare de triage pour les opérations "multithread" : au lieu d'une liste de courses que le processeur effectue une à une, on envoie des requêtes simultanées, et on cherche à effectuer le chemin le plus court pour chacune d'entre elle : gare à l'embouteillage!

En passant au processeur Intel, Apple vient se battre sur le même terrain que Windows, et ne peut plus guère compter sur une différence matérielle pour marquer la distance de puissance entre un Mac et un PC. Pour y remédier, il faut donc tirer le meilleur parti possible de la même architecture, ce qui est autrement plus accessible à Apple, qui a plus de maniabilité que l'ogre de Redmond. D'autant que Windows doit continuer à fonctionner sur des architectures matérielles fort hétéroclites. On mesure d'ailleurs le poids de ce handicap avec les soucis auxquels Microsoft doit actuellement faire face pour imposer Vista.

Pour mettre toutes les chances de son côté, Apple travaille également à l'efficacité structurelle de tous les logiciels créés pour le Mac, en investissant dans l'élaboration et le déploiement d'un nouveau compilateur. Comme on l'a évoqué plus haut, il est devenu quasi impossible à l'esprit humain d'écrire en langage machine, d'autant que chaque famille de processeurs dispose du sien propre. Pour y remédier, on a créé des langages intermédiaires, dits de haut-niveau, tel qu'Objective-C par exemple. Cependant il faut en passer par un compilateur pour transformer ce code en fichier binaire exécutable. Le compilateur va donc traduire le code C++ ou autres en assembleur, avec plus ou moins d'efficacité. C'est à ce niveau là qu'Apple s'investit, en aidant à la création d'un nouveau compilateur, répondant au doux nom de LLVM (pour Low-Level Virtual Machine, autrement dit machine virtuelle de bas niveau). Après SproutCore, AppleInsider s'arrête à nouveau sur une des sessions de la WWDC pour faire la lumière sur un autre projet open-source soutenu par la firme de Cupertino, et dévoiler sa stratégie.

Jusqu'ici le compilateur qui avait la bénédiction de la pomme, et qu'on retrouvait dans son outil de programmation Xcode, c'était GCC, vénérable compilateur open-source créé au milieu des années 80. LLVM quant à lui a été initié en 2000 en tant que projet de recherche à l'Université de l'Illinois par Chris Lattner, dont il diffusera la version 1.0 en 2003. Apple a commencé à participer au projet à partir de 2005, puis a embauché Lattner pour financer son travail. L'année dernière, le projet a abouti à la sortie de Clang, un compilateur autonome basé sur LLVM et mené par Apple, qui permet une compilation rapide tout en faisant une utilisation restreinte de la mémoire, en apportant des diagnostics explicites, une architecture modulaire basée sur des bibliothèques, et une intégration soignée à un environnement de développement tel que celui d'Xcode, le tout proposé sous la houlette de la licence open-source BSD. Apple proposera dorénavant LLVM au sein d'Xcode, parallèlement à GCC 4.2, laissant le choix aux programmeurs du compilateur qui conviendra le mieux à leur projet.

Dans le détail, LLVM maintient un semblant de compatibilité avec GCC tout en s'avérant bigrement plus efficace : le code compilé par LLVM ne requiert uniformément que deux tiers du temps nécessité par l'exécution du même code compilé par GCC. Un avantage de taille, donc, puisqu'une recompilation suffit à rendre tout logiciel 33% plus rapide! Pour cela LLVM tire parti des moindres optimisations pour le matériel moderne, à toutes les étapes de la compilation. Ainsi la gestion des architectures multi-processeurs et multi-cœurs, entre autres, en sera-t-elle grandement améliorée. Le compilateur introduit en outre une couche d'abstraction matérielle, qui lui vaut son titre de machine virtuelle, évitant aux développeurs de trop mettre les mains dans le cambouis. Ainsi, la version d'OpenGL implémentée dans Leopard a-t-elle été compilée à l'aide de LLVM-GCC, ce qui permet de faire fonctionner les API quelles que soient les capacités matérielles de la carte vidéo à laquelle les logiciels s'adressent. L'outil pourra également s'avérer précieux pour d'autres projets d'Apple, notamment concernant les processeurs de PA Semi qu'elle a fraîchement acquise, ainsi que pour l'iPhone de manière plus générale, étant donné que l'appareil, de moindre puissance, demande d'autant plus d'optimisation du code. En tant que principal contributeur, Apple s'emploie d'autre part à promouvoir ce compilateur auprès des chercheurs et universitaires, ainsi que de ses partenaires industriels, comme Cray dont on parlait plus haut. Elle continue en outre à participer à l'amélioration de GCC.

Pour peu que Microsoft ne fasse pas preuve de la même clairvoyance, voilà qui devrait constituer un avantage de taille pour Mac OS X, à plate-forme matérielle égale.

Pour en savoir plus sur les technologies de Snow Leopard :

- Snow Leopard : meilleure prise en charge de ZFS
- Apple à l'assaut de Flash
- Safari 4 : premiers tests de vitesse
- Steve Jobs au sujet de Snow Leopard
- Snow Leopard : fin de partie pour les PowerPC ?
avatar françois bayrou | 
Je n'aime pas apple pour leur marketing (mauvaise foi évidente, mutisme, ...) autant j'apprécie les efforts constants pour améliorer la qualité, en permanence. Avec des choix auquels la concurrence n'ose même pas penser : changer l'architecture CPU, changer le noyau, système de fichier, changer de compilateur maintenant...
avatar oomu | 
LLVM définit une machine virtuele pour laquelle les langages de "haut niveau" sont compilés (bytecode), tels que C, objective-C, etc. Attention, ce n'est pas pour faire comme Java ou Vmware. pas confondre. par la suite, ce "bytecode" est transformé à son tour en langage natif à l'ordinateur. Cela permet de bien séparer le travail pour les concepteurs de compilateurs. GCC fait aussi cela, mais LLVM introduit une machine virtuelle plus générique, plus adaptable à d'autres usages. - cela dit, avant d'avoir un véritable compilateur C/objective-C aussi complet que gcc, je doute. l'argument sur "intégration xcode" ne fait aucun sens. et GCC peut compiler vers llvm. LLVM est un long travail. Ses bénéfices seront nombreux. - l'intérêt de clang est simplement qu'apple aura un compilateur haut niveau sans la contrainte de la licence GPL. Ce qui à mon sens est une mauvaise nouvelle. Après, on est encore trop dans l'expérimental pour dire si clang vaut vraiment le coup. - bien évidemment que l'Esprit Humain peut écrire en langage machine et comprendre entièrement un ordinateur ! non mais ! encore de la propagande de la MAtrix ou quoi ? Cependant, les améliorations des compilateurs de langages de haut niveau sont telles qu'une machine est bien plus capable de pondre du code optimisé et efficace qu'une équipe d'ingénieurs travaillant 24/24h. Sauf cas spécifique où on a pas un compilateur adapté Mais généralement c'est une tâche qui n'a guère de sens économique ou technique. Autant se concentrer sur le vrai boulot : décrire les processus qu'on veut faire faire à la machine au lieu de se concentrer sur les détails sans intérêt de l'exact allocation mémoire, registre, instruction processeur et j'en passe L'avantage des langages tels objective-C, java,etc sont de simplifier le développement, réduire les possibilités d'écrire des bugs et permettre ensuite aux machines d'utiliser leurs puissants processeurs pour générer le meilleur code en langage machine qui soit
avatar oomu | 
Bayrou intéressant, j'aime Apple pour son mutisme. Cette société sait protéger son travail et ne parle que pour dire des choses pertinentes. C'est rafraîchissant, vraiment. - Sa volonté de ne jamais se contenter de la technique du jour est aussi une bonne chose, effectivement. L'entreprise avait perdu cela début des années 90. - sinon, c'est surtout qu'apple est toujours en veille technologique : LLVM, khtml (webkit), sproutcore ne sont pas des projets initiés par apple, certains sont même très anciens, mais la société n'a aucune peur d'intégrer et participer si cela participe de leur plan pour améliorer leurs produits. - sproutcore reste encore un projet très jeune, c'est assez étonnant qu'apple l'ait mis en avant à la WWDC. La documentation est très fragmentaire, la principale source d'information reste le forum google qu'il faut fouiner et le projet a encore quelques fonctionnalités à finir avant de se considérer "1.0" mais diable, il est prometteur ce projet.
avatar shenmue | 
Bravo et merci Macgé de faire une couverture aussi fine de Snow Léopard... Sur de nombreux sites, la couverture de ce nouvel OS est juste lénifiante... Pourtant, ce qui se passe est d'ampleur...sans doute pas en France dans l'immédiat, mais aux US, la sortie de Snow Léopard pourrait être un tremblement de terre pour Redmond.. en effet, à l'heure actuelle, Vista, sorti pourtant avec une nette avance sur Léopard n'a que 2 points d'avance en PDM dans les entrprises face à Léopard...ce qui était impensable là bas il y a 5 ans devient une réalité...un nouveau OS de Cupertino tient tête au coeur des entreprises au nouveau Vista. Je me souviens de ceux qui prétendaient qu'une telle chose serait à jamais impossible..hors c'est bien ce qui arrive... Avec Snow Léopard, si celui-ci tient bien toutes ses promesses (et franchement je ne vois pas pourquoi il ne les tiendrait pas), cela pourrait bien être le premier OS d'Apple depuis très longtemps à mieux se vendre dans les entreprises américaines que le nouveau produit phare de Microsoft... Microsoft est prisonnier de sa fable...il essaye réellement de se sortir de son image de société qui n'évolue pas, tente de convaincre en refondant en parti son OS, mais c'est comme si c'était déjà trop tard, même les IT américains ne privilégient l'Ogre que pour son poids en tant que standard monopolistique, PAS et PLUS pour ce que ses produits pourraient apporter au mon de l'entreprise... A force de décevoir sur la sécurité, sur l'évolution fontionnelle de son OS, sur la finition de celui-ci, Microsoft n'est lus vraiment cru au moment où pourtant ses efforts sont réels et sinçères...l'insuccés et la grosse campagne de bashing anti-Vista, en partie méritée mais hors de réalité sur le fond, est l'immustration beaucoup plus inquiétante que ce que certaisn veulent dire, d'un désamour profond de Microsoft qui finalement n'a séduit les consommateurs que tant que ceux -ci n'avaient aucunes fenêtres ouvertes sur autre chose.
avatar françois bayrou | 
Quand je parle de mutisme - j'aurais du parler de sourde oreille - je pensais aux problèmes, défauts de certains produits, dont souffrent les utilisateurs, et qu'apple ne reconnaît que si une class action est lancée. Ceci dit, ça ne m'empêche pas d'acheter et d'utiliser leurs produits ... A propos du futur d'OSX, je crois bien que c'est la première fois dans ma vie pleine d'ordinateurs qu'on me dit, 'ton ordinateur sera plus rapide l'année prochaine'
avatar shenmue | 
Suite...> Et le plus grave étant sans doute maintenant que même les entreprises du premier marché informatique mondial ne donnent plus de blanc seing à Microsoft, préférant même repousser d'une génération d'OS leur MAJ de parcs machines tellement elles sont peu emballées et pire, commençant à donner des gages réels à des concurrents qui il y a peu encore n'avaient guère de légitimité aux yeux des ITs à occuper le terrain professionel... et c'est bien là où ça peut faire le plus vite le plus mal, sur les postes clients, que la désafection est la plus grande, Microsoft sur les serveurs offrant tout un panel de produits lui garantissants une couverture presque totale des besoins en entreprise...mais sur les postes clients, là où les questions de sécurité, de productivité rattachée à l'ergonomie de l'OS, de fiabilité matérielle redonnent de la voix, les solutions alternatives montent d'autant plus vite que les réactions de Microsoft sur ce point semblent être assez loin de ce qui est demandé sur le fond... En effet, quand on voit les annonces autour du Snow Léopard et que l'on compare l'ambition de cet OS à ce que Microsoft essaye de réaliser avec windows 7, on se dit qu'il y a déjà un gouffre, et que ce Léopard là, pourtant labellisé comme une simple amélioration de l'existant, pourrait être LA solution en entreprise permettant souplesse d'utilisation (tous les OS peuvent cohabiter sur un mac), fiabilité et performances (Snow Léopard semble aller dans ce seul sens).... Dans un monde où le moindre investissement logiciel va se mesurer de plus en plus avec des pincettes grand format, Microsoft semble seulement se débattre avec ses anciens démons, là où d'autres plongent déjà dans les architectures du futur... Ce décalage pourrait finir par peser lourd dans la balance..et depuis Vista, on qu'il ne suffit pas de posséder un marché pour en faire ce que l'on veut.Ce que l'on voit avec Vista dans les entreprises US est DEJA un seisme en fait, mais celui qui ne veut pas voir..
avatar Un Vrai Type | 
@françois bayrou : Pourtant, à chaque mise à jour, mes ordis Apple ont été plus rapide depuis X.1... @ shenmue : J'ai l'impression qu'Apple a compris ce qui allait arriver à Microsoft vers 2006 (et donc a ajouté des fonctions tape à l'oeil dans Mac OS X pour alourdir Windows en dommage collatéral...) et que maintenant, elle regarde Linux, plutôt comme concurrent potentiel pour les années à venir. Open source (juste ce qu'il faut) reprise des projets prometteurs et tout miser sur la performance... Ce sont des armes presque inutiles face à Windows non ? Ce que je veux dire, c'est qu'Apple a deviné qu'un bas de gamme à base de Linux se développerait rapidement (eeePC...) et qu'elle a déjà prévu de montrer clairement sa différence. Non ?
avatar Tequilaforce | 
Aaaah de nouveaux outils extremement performant. Ecrire de nouveau Drivers et pilotes pour Snow Leopard sur tout les PC :)
avatar Anonyme (non vérifié) | 
Bon passant mes journées à faire du code // pour une grande société informatique, il faut quand même rétablir quelques vérités. Aucun compilo n'est capable de faire de la bonne automati parallélisation que. Et si on commence à attaquer les langages objets (C++) alors la c'est la cata.` Pour faire du multiproc faut le faire à la main les outils existent depuis plus de 10 ans mais c'est hard à gérer et le débugage c'est l'enfer. Rien que le multi thread (openmp) avec Xcode c'est assez comique. Quand au performance brut du compilo GCC n'est vraiment pas le meilleur. Si on prend ICC (intel) et ben on gagne 25 % de perf en plus d'office ... C'est assez logique que le fabricant de proc fasse le meilleur compilo pour son proc !
avatar gazobu | 
Merci à Arnauld de La Grandière pour cet excellent article, publier des news de cette qualité sont tout à l'honneur de Mac G. [dommage que parfois la qualité des réactions ne suive pas]
avatar Ninety | 
Tres bon article ! Merci !
avatar Vivid (non vérifié) | 
le seul compilateur qui faisait aussi bien qu'un programmeur (de ma connaissance) était le GFA Basic sur Atari (faux Basic), depuis je rigole ;-) c'est encore plus récurant sur des processeurs avec de nombreuses instructions ect.. l'écriture en assembleur n'est qu'un problème économique, si on a plus simple a côté.... le meilleur des deux mondes n'existe pas, faut faire un choix suivant les écarts dans les différentes méthodes.
avatar -=(ben)=- | 
ba ouai tout cela pour dire que la seul différence entre Mac et PC maintenant c'est le système et le design ergonomique du produit! Et on remarque Apple fait beaucoup d'effort sur son OS!
avatar jerome74 | 
Très intéressant comme article! Cependant, si le métier de programmeur a bigrement évolué en 20 ans, je ne crois pas qu'il soit plus facile aujourd'hui... les applications modernes sont aussi beaucoup plus complexes!
avatar ipascm | 
oouais un bon article ca change des annonces iphones... bon sinon, effectivement on peut écrire du code assembleur à la main moi meme j'en ai fais), cependant, un très bon programmeur ca produit au maximum un code assembleur de très bonne qualité d'envion 50-100 lignes par jour, alors, franchement, c'est possible mais il faut un certain nombre de jours/homme...
avatar Sylvain ALLAIN | 
Contrairement aux apparences, Les développeurs et programmeurs ont nettement plus de latitude pour élaborer des applications aujourd'hui. Dans les années 70 et 80, avant même l'arrivée des premiers compilateurs ou système de pré compilation, il fallait mettre les mains dans le "cambouis" et pondre du code pur et dur. Langage machine ou "[i]Assembleur[/i], et autres dérivés ont alors pris position et se sont placés en alternative au langage machine même, justement, notamment dans les gros systèmes (bancaire par exemple) : ”[i][b]Cobol, Pascal, Fortran etc.[/b][/i]" Langage C, C++. Bref, le problème ne vient pas du fait qu'au fur et à mesure que la puissance des machine a considérablement augmentée, les programmeurs ont moins fait preuve d'initiative ou d'ingéniosité, non. Le problème tient du fait que les développeurs n'ont pas été en mesure de s'adapter aux évoluons des machines et des outils qui étaient mis à leur disposition. Ils n'ont pas été capable de suivre. Résultat, la puissance compensant, il se sont mis à développer comme des cochons. Certes, il s'git là d'une caricatures, mais dans les faits c'est ce qui s'est passé. Prenons comme exemple les consoles, système non évolutif. Aux commencement de la PlayStation, les jeux étaient impressionnants mais sans plus au regard du potentiel réel de la console et, pourtant, au fil des années, bien que le système n'évolue pas, les jeux s'amélioraient... C'est la même chose pour les consoles nouvelle génération et tous les produits technologique figés. Il faut faire avec et améliorer. Le fait qu'Apple propose de nouveaux outils n'est ne rien innovant. Cela s'est déjà produit sous d'autres et cela continuera. Enfin, pour rebondir sur le propos de [b]jerome74[/b], et opposé son argument, l'ensemble des outils applicatifs moderne n'est pas plus complexe qu'il y a 20 ans. Il nécessite que l'on pense à plus large échelle et que les développeurs méditent sur l'impact globale de leur développement...
avatar Sylvain ALLAIN | 
... C'est cela qui est plus difficile même pour des ensembles d'individus.
avatar bugman | 
Rien a voir (mais merci) : "Il fallait donc optimiser à tout crin, écrire le code en assembleur pour gagner en vitesse, en compacité, et en efficacité, et racler tous les fonds de tiroir, pour réaliser l'impossible." Merci pour ce petit retour en arrière (qui pour moi fait l'effet d'une ratatouille concoctée par un rat bleuté) où je revois toute ces Amiga boostés à la RAM, ces bouteilles de coca et ces pizzas négligemment jetées au pied du moniteur entre la disquette de K-Seka et celle de DeluxePaint. Ce monde où le matin commence à 14h00 et où le couché se fait à 7h00 les yeux explosés mais avec la joie d'avoir "réussi" après des dizaines de "plantages" et autant de sauvegardes. Avec en désert toutes ces démos techniques où vous restiez la bouche ouverte (bien 5 minutes). P***** ça me manque. Mais surtout, merci pour cet excellent article (qui a l'air de faire l'unanimité).
avatar laurange | 
Snow Leopard promet énormément, j'imagine les gros éditeurs en ce moment : ils doivent attendre l'amélioration des perfs et redouter les changements dans le code qui leurs fera tout recompiler/réécrire. Je remarque que si les langages objets sont complètement adaptés aux interfaces riches, pour implémenter OpenCL, apple a choisi le C. @shenmue : ton analyse est sympa et serait juste si tu n'avais pas oublié juste un point : Steve Jobs ne se lève pas le matin en se disant qu'il veut dominer le monde et avoir 95% de pdm avec MacOS X. Beaucoup des actions d'Apple vont dans le sens de produits agréables et d'une expérience utilisateur réussie, les pdm progressent, les marges sont confortables et acceptées par le client qui est valorisé dans son choix. Apple ne se donne pas les moyens d'aller affronter les grands fournisseurs de pc des grosses sociétés, il n'y a pas de structure commerciale ni de sav assez solide (au moins en france), les relations avec des revendeurs/intégrateurs sont trop difficiles pour que la pomme soit au centre des grands appels d'offre.
avatar micware | 
Félicitations pour cet excellent article très informatif et vulgarisateur de notre prochain Snow Leopard. Avec cette nouvelle étape, Apple s'approche encore et intelligemment du système que j'attends depuis 8 ans. Un vrai système multitâche et optimisé pour les processeurs actuelles et futures. Tirant au mieux partie des ressources et apportant une réelle sensation de légèreté. J'applaudis l'ambition et la clairvoyance de cette société qui remue le monde de l'informatique depuis sa création et plus encore ces 5 dernières années. Je souhaite vraiment que le Mac devienne une plate-forme incontournable en entreprise.
avatar Hak | 
"année dernière, le projet a abouti à la sortie de Clang, un compilateur autonome basé sur LLVM et mené par Apple" Attention cette affirmation est fausse. Clang n'est pas un compilateur autonome, cela n'est pas correcte de dire cela. Clang désigne en fait un front-end, partie du compilateur chargée de realiser la parsing et l'analyse lexicale du code cource. Le front-end construit une abstraction du code source, appelée IR (intermediate representation) qui est ensuite passée à l'optimizer, puis après optimization une IR nouvellement créée est transmise au back-end pour la génération de l'object code (tous le compilateurs ont un front-end, un optimizer et un back-end). A l'origine, LLVM est la partie qui s'occupe de prendre en charge l'optimizer et le back-end, et tout le développement de LLVM s'est fait dans ces parties afin de proposer des alternatives bien plus puissantes à l'optimizers et le back-end de GCC. Par contre il n'y a pas eu de développement d'un nouvel front-end pour supplenter le back-end de GCC devenu lourd, complexe, pas hyper performant et peu implémentable librement dans des projets non open source comme xCode. Jusqu'à présent, LLVM a utilisé le front-end de GCC pour assuré la parsing, d'où l'appellation LLVM-GCC qui désigne en fait un compilateur LLVM mais utilisant le front-end de GCC. Clang est un projet commencé par Apple afin de produire un front-end moderne pour LLVM, qui soit rapide, plus simple et qui permette de meilleures analyses afin de produire des messages plus précis en cas d'erreurs dans le code et de proposer de nouvelles techniques comme des analyses statiques afin de trouver des bugs dans le code. Donc Clang n'est pas un compilateur autonome, c'est une partie du compilateur (le front-end) fin de fournir un front-end à LLVM pour remplacer celui de GCC. Clang est développé pour supporter les langages de la famille du C, cad le C, le C++ et l'objective C.
avatar Almux | 
Faut espérer qu'Apple a mis une patente sur le LLVM, sur tout ce qui pouvait en avoir!... Parce que la photocopieuse de Redmond est toujours là!
avatar DrFatalis | 
"Sa volonté de ne jamais se contenter de la technique du jour est aussi une bonne chose" C'est vrai, se contenter de la technique d'avant hier (combo...) est bien plus intéressant... ;-) Je provoque mais, suite à cet excellent article, attention à la MS attitude (que les vieux macusers pourraient appeler la Coplan attitude, sans référence au confrère d'OSS117): ne pas s'enflammer pour un soft ou un projet simplement annonçé, attendre au moins de voir "en vrai" de quoi il retourne...
avatar Hak | 
"Faut espérer qu'Apple a mis une patente sur le LLVM, sur tout ce qui pouvait en avoir!... Parce que la photocopieuse de Redmond est toujours là!" LLVM est un projet open source. Apple redistribue librement ses contributions dans le code source. " puisqu'une recompilation suffit à rendre tout logiciel 33% plus rapide" Il faut préciser ici car l'auteur de l'article d'AppleInsider a fait une confusion. LLVM compile du code qui est 30-40% plus rapide que GCC lorsque l'optimizer est activée (flag -02). Le code généré en standard est 5-10% plus rapide que GCC.
avatar Almux | 
@Hak ...Donc: Redmond pourrait joyeusement piocher dans tout ça et aller, ensuite, proclamer que windaube 7-8-9 est à la pointe de l'innovation?!
avatar Sylvain ALLAIN | 
@ Almux ... c'est rien de l'écrire. L'Open Source a du bon mais aussi du mauvais... On peut piocher. Et y a pas que Redmond qui ne se gêne pas pour le faire... hélas.
avatar françois bayrou | 
Almux : c'est un peu ce que fait Apple :)
avatar vampire1976 | 
Avis d'un user sur un autre forum : "Très intéressant comme article même si je ne suis pas vraiment d'accord sur le fond. (Ca vient d'un site mac?). A l'heure actuel, on a des pc extrèmement puissant capable de faire presque tout de manière très fluide (sauf les jeux et un certain nombre d'outils minoritaires). En conséquence l'optimisation n'est plus l'élement principal du développement d'application car les ressources disponible sont très largement suffisante. On ne se trouve plus avec des pc avec 512ko de mémoire vive sur lesquels il fallait optimiser l'allocation de chaque octet de mémoire. A l'heure actuel, et plus particulièrement en entreprise on tend a essayer de diminuer les coûts de développement et de maintenance en utilisant notament des langages de plus haut niveau que le c/c++ (Java, .NET, Python...). On recherche aussi a réutiliser le plus possible le code déja produit ce qui est beaucoup plus difficile lorsque l'on recherche l'optimisation à tout prix. La recherche de performance se fait alors sur les plateformes et sur les outils. Typiquement Microsoft travaille sur Parallel FX pour aider a réaliser des applications multicores en .NET. Dans ce contexte la présence d'un nouveau compilateur plus performant que GCC n'est pas un point qui va aider Mac Os a s'imposer. D'ailleurs, même si l'on gagne des performances face a GCC, rien ne dit qu'il soit plus performant que ICC (le compilateur d'intel). L'idée de la machine virtuelle est certes fortement sympatique et très élegante mais elle va avoir énormement de mal à s'imposer si elle n'est présente que sur Mac Os (qui représente 3-4% des parts de marché) face a Java qui fonctionne sur 99,99% des plateformes et .NET qui fonctionne sur 90-99,99% des plateformes (si l'on prend en compte Mono)."
avatar françois bayrou | 
Il ne sera forcément pas d'accord sur le fond si il ramène ca à une guéguerre microsoft apple. "Dans ce contexte la présence d'un nouveau compilateur plus performant que GCC n'est pas un point qui va aider Mac Os a s'imposer" LLVM n'a sûrement pas la prétention d'aider macosx à s'imposer. Juste celle d'améliorer l'existant, ce qui est déjà pas mal, et la concurrence devrait s'en inspirer. "des pc extrèmement puissant capable de faire presque tout de manière très fluide" > mwais. il n'a pas spécifié l'os le gredin ! :)
avatar mon_grain_de_sel | 
Moi aussi j'aime bien lire les articles sur Roughly Drafted [url=http://www.roughlydrafted.com/2008/06/20/apples-other-open-secret-the-llvm-complier/] Ça semble prometteur ce 10.6 avec sa révision de l'interaction entre le OS, le matériel et les outils. Juste pour le plaisir (je ne fais pas la leçon à personne ici, ok?) : Au Québec, bien que " inflagiciel " est l'équivalent officiel de notre OLF pour "bloatwares" (inflatuiciels) tel que mentionné dans l'article, il est aussi d'usage courant d'utiliser " obésiciel " Quand on parle d'ogre... ;-)
avatar mon_grain_de_sel | 
Oups, j'ai oublié de fermer la balise... de l'url. Désolé!
avatar BeePotato | 
@ oomu : "l'argument sur "intégration xcode" ne fait aucun sens." Si. Ce point concerne Clang, dont l'un des objectifs est de permettre une meilleure intégration du front-end à l'IDE, avec une communication plus poussée entre les deux que ne le permet le front-end de GCC à l'heure actuelle (comme nous l'a déjà rappelé Hak dans son commentaire). Bref, faut se renseigner un peu avant de critiquer comme ça. ;) "Sa volonté de ne jamais se contenter de la technique du jour est aussi une bonne chose, effectivement. L'entreprise avait perdu cela début des années 90." Euh... tu dois vouloir parler d'une autre période, là (mais laquelle ?). Parce qu'au début des années 90, la sortie du Système 7, de QuickTime, du PowerPC, etc., ça ne donnait pas franchement l'impression de vouloir "se contenter de la technique du jour", bien au contraire !
avatar shenmue | 
@Un Vrai type: Désolé de ne pas t'avoir répondu plus vite...mais bon, les affaires familiales... Sinon, + 1 globalement avec tout ce que tu as dit...sauf sur la partie concernant les évolutions graphiques de OSX qui n'auraient été là que pour plomber la réaction en retour de Microsoft qui se serait alors senti "obligé" de rajouter une surcouche d'effets à son OS quitte à l'alourdir beaucoup trop... ça ne me paraît pas très crédible, d'une part parce que je ne considère pas les évolutions d'interface de OSX comme du gadget (à contrario d'ailleurs de pas mal d'évolutions d'interface de Linux ces derniers temps qui sont là vraiment pour en mettre plein la vue mais ne sont pas vraiment ergonomiques), d'autre part parce que tout cela semble ultra tiré par les cheveux... Mais sinon, je pense qu'Apple savait AUSSI qu'en appuyant fort sur cet aspect, Crosoft ne pourrait ne pas ne rien faire et se retrouverait d'autant plus plombé par son obligation de rendre son OS compatible avec une aussi grande diversité de machines...et c'est bien ce qui s'est passé avec Vista... sinon, concernant Linux, l'affaire est surtout très grave pour Microsoft, les EEE et consorts, vu que ces machines attaquent un segment du marché où n'est PAS Apple mais où se trouvent sans doute les 2/3 de l'informatique personelle aujourd'hui (soit des machines entre 300 et 600 euros)...Si Microsoft se vend autant sur les postes Pcs, tout le monde sait bien que cela n'est pas dû à la qualité de son OS mais à la vente liée...alors si les constructeurs découvrent ENFIN, qu'ils n'ont pas pour obligation de livrer cet OS avec leurs machines, c'est tout de même le début de quelque chose d'inquiétant pour Microsoft qui tient une énorme partie de ses ressources sur cette vente liée ainsi que sur les ventes de la suite Office. Et l'on ne peut pas vraiment dire que Microsoft a réussi sa diversification...
avatar shenmue | 
...suite: A contrario, Apple semble aujourd'hui avoir de très nombreux et gros atouts dans sa manche : - Ses ventes de machines et donc de son OS sont en pleine phase de croissance (actuellement +50% d'une année sur l'autre) - Apple occupe 66% du segment des machines au delà de 1000 dollars aux US et doit sans doute posséder en Europe un fort pourcentage de ce même créneau...Or, ce marché n'est pas attaqué soit par les autres fabriquants de PCs, écoeurés par la prédominance d'Apple sur ce segment, soit pas Les machines sous Linux qui tapent sur des prix bas.... - Apple a réussi sa diversification: il occupe dés à présent 4 grands pôles d'activité qui tous marchent très fort: 1 - les Ordinateurs et OSX, avec 4% du marché mondial et la moitié de son CA là dessus 2 - les Ipods, Apple étant le premier vendeur de balladeur numérique au monde 3- la vente en ligne, Apple étant le premier vendeur de musique ET de vidéo en ligne... 4- la vente de logiciels, Apple étant dans certains secteurs comme le montage numérique le N°1 mondial Et cela continue aujourd'hui avec l'Iphone qui devrait sans nul doute être un succès de grande ampleur et sans doute encore demain avec l'ATV lorsque le produit sera plus mûr... - Apple est le seul constructeur a réellement proposer un écosystème aussi viable de tous ses produits... Bref...Linux va faire mal à Microsoft, c'est sûr...à Apple, j'y crois beaucoup beaucoup moins et une évolution par le haut de OSX ne fera que renforcer cette idée d'un Apple haut de gamme...
avatar shenmue | 
@Laurange: Je ne suis pas sûr que SJ ne se lève pas tous les matins en ayant pas une petite pensée pour Microsoft vois-tu...Apple est l'une des rares sociétés au monde qui attaque aussi frontalement les solutions de Microsoft dans ses publicités, dans sa communication, qui propose des logiciels qui constituent ou veulent se poser comme une alternative aux produits hégémoniques de Crosoft (Safari, OSX lui-même, Iwork) et SJ lui même a avouer vouloir qu'Apple atteigne les 10% de PDM...alors bon, on est loin des 95% mais dis toi que 10% du marché mondial pour un autre système que celui de Microsoft, lié au fait que Linux est sur une voie interressante avec les EEE, et cela suffirait à mettre Microsoft en repli finançier fort.. La course effrennée que se livre Microsoft pour essayer de se diversifier (sans d'ailleurs y parvenir) est un signe qui ne trompe pas...
avatar radioman | 
Il n'y a que moi que ça choque?: "250 millions d'opérations par seconde, soit 25 gigaflops" j'aurais plutôt dit: 250 millions d'opérations par seconde, soit 250 Mégaflops ou encore: 25 milliards d'opérations par seconde, soit 25 gigaflops
avatar Gabone | 
Mon PowerMac G4 dual 1,42 Ghz, une vraie horloge suisse et il n'a pas dit son dernier mot !!!!!!!!! HOURA
avatar tradkwah | 
@ radioman [url=http://fr.wikipedia.org/wiki/Flops]FLOPS[/url] la faute est sur le premier, ça semble être 250 Mégaflops. En revanchec, pour le Roadrunner, c'est bien le pétaflops. Enfin bon ce n'est qu'un détail pour introduire l'article, de grande qualité d'ailleurs, pas de quoi se couper les cheveux en 250 Méga!
avatar Arnaud de la Grandière | 
désolé pour la bévue, c'est corrigé. C'était bien 25 gigaflops, et donc 25 milliards d'opérations par seconde.
avatar Eurylaime | 
"Apple occupe 66% du segment des machines au delà de 1000 dollars aux US et doit sans doute posséder en Europe un fort pourcentage de ce même créneau... Or, ce marché n'est pas attaqué soit par les autres fabriquants de PCs, écoeurés par la prédominance d'Apple sur ce segment," C'est à la portée de tout constructeur de faire une machine chère, après la vendre c'est pas gagné, sachant que les consommateurs dans leur grande majorité veulent ou simplement ne peuvent mettre 500 $ dans leur machine.
avatar Stanley Lubrik | 
@shenmue qui dit : "...la vente de logiciels, Apple étant dans certains secteurs comme le montage numérique le N°1 mondial.." --- Mike Olson, vice president analyste en chef chez Piper Jaffray, a mené une récente enquête aux USA : "A recent survey conducted by Piper's Olson of 112 post-production video specialists found 45% using Avid machines and 41% using Apple, with the latter having jumped from 32% just a year ago". Au mieux cela fait Apple 2ème sur le créneau Broadcast / Cinéma.... Et uniquement ce créneau là... Avid a d'ailleurs considérablement réduit ses prix en software.... Ce qui devrait freiner l'hémorragie.. Sur le segment semi-pro, je pense qu'Adobe vend toujours plus de Premiere Pro et sa suite logicielle qu'Apple de Final Cut Pro (et sa suite...)... Passes leur un petit coup d'iBiniou.... Et pour le reste : Avid Pinnacle Studio est - et de loin ! - le plus vendu au monde des logiciels de montage amateurs. Logiciels vendus et non pré-installés... Sinon, Windows avec son Movie Maker décroche la timbale... Redde Caesari quae sunt Caesaris, et quae sunt dei deo....
avatar Stanley Lubrik | 
Au mieux cela fait Apple 2ème sur le créneau Broadcast / Cinéma.... En extrapolant un peu, c'est à peu près la même chose en France, etsur d'autres marchés similaires....
avatar beus | 
Merci Apple, je vais bientôt pouvoir utiliser mon imac payé une fortune avec fluidité !
avatar beus | 
Ah oui ! Et surtout recompilez en premier photoshop et numbers, qui sont catastrophiques, sans oublier le noyau de leopard Merci d'avance !
avatar shenmue | 
@stanley lubrick: Et que fais tu des ventes de FC hors grands studios et Broadcast ? Si l'on compte les ventes de logiciels pro, la solution FC est bien la plus répandue aujourd'hui, loin devant les solutions d'Avid...
avatar shenmue | 
Et sinon, 2eme sur le crénau Broadcast aux US, c'est vraiment énorme quand on lit ici ou ailleurs (on va dire surtout ici qu'ailleurs) que les solutions d'Apple ne sont pas les plus adaptées pour le pro "lourd"... L'esprit de mon info n'était pas sur du chipotage de n°1 ou N° 2 de toute façon...c'était avant tout pour dire qu'Apple est redevenu un des poids lourds du secteur de la création pro côté logiciel..ce qui est aujourd'hui indéniable...
avatar powerjaja | 
Il est vraiment excellent cet article ! Je ne sais pas comment vous faites pour avoir autant de connaissances techniques tout en ayant suffisamment de pédagogie pour nous les faire passer avec des mots simple... En tout cas merci de nous les faire partager !

CONNEXION UTILISATEUR