Snow Leopard : les API finalisées

Christophe Laporte |
Une nouvelle de taille a accompagné la dernière build de Snow Leopard (lire : A propos de la dernière bêta de Snow Leopard) sortie ce week-end. Apple a fait savoir aux développeurs que les API de Snow Leopard ne devraient plus évoluer.

Concrètement, cette annonce d'Apple signifie que les développeurs peuvent se lancer dans de gros chantiers sans avoir en théorie de mauvaise surprise suite à des modifications au niveau de l'API.

La société californienne a également fait savoir qu'avec la dernière build de Snow Leopard, elle a apporté pas mal de changements à Grand Central pour faciliter la vie des développeurs. Cette technologie permet de mieux exploiter le potentiel des Mac équipés de processeurs à plusieurs coeurs.

Un dernier mot sur la build 10A354, celle-ci offre la prise en charge d'un nouveau codec appelé MPEG-4 High Efficiency AAC (qui a comme accronyme HE-AAC ou enocre AAC+). Ce dernier est particulièrement efficace pour le streaming audio et les podcasts.

Sur le même sujet :
- Lexique : si vous avez raté le début…
- 10.6 : des drivers HFS+ inclus dans Boot Camp
- Mac OS X : deux nouvelles bêta et du chinois
avatar okok123 | 

Ça se rapproche de plus en plus...

avatar LeSuisse | 

Encore heureux que cela ne s'éloigne pas ;-)

avatar LaurentR | 

Question de débutant :) Est-ce que Snow Leopard verra des changements sur OpenGL. Mac OS X a la réputation d'être à la traîne en ce qui concerne les jeux 3D à cause de ça. En tous cas pour le client Secondlife, le client Mac est réputé comme étant en retrait par rapport au client Windows, par exemple.

avatar tijej | 

Heu, les release notes disent simplement que les API de Grand Central n'évolueront plus. Ils n'ont rien dit sur le reste des APIs du système....

Bref, ça sortira quand ça sortira, et pas un poil avant, ni même un quart de poil après

avatar parafsuo54000 | 

Y a plus qu'a nous proposer des imacs quadcore hein. Allé, on tiens le bon bout...

avatar oomu | 

"Question de débutant :) Est-ce que Snow Leopard verra des changements sur OpenGL. Mac OS X a la réputation d'être à la traîne en ce qui concerne les jeux 3D à cause de ça."

os x est pas plus à la traine sur opengl qu'autre chose. C'est simplement que rien ne peut lutter contre le rouleau compresseur de microsoft avec direct X.

Direct X a été poussé à nvidia et ati. Microsoft a fait un gigantesque travail dessus, pendant que le consortium open gl comptait les billes.

Bilan : les cartes vidéos sont maintenant beaucoup plus efficaces avec ce qu'attend direct X qu'opengl.
Les outils de développement direct X sont bien plus efficaces que ceux fournis pour open gl

Alors, le consortium opengl s'est remis au boulot à fond (opengl 2 avec tout plein de technos modernes, open gl pour le web, etc) et Apple améliore ses produits et essaie d'innover au dessus d'open gl (opencl par exemple). Mais il faudra du temps.

-
il ne peut pas y avoir de magie. Même si apple inventait la fission froide et que leur couche opengl était magiquement 500% plus rapide que la couche direct X de windows, encore une fois, elle s'écrasera contre le support matériel que fournit Nvidia et AMD/ATI. et aussi sur la bonne connaissance qu'en auront les développeurs de jeux.

Il y a longtemps, oui, opengl était connu, j'ai étudié dessus, y avait que ça. Ca s'est endormi, Microsoft a vu la brèche et le futur (les gpu) , ils ont quitté le consortium, ont mis tout leurs sous sur direct X et zou : l'histoire s'est faite.

Maintenant, vu le travail et l'importance que prend opengl aussi bien pour sony; nintendo ou apple et la visibilité auprès des développeurs et les nouveaux travaux, je pense que d'ici quelques _années_ , ils auront quelque chose de très sérieux face à direct X et que les concepteurs se frotteront à cela.

bref: oui un éventuel portage de Bioshock 2 sur os x sera baclé.

avatar krauzer | 

