On le savait déjà mais un présumé développeur Microsoft vient le confirmer avec précision : GNU/Linux est plus rapide que Windows.

Et les raisons qu’il avance font que cela semble difficilement réversible…

Remarque : Le développeur reste anonyme donc le doute subsiste, sur son identité pas sur la lenteur de Windows ;)


Thawt Hawthje - CC by


Un developpeur Microsoft admet que Linux est plus rapide que Windows

Anonymous MSFT developer admits Linux is faster than Windows

Steven J. Vaughan-Nichols - 12 mai 2013 - ZDNet
(Traduction : alct, goofy, Le_Hobbit, Kurze, Sylvain, Axl, tcit, ProgVal, Jose, Eijebong, Sinma, lmorel3, nano-plink, JLoDoesIT, Cyrille L., MFolschette + anonymes)

Résumé : Ce n’est pas une grande surprise, mais Linux est plus rapide que Windows, et au moins un développeur anonyme de Microsoft est d’accord pour l’admettre et il explique pourquoi c’est le cas.

Linux est bien plus rapide que Windows. Cette constatation n’est pas neuve. C’est pourquoi Linux fait tourner 90 pourcents des 500 plus rapides super-calculateurs, alors que Windows ne fait tourner qu’un pourcent d’entre eux. La nouvelle « nouvelle » est qu’un présumé développeur du système d’exploitation de Microsoft a récemment admis que Linux est en effet plus rapide, et explique pourquoi c’est le cas.

Cette personne anonyme, supposée être un programmeur du noyau de Windows a d’abord publié ses commentaires dans une conversation sur « Hacker News ». Il a poursuivi avec plusieurs commentaires sur le blog de Marc Bevand. Marc Bevand est un ingénieur logiciel pour Adconion, spécialisé dans les calculs à haute performance.

Le présumé développeur déclare en introduction : « Windows est en effet plus lent que les autres systèmes d’exploitation dans beaucoup de situations, et cela ne va pas en s’améliorant. La cause de ce problème est sociale. Aucune amélioration n’est apportée au système pour elle même, pour sa « gloire » telle que celles que vous voyez dans l’univers de Linux. »

Ce n’est pas que les développeurs Windows ne veulent pas améliorer les performances de leur système d’exploitation; le problème est que la culture de développement de logiciel chez Microsoft décourage les améliorations. Le prétendu programmeur écrit :

« Certes, on voit parfois des personnes naïves tenter d’améliorer les choses. Elles échouent presque systématiquement. Nous pouvons — et nous le faisons — améliorer les performances de certaines fonctionnalités spécifiques lorsque les personnes chargées d’allouer les ressources considèrent que cela aura une influence sur les objectifs commerciaux, mais c’est un travail vain. Il n’y a aucun plan global officiel ou officieux pour l’amélioration des performances du système. Nous avons commencé à nous soucier des problématiques liées à la sécurité parce que Windows XP, avant la sortie du Service Pack 3, devenait une menace vitale pour les affaires. Nos mauvaises perfomances, quant à elles, ne menacent pas les affaires.

Voyez-vous, les producteurs de composants sont généralement ouvertement hostiles aux modifications par des tiers. Si vous êtes un développeur, accepter un patch de l’extérieur met votre chef en colère (parce qu’il faut maintenir ce patch et justifier auprès des collaborateurs le changement de conception non prévu), les testeurs en colère (car les testeurs ont pour responsabilité d’assurer que le changement ne brise rien et vous leur avez créé du travail) et le gestionnaire de projet est en colère (à cause des conséquences en termes de planification du bout de code). Il n’y a en fait rien qui encourage à accepter les changements venus de l’extérieur de votre propre équipe. Vous pouvez toujours trouver une raison de dire « non » et très peu d’intérêt à dire « oui ».

Il y a aussi peu d’incitation au changement tout court. Dans le noyau Linux, si vous améliorez la performance du parcours d’un répertoire de 5%, vous êtes félicité et remercié. Ici, si vous le faites et que vous n’êtes pas dans l’équipe qui s’occupe de ce sujet, dès lors même si votre code est approuvé par les tenants du sujet et intégré, votre hiérarchie s’en moque. Oui, faire des améliorations importantes va vous permettre d’être remarqué par les plus expérimentés et pourrait être une aubaine pour votre carrière, mais l’amélioration doit être vraiment énorme pour attirer ce genre d’attention. Les améliorations progressives ne font qu’ennuyer les gens et sont, au mieux, sans impact sur votre carrière. Si vous êtes malchanceux et que vous parlez à votre supérieur de comment vous avez amélioré la performance d’autres composants du système, il va juste vous demander si vous pouvez accélérer votre activité de résolution de bug. »

D’après lui, Microsoft est en train de perdre ses meilleurs talents chez la concurrence. Il écrit : « Une autre raison qui explique l’écart de qualité est que nous avons eu du mal à garder les gens talentueux. Google et les autres grosses compagnies de la région de Seattle continuent à piquer nos meilleurs développeurs, ainsi que nos plus expérimentés et nous embauchons des jeunes tout droit sortis de l’université pour les remplacer. Vous trouvez ainsi des SDE (NdT : Microsoft Software Development Engineer pour Ingénieurs de développement logiciel Microsoft) qui maintiennent des systèmes énormes. Ces développeurs sont bien intentionnés, et sont en général suffisamment intelligents, mais ils ne comprennent pas pourquoi certaines décisions ont été prises, ils n’ont pas une compréhension approfondie des détails complexes de la manière dont leurs systèmes fonctionnent et, plus important, ils ne veulent rien changer qui fonctionne déjà. »

