WWDC 2007

le 11/09/2007 par Philippe Mougin
Tags: Évènements

La WWDC, vous connaissez ? La World Wide Developer Conference, édition 2007, s'est tenu pendant une semaine en juin dernier à San Francisco. Organisée par Apple, elle regroupait environ six milles personnes, dont 0,016 % représentant fièrement OCTO. Les participants à la conférence se répartissaient selon une très harmonieuse proportion hommes / femmes d'à peu près 98,9% / 1,1%.

La WWDC, c'est la grande messe consacrée aux développements sur Mac OS X. Elle commence par une amusante et intéressante Keynote de Steve Jobs qui donne le ton et les grandes orientations. Ensuite, c'est parti pour une semaine de sessions techniques et de festivités diverses. Cette année, le monde Apple se prépare à vivre une évolution importante de la plateforme, avec l'arrivée prochaine de Leopard, alias Mac OS X 10.5, fruit de deux ans de développements menés sous la houlette de Bertrand Serlet, un Français bien de chez nous, proche collaborateur de Steve Jobs depuis les années NeXT (Dieu que cette phrase est longue :)).

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 coeur 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 coeur du système de nouveaux frameworks objets facilitant leur mise en oeuvre. 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 coeur de l'iPhone, celui dernier tournant sur une version allégée de Mac OS X.

](http://chopine.be/lrz/diary/)