Fermer le menu
 

Apple et Microsoft, deux machines au fonctionnement bien différent

Anthony Nelzin-... | | 19:15 |  51

Co-fondateur de Tumult, à qui l’on doit notamment Hype, Ryan Nielsen a récemment été interviewé par le développeur Guy English pour le podcast Debug. Celui qui a dirigé le développement d’OS X de 2004 à 2010 a notamment discuté des différences fondamentales entre Apple et Microsoft dans l’approche du développement logiciel.



Mac OS X 10.3 Panther

Mac OS X 10.3 Panther (2003).



Le chef d’orchestre du développement d’OS X



À peine son diplôme de l’université du Colorado à Boulder en poche, Ryan Nielsen a intégré Apple en tant que engineering project manager en charge de la supervision du développement d’OS X. En six ans à la tête du développement d’OS X, il a supervisé cinq versions majeures : Mac OS X 10.4 Tiger, Mac OS X 10.5 Leopard, Mac OS X 10.6 Snow Leopard, OS X 10.7 Lion et 0 S X 10.8 Mountain Lion.



« L’équipe Mac OS X avait la main haute sur tout ce qui touchait au système d’exploitation », explique-t-il, « du moins jusqu’à ce que le développement de l’iPhone entraîne une compartimentation plus stricte de certaines fonctions. » L’engineering project manager qu’il était alors ne devait pas s’assurer que le système sorte à temps, mais tout simplement « à ce qu’il sorte ».





À l'exception de la toute première version de Mac OS X, en retard de plusieurs années sur le planning initial, Mac OS X 10.5 Leopard est la seule version de Mac OS X qui a été repoussée par Apple. Il a été développé en même temps que la première version de ce qui est devenu iOS.



« On voit souvent le project manager comme un "hub", mais c’est plutôt la colle qui tient tous les éléments de la société ensemble », poursuit-il. S’il repère un problème dans les couches les plus basses du système, il doit mobiliser des ressources pour le régler au plus vite, afin qu’une nouvelle build soit disponible au plus vite pour les équipes qui travaillent sur les apps, à plus haut niveau. Si une équipe est en retard, il doit estimer ce retard, prendre la décision de l’absorber, ou de le résorber en réallouant des ingénieurs, ou même de remettre une fonction à plus tard.



Bref, c’est un rouage essentiel, une sorte de chef d’orchestre qui a une vision globale de l’état du développement, alors que chaque équipe travaille de manière isolée. C’est un canal de communication entre les équipes, mais aussi des équipes aux dirigeants. Et c’est évidemment le responsable en cas de blocage, celui qui doit trouver une solution et la mettre en place.



Apple : un développement « organique »



De fait, le développement d’OS X est assez « naturel » : la structure générale est suffisamment lâche pour que les décisions soient prises de manière pragmatique, au cas par cas. Jusqu’à Lion, chaque version d’OS X était organisée autour d’« un thème » ou d’« un jeu d’objectifs » imaginés par la direction, le marketing et l’ingénierie.



Ce cadre est fixe : une fois que la décision de ne pas doter Snow Leopard de nouvelles fonctions a été prise, toutes les équipes n’avaient plus qu’un but, nettoyer et optimiser le système. Les détails d’implémentation, eux, peuvent évoluer : l’équipe en charge de GCD, dont les ingénieurs ont souvent été mobilisés pour d’autres projets, a été « autorisée » à prendre du retard. Et GCD est finalement arrivé à temps. « Il faut accepter que la réalité impose de ne pas respecter les règles, de faire des compromis, de revoir ses objectifs à la baisse », explique Nielsen : « au final, on obtient moins que l’on imaginait, mais mieux. »





Mac OS X 10.6 Snow Leopard (2009) n'intégrait qu'une seule nouvelle fonction visible, la prise en charge d'Exchange.



Cette liberté relative et l’architecture générale d’OS X permettent d’intégrer assez rapidement les modifications des ingénieurs. Non seulement l’équipe en charge d’un logiciel obtient un retour immédiat sur son travail, mais les autres équipes peuvent immédiatement vérifier que ces modifications ne posent pas de problèmes à leurs propres travaux, ou inversement. Les systèmes de gestion de versions sont suffisamment robustes pour revenir sur ces modifications au besoin, voire les supprimer si elles doivent être reportées à un prochain système.