De plus, assure-t-il, les développeurs juniors de Microsoft ont une tendance à apporter des améliorations au système en implémentant des fonctionnalités flambant neuves plutôt que d’améliorer les anciennes. Si l’on observe les dernières sorties de Microsoft, le constat est sans appel : nous n’améliorons pas les anciennes fonctionnalités, nous en ajoutons de nouvelles. En l’état actuel des choses, à l’heure du bilan, le développement de nouvelles fonctionnalités est mieux considéré que l’amélioration des anciennes (c’est littéralement l’explication de Powershell. Beaucoup d’entre nous souhaitaient améliorer cmd.exe mais ne pouvaient pas).

Juste pour le plaisir de baver, il est difficile de battre ses pensées concernant le système de fichiers NT (NTFS) : « Oh mon dieu, le code NTFS est un livre d’horreur victorien réécrit sous opium violacé qui utilise des verrous récursifs et SEH (gestion structurée des exceptions) pour le contrôle des flux. Ecrivons plutôt ReFs (système de dossiers résistant à la place (et, ouais, copions et collons le code source de NTFS et enlevons la moitié de ses fonctionnalités ! Et ajoutons des sommes de contrôle, parce c’est cool, n’est-ce pas, et maintenant avec ça c’est tout aussi bien que dans ZFS (Z File System) ? D’accord ? Et qui a besoin de quotas de toute façon ?) »

Ces « révélations » n’ont rien de nouveau. N’importe qui ayant suivi « Mini-Microsoft », un employé anonyme de l’entreprise proposant une vue de l’intérieur des open spaces à gogo du pôle du développement Microsoft, ou qui a lu les commentaires d’un ex-développeur Microsoft mécontent comme Hamilton Verissmo, sait comment la bureaucratie du développement chez Microsoft se met en travers de l’innovation. Comme Brian Cody, un ancien ingénieur Microsoft, disait dans le Magazine Forbes en 2012, être un développeur logiciel Microsoft qui réussit « a toujours été beaucoup moins sur comment je pourrais devenir un meilleur ingénieur et beaucoup plus sur comment améliorer ma visibilité auprès des managers ».

En résumé, Microsoft est devenu une « vieille » entreprise. Ce n’est pas une surprise qu’aujourd’hui, Microsoft tente de se rattraper au niveau des tablettes et smartphones avec des ratés tels que Windows 8 Metro plutôt que l’amélioration de ses performances logicielles de base.

Les personnes réagissent comme si ce nouveau regard sur le fonctionnement de Microsoft était choquant. Ça ne l’est pas. Le développeur le dit lui-même, dès que l’histoire s’est répandue sur la blogosphère, « c’était devenu hors de contrôle. J’ai été trop sévère, et je ne voulais pas que cela ressemble à une sorte d’exposé géant. C’était juste du ronchonnement ».

En particulier, il s’excuse à moitié pour ses commentaires sur NTFS: « NTFS utilise bien SEH en interne, mais le système de fichiers est très robuste et bien testé. Les gens qui le maintiennent comptent parmi les plus talentueux et expérimentés que je connaisse. (Certes, je pense qu’ils maintiennent du code laid, mais le code laid peut faire des composants bons et fiables, de plus la laideur est nécessairement subjective.) »

Dans une tentative de résumer toutes ses plaintes de manière plus positive, il a ajouté, « Windows et Microsoft ont toujours beaucoup de talents techniques. Nous ne livrons pas de code que personne ne peut maintenir et comprendre, même si quelques fois ça peut prendre un peu de temps pour les nouvelles personnes pour contribuer. Bien que j’ai des droits de lecture et d’écriture sur le code source de Windows ainsi que des dizaines de milliers de personnes à travers le monde, je ne suis pas une exception. On ne prend quasiment aucune décision individuelle, et bien que je maintienne que la dynamique sociale décourage la prise de risque et l’action individuelle, je veux insister sur le fait que nous ne sommes ni fous ni anormaux. La force sociale telle que je l’ai décrite promeut l’innovation, et bien que je pense que l’on devrait pouvoir améliorer les aspects de notre culture que j’ai précisés, nous sommes loin d’être paralysés.

Les effets négatifs sont davantage comme ceux encourrus lors du montage d’un béquet non nécessaire sur une voiture plutôt qu’arracher le bloc moteur. Un fait incontestable, c’est que notre division d’ingénieurs fabrique et distribue des logiciels fiables qui fonctionnent partout dans le monde. Qu’importe ce que vous pensez de la nouvelle interface utilisateur de Windows 8, le système qui se cache en dessous est solide comme le roc, tout comme l’était Windows 7, et je suis fier d’avoir été une petite pièce de tout ce processus. »

Solide comme le roc ? Les patchs mensuels du mardi de Microsoft et la sortie constante de corrections pour des failles zero-day, comme la correction en mai d’IE 8, me laissent perplexe, comme toujours, sur la sécurité et la stabilité de Windows, mais que peut dire d’autre un employé de Microsoft ? Dans tous les cas, lorsqu’on parle de vitesse, c’est Linux, et non Windows, comme il l’a admis lui-même, qui reste le champion évident.

Crédit photo : Thawt Hawthje (Creative Commons By)