Avec Leopard, Mac OS X évolue, et il en est de même pour l’environnement de développement. En fait, du point de vue du développeur, il s'agit d'une évolution de très grande ampleur. Sans entrer dans les détails (Apple tenant à ce qu'ils ne soient pas dévoilés, NDA à l'appui) on peut retenir plusieurs axes intéressants...

Arrivée d’Objective-C 2.0

Mac OS X étant un système UNIX, les outils de développement fournis par Apple sont principalement basés sur le langage C. En fait, il s'agît d'un C un peu particulier car doté d’un support intégré pour la programmation objet. Ce sur-ensemble de C porte le doux nom d'Objective-C et sa particularité est d’étendre le langage C avec de nombreux éléments de Smalltalk. Cela donne un langage objet alliant les qualités du C (programmation bas niveau, accès direct aux librairies UNIX, etc.) et celles d’un modèle objet de très haut niveau : typage dynamique, système à métaclasses, notion d’envoi de message, support du hotswapping (modifier les classes à l’exécution, en ajouter, etc.), syntaxe expressive à la Smalltalk. L’assemblage, tout à fait baroque, de ces deux extrêmes donne en pratique un résultat stupéfiant de puissance et de simplicité.
Les librairies natives de Mac OS X sont basées sur ce système et offrent aux développeurs un ensemble de frameworks objet couvrant un grand nombre de fonctionnalité comme la gestion de l’IHM, la persistance des données, le traitement d’image et de video, l’accès au réseau, la sécurité, etc.
Au programme de Leopard (pour ce qui n'est pas couvert par NDA): passage au 64 bit, nouveau run-time plus performant et plus puissant, gestion automatique de la mémoire par ramasse-miettes en remplacement de l’ancien système de comptage de référence, syntaxe améliorée pour les itérations dans les collections, notion de propriété d’objet (évite d’avoir à écrire les getters et setters)...

Evolution des outils de développement

La nouvelle version de l’IDE, Xcode 3.0, est un plaisir de productivité et de fluidité. Les nouvelles fonctionnalités de refactoring du code sont très utiles, et les nouveaux outils de profiling prometteurs. De ce coté là Apple vient de faire un choix très judicieux en portant l’excellent DTrace sur Mac. DTrace est un système d’instrumentation du code, développé par SUN pour Solaris 10 et considéré comme le ce qui se fait de mieux aujourd’hui dans le domaine. Le portage sur Mac est très bon et la touche Apple est là : tout s’utilise via un environnement graphique superbe et, qui plus est, extensible, ce qui permet de construire ses propres modules en utilisant DTrace.

Nouveaux frameworks

Là, c'était un peu noël : une foule de nouvelles technos venant compléter les frameworks actuels. Le nouveau framework le plus fun, Core Animation, permet de gérer par programme toutes sortes d'animations en temps réel avec une grande facilité. La présence au cœur de l'OS de cette technologie permet à celui-ci d'offrir une implémentation optimisée, utilisant au maximum les processeurs multi-coeurs et la carte graphique. Premiers résultats attendus : des interfaces graphiques beaucoup plus animées, avec, par exemple, de nouvelles manières de présenter les données et d'interagir avec elles. Les nouveaux frameworks ne concerne pas que les aspects visuels des applications. Par exemple, la modélisation des données, leur évolution dans le temps (support automatique des fonctions de undo/redo...) et leur persistance est gérée par Core Data, dont Leopard inaugure une version 2.0 évoluée.

Langages dynamiques

Le support des langages dynamiques fut un grand l’un des grands messages de la WWDC. Concrètement, le modèle objet de Mac OS X supporte maintenant l'accès depuis Ruby et Python. Il offre également de nouvelles facilités pour l'intégration d'autres langages dynamiques. Ruby et Python faisaient déjà partis de Mac OS X dans les précédentes versions, mais Leopard inclus maintenant en standard des technologies de bridging avec Objective-C permettant d’accéder aux frameworks natifs depuis ces langages. Objective-C étant lui-même un langage largement dynamique, l’intégration est plutôt harmonieuse, et ouvre aux développeurs maîtrisant ces langages la possibilité de réaliser des applications utilisant directement les technologies natives de Mac OS X. MAJ: j'en profite pour signaler le blog de Laurent Sansonetti, qui est en charge de l'intégration Ruby/Cocoa chez Apple.

Web 2.0

Le support des technologies dites « Web 2.0 » et, plus largement, des technologies d’interactions collaboratives, est un élément important de la stratégie d'Apple. On trouve au cœur du système de nouveaux frameworks objets facilitant leur mise en œuvre. Ainsi, des technologies comme le RSS, l’instant messaging ou encore la video-conference, peuvent êtres intégrées facilement au sein des applications. Le framework WebKit, moteur de Safari, offre quant à lui une implémentation de grande qualité de la pile technologique du Web (HTML, CSS, JavaScript, etc.) et on le retrouve naturellement au cœur de l'iPhone, celui dernier tournant sur une version allégée de Mac OS X.