Cette jolie mécanique d’allers-retours du code ralentit à l’approche d’un keynote : tout devant parfaitement s’y dérouler, aucune instabilité ne peut être introduite dans le système. Le rôle du project manager est alors de choisir une build à la fois suffisamment stable et suffisamment complète pour la démonstration. Si une fonction cruciale a du retard, il doit donc particulièrement contrôler les contributions des ingénieurs responsables, pour s’assurer qu’ils parviennent à un état acceptable sans introduire d’instabilités au niveau du système.



Elle souffre aussi de ce que certaines applications sont implantées assez profondément dans le système : les équipes iLife ou iWork peuvent évoluer indépendamment des équipes OS X, pas les équipes Safari, Mail ou iTunes. Nielsen a toujours rêvé d’un système où toutes les apps seraient de véritables silos, dont le développement pourrait totalement être découplé de celui du système. Cela n’aurait que contribué à faciliter ce mode de fonctionnement.





Depuis OS X 10.7 Lion, une nouvelle version du système est présentée chaque année.



Les choses ont sans doute changé depuis que le cycle de développement d’OS X est passé à un rythme annuel et que Nielsen a quitté Apple, mais ces grands principes de fonctionnement demeurent. Sans doute contraint par un accord de confidentialité, Nielsen pèse chacun de ses mots, mais il laisse à penser que le développement d’OS X approche désormais le principe de la rolling release.



Il fallait jusqu’à trois ans pour développer une version majeure d’OS X autour d’un grand thème. Au lieu d’attendre trois ans pour présenter une version d’OS X parfaitement intégrée à iCloud et communicant sans heurts avec iOS, Apple a présenté trois versions s’approchant chacune un peu plus du but (lire « Ship first, fix later » : un monde en bêta). En quelque sorte, Lion et Mountain Lion ont été des « instantanés » du développement de la version finale que sera Mavericks, avec toutes les incohérences flagrantes et les bogues frustrants que cela suppose.



Microsoft : une machine inflexible



Cette approche s’oppose radicalement à celle de Microsoft, dont Nielsen a eu quelques échos. L’exemple parfait est celui de la débâcle WinFS : sur le papier, cette extension de NTFS aurait été une véritable révolution, peut-être même le système de fichiers ultime. Cette merveille d’ingénierie a finalement été abandonnée après de nombreux retards : Microsoft a refusé « de ne pas respecter les règles, de faire des compromis, de revoir ses objectifs à la baisse ». Face à WinFS, Apple a présenté… Spotlight.



Ce n’est qu’une simple fonction, infiniment moins ambitieuse qu’un nouveau système de fichiers, mais qui a apporté des solutions concrètes et pratiques à une partie du problème que Microsoft essayait de résoudre. Revoir HFS+ aurait été infiniment plus complexe, même si Apple a un temps envisagé de le faire avec ZFS — une piste aujourd’hui définitivement abandonnée, selon ce que sous-entend Nielsen. La firme de Cupertino trouve donc d’autres solutions, comme Core Storage, une couche au-dessus du système de fichiers qui a ouvert la porte à Fusion Drive.



Spotlight

Spotlight dans Mac OS X 10.4 Tiger.



Le processus de développement de Microsoft, plus lourd et plus strict, reflète cette ambition. Lorsqu’un ingénieur soumet une modification, elle ne s’applique qu’à son dépôt local. Après vérification, elle remonte d’un niveau : son comportement face aux autres modifications est testé, avant de finalement intégrer le dépôt central. Une build officielle de Windows est alors compilée.



L’avancement et la stabilité des fonctions de cette build sont alors testées dans leur globalité, avant de redescendre d’un niveau. Les équipes transversales testent leurs propres fonctions, avant de donner leur feu vert à une nouvelle « descente » de la build. Au moment où l’ingénieur reçoit enfin la version de Windows qui contient sa modification, il a pu s’écouler plusieurs semaines, voire plusieurs mois.



