Articles

Mac

Snow Leopard excite les programmeurs

Par Arnaud Morel - Publié le

C'est la déferlante Snow Leopard. Mais qu'apporte donc cette nouvelle mouture de l'OS d'Apple pour les programmeurs et quel jugement portent-ils sur ce système rafraîchi ? Réponse avec Guillaume, de MacMation et Raphael Sebbe de Creaceed.

Attention, c'est du touffu !

Snow Leopard excite les programmeurs


Guillaume, MacMation



L'album de la maturité

Snow Leopard excite les programmeurs
Je l'utilise depuis fin juin sur ma machine principale et je n'ai absolument aucun regret. Il y a quelques nouveautés majeures avec ce nouvel OS mais, ce qui est génial ce sont tous les petits détails améliorés.

Le sentiment général est excellent. Si Apple était musicien, on dirait que c'est l'album de la maturité. Alors je dis Bravo Apple. Et j'apprécie le fait qu'ils aient eu le courage d'annoncer Snow Leopard comme une update où tout est amélioré, mais sans nouveauté majeure (même si on s'aperçoit que ce n'est pas tout à fait vrai). C'est tellement rare dans le monde du logiciel que ça mérite d'être signalé.

Et pourtant ces petits détails améliorés, c'est ce qui fait la valeur de Mac OS X au quotidien : faciliter la vie et rendre les logiciels plus simples à utiliser.


Un meilleur Xcode

Snow Leopard excite les programmeurs
Tout d'abord Xcode. Là, il faut dire un grand merci à toute l'équipe des devs tool à Apple. La documentation est enfin utilisable, tout est plus clair... et l'intégration de CLANG, un compilateur front-end pour LLVM est enthousiasmante. Rien que pour ça, j'aurai payé 129 euros.