@iPantoufle

exellent jeu de mot =)

avatar oomu | 

Je développe à l'avance, au cas où, si des gens veulent aller au delà du simple "et si apple activait le turbo dans opengl ?" :

Oui, blizzard est capable de faire un starcraft 2 de qualité sur os X parce que blizzard a JAMAIS abandonné ses compétences opengl et a travaillé en amont pour minimiser l'impact entre direct x et opengl.

On voit cependant que c'est un grand effort et qu'ils auraient pu se simplifier la vie y a des années en étant très heureux avec juste les outils directX et visualdev.

Mais sur le long terme cela paye : Blizzard est l'un des rares qui pourrait basculer à un monde tout opengl sans faire du programme pourri.

-
conclusion : snow leopard apportera du progrès, mais apple est loin d'être le seul impliqué dans ce qu'il faut pour concrètement améliorer la situation du jeux sur mac. (sommairement : avoir le même fps à quake 29 que sur windows). On est cependant sur la bonne voie, enfin.

j'arrête tout de suite : non direct X n'est pas à vendre ni portable sur mac. ni cela est réaliste et une bonne idée. Microsoft en reste le seul maître dans l'intérêt de windows. Tout comme Apple avec Cocoa.

C'est avant tout aux éditeurs de jeux que vous devez vous plaindre.

avatar DrFatalis | 

Malgré toutes les technos Apple, je ne vois pas comment, sans une totale ré-écriture et même une refonte intégrale de leur façon de fonctionner, les applications pourront tirer partie des processeurs multiples. Faire travailler les applis sur un mode massivement parallèle devrait même les rendre totalement incompatibles avec les architectures mono-processeur. Je me demande même si la logique nécessaire à "penser parallèle" est immédiatement accessible aux développeurs... Je crains un SL toujours plus lourd, qui n'apporte des gains qu'à la marge, sur des config "inutilement" puissantes. J'espère me tromper.

avatar Nitiel | 

DrFatalis tu sait réfléchir ? Déjà que tu bête !

Citent moi un mac Intel non dual core ? à pars les premier mac mini

avatar Nitiel | 

supprimer

avatar oomu | 

non drfatalis, vous vous trompez

y a aucun risque d'incompatibilité.