Ce processus est indiscutablement plus solide : il permet à Microsoft de proposer régulièrement des nouveautés réellement importantes (qui pourrait sérieusement douter de la supériorité de NTFS sur HFS+ ?). Mais Apple est prête à sacrifier la beauté de la recherche fondamentale en informatique avec son processus plus souple : le fait est qu'au final, les utilisateurs obtiennent plus rapidement les fonctions qu'ils désirent. Selon Nielsen, Microsoft elle-même s'orienterait vers ce modèle, consciente de ses avantages certains.

Catégories: 
Tags : 

Les derniers dossiers

Ailleurs sur le Web


51 Commentaires Signaler un abus dans les commentaires

avatar Vincent Letellier 01/10/2013 - 19:29

Une différence de culture et d'état d'esprit ! Peut être l'orgueil et leur suffisance qui les a empêché de muer si ce n'est en organisation tentaculaire....

avatar Khadgare 01/10/2013 - 19:29

Exellent article comme le fait de plus en plus macg.... Un plaisir!

avatar mattcastel 01/10/2013 - 19:31

Ce qui explique finalement pourquoi Apple nous fait payer les mises à jour tous les ans, et qu'une version mineure est un événement rare... Tandis que Microsoft propose des systèmes radicalement différents tous les 4/5 ans, mais mis à jour en permanence... "Vous avez 92 mises à jour de sécurité, votre PC redémarrera dans 1 minute. Alors magnez vous de tout sauvegarder !"


avatar pecos 01/10/2013 - 19:39

Miladiou... Mais qu'est-ce que c'était classieux, Panther, avec cette interface en métal brossé et ce dock clair ! La zénitude et sa pensée très proche du vide sidéral sont depuis passés par là. :-(

avatar Le_iPodeur 01/10/2013 - 19:39

C'est vraiment mieux NTFS ? HFS+ est peut être vieux mais je trouve qu'il fait bien ce qu'on lui demande et je n'ai jamais eu trop de soucis. Alors que le NTFS j'ai parfois eu des surprises (ou alors c'était du à Windows lui même). Il y a de bons articles techniques qui comparent avantages/inconvénients ?

avatar popeye1 01/10/2013 - 19:42

Eh bien attendons la sortie de mavericks pour voir si tous les bugs de Lion et Mountain Lion seront corrigés. A force de rajouter des options plus ou moins utiles ( il y en a de plus en plus) et ne correspondant pas souvent aux désirs des utilisateurs, les systèmes finissent par devenir incontrôlables : on n'est jamais certain qu'une modification mineure dans un coin ne va pas provoquer un bug monumental à un autre endroit. Souhaitons que Mavericks ne nous fasse pas regretter son installation.

avatar joneskind 01/10/2013 - 19:43

Prise en charge d'Exchange, la seule différence entre Leopard et Snow Leopard ? Quelle innovation !

avatar iRobot 5S 01/10/2013 - 19:50

Leopard était beau ! Itune était vert ! Snowboard léopard était une version très fluide très propre et très sympathique, mais lion m'as déçu.

avatar gabou009 01/10/2013 - 19:56

@popeye1 je suis sur la beta depuis sa sortie et Mavericks est un excellent système. Aussi stable que Snow Leopard même! Il roule comme un champion!

avatar Anthony Nelzin-... macG 01/10/2013 - 20:01

@Le_iPodeur : j'ai toujours eu un faible pour NTFS et ce qu'aurait été WinFS, qui contiennent des choses très intéressantes, notamment en matière de potentielle récupération des données (ne me lance même pas sur btrFS). J'ai aussi une dent contre HFS+, dont la petite tendance à la corruption m'a coûté quelques disques. Considère cette incise comme une catharsis, quoi :)

avatar Le docteur 01/10/2013 - 20:03

@pecos Même réflexion. Ca me colle un coup de nostalgie à chaque fois que je vois ça, par rapport à l'horreur tristounette que c'est devenu. Par contre, ce n'est pas du zen, c'est du design. Enorme nuance. Je trouvais à la limite Tiger ou Panther plus proche de l'esprit du zen.

avatar cedre22 01/10/2013 - 20:05