Au niveau des API, je trouve que CoreLocation est une nouveauté intéressante : ça va permettre de faire des applications sympa. Par exemple, la mise à l'heure automatique dans le bon fuseau horaire quand on voyage avec son Mac. Il utilise Core Location et s'appuie sur les hot spots wifi reconnus pour déterminer le fuseau horaire adéquat. C'est sans doute une chose dont je me servirai jamais (je voyage rarement avec mon Mac, car mon employeur me fournit un PC comme outil de travail) mais je trouve l'idée intéressante. (NDR : c'est une blague de programmeur, Guillaume est son propre employeur et travaille exclusivement sur Mac)

Autre bonne idée, les blocs en Objective-C. Sur certains points, cela va rendre le code beaucoup plus clair et simple à écrire.


Les raffinements d'interface

J'aime bien le nouveau look and feel quand on clique droit sur une icône dans le Dock. Les Options désormais rangées dans un sous-menu pour plus de clarté, et liste des fenêtres de l'application.

Snow Leopard excite les programmeurs


Le comportement d'Exposé a été revu et corrigé. Exposé est l'application qui est la plus utile à mon flux de travail. Je m'en sers tout le temps. Il s'affiche dans une grille, on peut utiliser la barre espace pour "quicklooker" une fenêtre, Command-1 pour ranger les fenêtres par ordre alphabétique, Command-2 pour les ranger par application. C'est très pratique vraiment.

Snow Leopard excite les programmeurs


Les services ne sont plus des citoyens de seconde zone, mais deviennent réellement intégrés (et configurables). En espérant que cela incite plus de développeurs à en proposer plus...

Snow Leopard excite les programmeurs


Sinon, j'aime bien ImageCapture, qui permet, enfin, de scanner de manière simple, sans logiciels externes ainsi que la nouvelle interface de QuickTime, sans cadre autour des vidéos.

Je suis moins fan du Minimize in Dock dans les applications. Certains adorent, personnellement, je n'apprécie pas de ne pas savoir si une fenêtre est minimisée sans regarder le dock

Snow Leopard excite les programmeurs



Les bugs les plus gênants

Le correcteur d'orthographe détecte automatiquement le langage : c'est une idée géniale quand on arrête pas d'alterner entre deux langages (par exemple français et anglais). Malheureusement, ça ne marche pas chez moi : ça ne corrige plus rien.

Sinon, niveau incompatibilités éventuelles, rien à signaler pour moi excepté MenuMeters, mais c'est à cause de son usage d'une API privée (d'après Alex Harper, son développeur, une mise à jour est prévue bientôt)


Raphael Sebbe, Creaceed



Globalement, mon sentiment est très positif. Snow Leopard est plus stable, plus rapide etc.


Le gain de vitesse

À l'usage, j'ai l'impression de bien sentir la meilleure répartition de l'utilisation CPU. Cela est vraisemblablement dû à Grand Central Dispatch.

Je peux donner un exemple: dans Prizmo, lorsqu'on lance une calibration avec une quinzaine d'images, sur Leopard, les 15 calculs sont lancés en parallèle alors qu'il n'y a que 2 coeurs (MacBookPro). Sur Snow Leopard par contre, la répartition est intelligente et le nombre de calculs simultanés est proportionnel aux nombres de coeurs disponibles. Cela se traduit par une plus grande vitesse et une meilleure utilisation mémoire. Dans ce cas particulier de Prizmo, c'est l'API NSOperation qui est utilisée, et celle-ci a été réimplémentée par Apple au-dessus de GCD, ce qui explique l'amélioration de comportement (et ce même pour des applications qui n'utilisent pas GCD directement). Ce type d'amélioration se ressent à beaucoup d'endroits dans Snow Leopard.

Snow Leopard excite les programmeurs


Autre exemple, j'ai quelques login items, et sous Leopard, lors d'un reboot, il fallait encore attendre assez longtemps après que le Finder soit apparu, comme si le chargement simultané de login items prenaient tout le CPU disponible. Maintenant sous Snow, c'est fluide et rapide, sans blocage.

Autre gain de performance majeur : Core Image. Nous sommes en train de préparer la version 64-bit / Snow d'Hydra, disponible très prochainement (peut-être cette semaine). Nous avons été subjugué par des gains de performance de l'ordre de 2.5x plus rapide (sur le même hardware) pour des rendu HDR sur GPU. Un Mac mini arrive à calculer une HDR de 20 Mégapixels en à peine 25 secondes, c'est bluffant...

Snow Leopard excite les programmeurs



Xcode encore et toujours

Xcode est plus abouti. Déjà, l'intégration de CLANG (le nouveau compilateur). Ensuite, l'analyse syntaxique qui permet de trouver plus facilement les bugs : l'analyseur envisage tous les cas possibles de passage dans les fonctions et prévient de potentielles erreurs comme les fuites mémoire ou autres. Les bulles d'erreurs et warnings sont plus discrètes (c'est bien). Xcode change la police par défaut aussi (Menlo au lieu de Monaco), qui est antialiasée. Pas facile de s'adapter (après 11 ans de Monaco tous les jours...) mais au final je crois que c'est une amélioration (et cela résout à terme le cas des écrans proposant une plus haute définition, comme le MacBookPro 17'). La complétion automatique est plus "complète" aussi.

J'aime beaucoup aussi GCD + l'extension du langage C pour les formes Lambda. Pour les développeurs, c'est vraiment génial. Avec GCD, en 3 lignes de code, on peut envoyer des tâches sur des threads secondaires (dont le nombre est optimal par rapport à la machine et ses disponibilités courantes), synchroniser le résultat, etc. Nous, on plonge dedans sans hésiter, la prochaine version de Magnet en abusera (et ne tournera donc que sur Snow Leopard).


Core Animation Reloaded

Dans Core Animation, il y a pas mal de nouvelles fonctionnalités (particules, gradients, transformations hiérarchiques 3D...). Je n'ai pas encore pu tout tester, mais ça a l'air prometteur pour la suite. La réactivité est meilleure, et certains bugs de rafraichissement ont été corrigés.

Snow Leopard excite les programmeurs



Scanners de tous pays, unifiez-vous !

L'unification pour les scanners. Maintenant on peut accéder à une interface Apple pour scanner des documents. Ça marche chez nous avec un multifonction Canon, et je suppose que cela fonctionne bien pour les autres grands constructeurs aussi. De plus, cette API est également disponible pour les développeurs, ce qui va amener la standardisation pour l'acces aux scanners. On compte l'intégrer aussi, pour utiliser l'OCR de Prizmo avec les scanners divers et variés sur Snow.


Compatibilités et incompatibilités d'humeur

La majorité des applications fonctionnent bien (Photoshop CS3, VMWare, Aperture, TextMate - sauf certains raccourcis clavier). Mais il peut également y avoir de petites incompatibilités au cas par cas. C'est en général facilement fixé par le développeur.

Pour les développeurs de plugin, le passage au 64-bit est essentiel (car les applications Apple tournent en 64-bit par défaut). Cela n'est pas toujours aisé, en fonction des pratiques de chaque développeur. Pour notre plugin Aperture, on est prêt mais on attend qu'Apple revoie Aperture en 64-bit (qui reste 32-bit pour l'instant).

Snow Leopard excite les programmeurs



Coup de gueule !

Apple ne supporte plus le subpixel antialiasing sur apparemment beaucoup d'écran (non Apple), dont Samsung, DELL... C'est mesquin de la part d'Apple (il y a un workaround). J'ai rédigé un bug report, mais il faut faire du bruit pour qu'ils remettent cette fonction (je suis très sensible au rendu des polices... comme beaucoup je pense). Plus d'infos sont disponibles à ce propos ici.


QuickTime pas si complet

Pour QuickTime, la nouvelle interface est sympa. Ceci dit, je reste sur ma faim pour les APIs, il manque toujours certaines fonctionnalités dans QTKit, rendant impossible un passage à 64-bit pour certains soft. Par exemple: impossible d'afficher une fenêtre de choix de codec en 64-bit (depuis quelques années). La nouvelle icône semble palier à une inertie importante de l'équipe QuickTime, apparemment fort attachée au passé...

Snow Leopard excite les programmeurs


Snow Leopard, 29 €
Snow Leopard, 5 licences, 49 €
Mac Box Set (Snow Leopard, iLife 09, iWork 09), 169 €
Snow Leopard Server, 499 €
MacMation
Creaceed.