que le logiciel soit "multi process" ou "multi thread" (plusieurs fils d'exécutions) n'a jamais empêché un logiciel de fonctionner sur un antique processur 386 ou pentium ou autre motorola 68060.

Et des machines multi cpu, y a en a depuis des décennies, et os X les gère depuis 10 ans

mais maintenant, avec la multiplication des "coeurs" et autres "bi proc", ne pas faire un logiciel "parrallélisé" (qui se répartit sur plusieurs processeurs) est un gâchis monumental.

Ce que vise apple, c'est de fournir des outils améliorés pour que les développeurs arrivent à mieux utiliser le potentiel de la machine.

Mais qu'on ne s"y trompe pas, os X (ou linux ou même windows) savent déjà répartir quand ils peuvent les logiciels et leurs sous-traitements sur les coeurs et processeurs. C'est déjà le cas maintenant.

Vous lancez Omnigraffle et un traitement vidéo avec handbrake, et bien os X va mettre omnigraffle sur un coeur et mettre les divers sous-traitements de handbrake sur 2 ou + autres coeurs, si possible.

c'est déjà le futur.

Ce qu'apporte snow leopard : c'est une meilleure technologie pour maitriser tout cela et surtout : des outils pour les développeurs.

-
le multi tache d'un "mono processeur" c'est déjà exécuter plusieurs tâches à la fois (en réalité l'une après l'autre en alternance très rapidement, des millions de fois par secondes)

-
y a aucune raison que SL soit "plus lourd", il sera même physiquement plus léger vu qu'il est débarrassé du code powerpc (plus léger sur le disque dur)

et profite d'un an de refonte (ou +, on sait pas depuis combien de temps apple planifiait ses modifications) de sous systèmes. Certains composants ont eu une cure d'amaigrissement en utilisant par exemple de meilleurs formats pour les images/ressources graphiques, en utilisant de meilleurs techniques.

de plus, tous les mac intels sont "multi proc" (ou coeur, c'est pareil ou prou).

avatar oomu | 

attention !

SL apporte de nouvelles "api" aux développeurs. ces nouvelles API ne seront pas portés à leopard. si un dévveloppeur souhaite faire un logiciel utilsiant ces api, il sera fonctionnel QUE sur SL

mais ce n'est pas lié au "développement du multi-thread qui se ferait à l'encontre des machines monoproc"

avatar Axelvak | 

[quote]SL apporte de nouvelles "api" aux développeurs. ces nouvelles API ne seront pas portés à leopard. si un dévveloppeur souhaite faire un logiciel utilsiant ces api, il sera fonctionnel QUE sur SL[/quote]

Comme pour les API de Leopard qui rendent les softs les utilisants incompatibles avec Tiger…

avatar iota | 

Salut.

API finalisé veut dire que les spécifications sont figées et n'évoluerons plus.

Mais ça ne veut pas dire qu'Apple ne va plus touché à ses API avant la version finale de Leopard.
C'est juste qu'elles sont figées et n'offriront (ou ne perdront pas) de fonctionnalités.

@+
iota

avatar Hindifarai | 

Finaliser définitivement une API en amont pour que les devs puissent s'y mettre à fond? Sans attendre de retour des devs internes et externes? Je n'ai jamais compris cette démarche qui me parait ridicule, surtout venant d'une entreprise pronant la méthode agile et son sempiternel retour utilisateur...enfin Cupertino n'en serait pas à son premier comble.
Pour ce qui est des API openCL il serait aisé de rendre compatible une appli les utilisant avec une machine ne supportant pas la techno...et pourtant je suis pret à parier gros que ça ne sera pas le cas...ça ne serait pas bon pour les affaires madame michu le nouveau macbook est bien mieux! L'ancien marche très bien? Puisque je vous dit que celui-ci est mieux...

avatar the_nuru | 

Vous parlez de jeux peu optimisé, personnellement je trouve que les wow, et autres choses déchires bien sur mac et sont largement plus fluide et avec beaucoups plus d effet que sur pc

avatar Hindifarai | 

sunjohn
[quote]Concrètement, cette annonce d'Apple signifie que les développeurs peuvent se lancer dans de gros chantiers sans avoir en théorie de mauvaise surprise suite à des modifications au niveau de l'API.[/quote]
J'avais lu [quote]Concrètement, cette annonce d'Apple signifie que les développeurs [b]d'Apple[/b] peuvent se lancer(...)[/quote]
Mea culpa.

Ma remarque concernant le fait que les specs sont finalisées en avance reflète toujours mon avis, je trouve que c'est un des principaux problèmes des OS actuels. La volonté d'avoir un parc d'applications le plus vaste le plus rapidement possible après la sortie ou à la sortie de l'os force les ingé et architectes d'applications à figer des specs par définition imparfaites très tôt.
Il m'arrive tellement souvent de retravailler des specs en codant l'implémentation ou en phase de tests que ça me parait inconcevable.
Il est évident que les grandes lignes sont tirées très rapidement ne serais-ce que pour faciliter le developpement en équipes mais qui n'a jamais rajouté un paramètre à une methode d'API au moment de livrer les specs finales? qui n'a jamais fusionner deux methodes qu'il pensait bien distinctes? La finalisation d'une spec pour livraison ne se fait à mon sens que tard dans le développement, même si ça énerve plus d'un client. Ces même clients ne semblent pas intégrer le fait que les développeurs sont des humains, les machines sont les outils, les humains peuvent se planter et corriger par la suite...Une spec livrée avant la phase de dev n'est jamais parfaite et définitive, quand un client refuse que vous modifiez telle methode il se retrouve avec les progiciels actuels vendus par les SSII, des trucs immondes :).

avatar iota | 

Salut.

[i]HS : On[/i]

@Hindifarai : les clients des SSII valident de moins en moins les spécifications. Ils se recentrent sur leur coeur d'activité et laissent de plus en plus de latitude à leurs prestataires.
On s'oriente vers des solutions clés en mains basées sur une expression de besoins rédigée par le client.

[i]HS : Off[/i]

@+
iota

CONNEXION UTILISATEUR