Pourquoi NTFS est il supérieur au HFS+ ?

avatar Mdtdamien 01/10/2013 - 20:28

Vous avez lancé là un sujet fort intéressant ! Plus de détail sur le HFS+ et le NTFS semble intéresser vos lecteurs.

avatar BooBoo 01/10/2013 - 21:08

Que j'aimerai que nous développions comme cela (intégration continue) dans ma boîte...

avatar crazy_c0vv 01/10/2013 - 21:14

Article intéressant, merci ! N'oublions pas que Windows et les technologies Microsoft restent très employés dans toutes les administrations et les grandes entreprises, ce qui impose peut-être à Microsoft ce type de cycle de développement, plus sérieux et plus stable mais moins risqué ?

avatar Darth Philou (non vérifié) 01/10/2013 - 21:16

Effectivement, j'aimerais également une démonstration de la supériorité de NTFS sur HFS+. Par exemple, à preuve du contraire, je suis toujours obligé de defragmenter mes disques NTFS pour conserver des temps de réponse potables.... Quant à HFS+ je n'ai jamais expérimenté heureusement de problème de corruption de disque, même en retirant mes disques externes comme un sauvage....

avatar pacou 01/10/2013 - 21:26

En tout cas pour ce qui est des accès disques, calcul des tailles des éléments, hfs+ est plus lent. Les protocoles réseaux de Apple, notamment afp, sont plus lents que tout ce qui existe ailleurs. Windows a son TSE, pourquoi pas Apple? Malgré cela, je préfère l'ergonomie générale de Mac OS X.

avatar iTroll 01/10/2013 - 21:26

D'un côté le type a travaillé longtemps chez Apple, de l'autre il a eu "quelques échos"... je préférerais un témoignage d'un ancien employé de Microsoft pour de l'info de première main. Là c'est un peu trop caricatural entre l'entreprise flexible et réactive d'un côté et le mastodonte à l'organisation lourde et lente de l'autre.

avatar havox79 01/10/2013 - 21:34

@joneskind : C'était la seule nouvelle fonction pas la seule différence, snow leopard reste le mac os le plus rapide et le plus stable.

avatar belgiman69 01/10/2013 - 21:44

Très bon article en effet!

avatar UnkleDark 01/10/2013 - 21:53

Il serait intéressant à cet égard de voir l'évolution de OS X, notamment de Leopard à ML ... Qu'est ce qui a fondamentalement changé, justifié une nouvelle version ?

avatar hadrien01 01/10/2013 - 21:54

"Face à WinFS, Apple a présenté… Spotlight." ... face à Microsoft qui avait présenté Instant Search pour Longhorn.

avatar jerome_l 01/10/2013 - 22:02

De mon expérience: NTFS, héritage direct du système de fichier de VMS est plus complet dans sa gestion des droits utilisateurs. Sinon, il a de sérieuses limites, comme l'impossibilité d'avoir des chemins d'accès supérieurs à 255 caractères, ainsi que de sérieuses limitations quant à l'utilisation des liens symboliques. De plus, cette gestion avancée des droits le rend particulièrement lent lorsqu'il s'agit de traiter de multiples petits fichiers. HFS+, à l'inverse, hérite de la philosophie Unix. Donc la gestion des droits se fait principalement (mais pas que) par des droits en lecture/écriture attribués au créateur/groupe du créateur/tout le monde. Cette simplification fonctionne dans la plupart des cas, et est très rapide. De la même manière, liens symboliques et 'durs' sont parfaitement supportés, comme on s'y attend d'un système unix. Sinon, les deux filesystems sont journalisés, et supportent très bien les caractères internationaux. Au final, donc, je ne comprends pas trop cette soi-disante 'supériorité évidente' de NTFS ...

avatar hadrien01 01/10/2013 - 22:07

@ jerome_l : Et ext (sur Linux) ? Des différences majeures, ou très semblable à HFS+ ?

avatar Doctomac 01/10/2013 - 22:19

"il permet à Microsoft de proposer régulièrement des nouveautés réellement importantes" Lesquelles ??? Entre XP et le 8, quelles ont été les nouveautés ?

Pages