Le barrage de critiques de Miguel de Icaza contre Microsoft est très compréhensible. Le développeur a consacré une grande partie de sa carrière à la création de projets open source au sein de l'écosystème Microsoft et il a travaillé pendant des années pour l’éditeur sur Xamarin et d'autres projets. Son principal grief ? « Que Microsoft bouleverse un projet open source actif en y introduisant une extension propriétaire pour continuer à verrouiller .NET. » Déjà, l’an dernier, la réintroduction de la fonction Hot Reload dans le SDK de .NET avait mis le feu aux poudres.

Certains préfèreront sans doute considérer cela comme une résurgence du vieux tropisme de Microsoft « Linux est un cancer ». Mais ce n’est pas si simple. Dans l'ensemble, la firme a été un contributeur résolu des communautés open source, au moins depuis sa déclaration publique d’attachement à l'open source, en 2014. Il serait étonnant que l'entreprise revienne soudainement à son credo d’antan, en mettant fin à l'un de ses succès open source les plus visibles. Je soupçonne plutôt que cette décision répond au besoin d’un département de satisfaire les objectifs de revenus de l'entreprise en optant pour un modèle de licence bien compris, même s’il est mal accepté. Vous pensez toujours que Microsoft est le méchant ? Mais, avez-vous déjà travaillé dans une grande entreprise ?

Quand la main droite rencontre la main gauche

La réalité des grandes entreprises, c'est qu’une décision prise par le CEO a plus de poids que « la bonne idée de mon collègue de bureau ». De plus, les directives de la direction demandent du temps et de la persévérance avant d’être appliquées. On peut présenter les choses comme cela : Le CEO dit : « Tout le monde doit vendre nos nouvelles lunettes de singe. » Ça sonne bien, non ? Oui, jusqu'à ce que le directeur général de la division des lunettes zébrées rappelle au CEO que son chiffre d'affaires d'un milliard de dollars dépend de la vente de lunettes zébrées, et non de lunettes de singe. Ah, et puis le responsable des partenaires rappelle au CEO qu'ils ont 500 millions de dollars d'engagements envers des partenaires liés aux lunettes hippopotame. Les commerciaux devront être formés, le marketing devra mettre à jour toute la documentation, etc. Un an plus tard (ou cinq), la volonté du CEO ne sera toujours pas respectée.

Retour à Microsoft

En 2014, Satya Nadella, avait déclaré : « Microsoft aime Linux. » L'enfer n'a pas gelé, car à cette époque, la société n’avait pas d’autre choix. Linux était un fait, tout comme l'open source. Je ne vais pas rappeler l'histoire que Steven J. Vaughan-Nichols a déjà exceptionnellement bien raconté. En résumé, le cloud computing (IaaS, PaaS, SaaS) fonçait vers l'open source, et si Microsoft voulait un avenir, elle devait apprendre à s’affranchir de sa fixation sur Windows. (Vous vous souvenez de l'époque où Azure s'appelait Windows Azure ?) La firme de Redmond avait un motif financier impérieux de se lancer dans l'open source, et c'est ce qu'elle a fait en grande partie. Mais, comme je l’ai dit plus haut, les ordres de l’exécutif prennent du temps à être appliqués. C'était particulièrement vrai en 2014.

Au moment même où M. Nadella exultait sur sa récente love story, d'autres parties dans l'entreprise luttaient activement contre l’open source et les principes qui le sous-tendent, comme l'avait écrit à l'époque Simon Phipps. Les choses se sont améliorées. En 2016, je pouvais raisonnablement écrire que Microsoft était devenu le plus grand contributeur open source au monde, d’après le nombre d'employés contribuant activement à des projets sur GitHub. Cette évaluation n’était pas parfaite, mais elle indiquait une direction précise. En 2018, j'ai refait les calculs en utilisant un projet open source et, là encore, Microsoft est arrivé en tête.

Mais revenons à la question spécifique soulevée par Miguel de Icaza et d'autres défenseurs de l'open source. Microsoft a annoncé certaines modifications de l'extension C# de Visual Studio Code, qui la rendent de fait propriétaire. La communication autour du sujet était un peu difficile à suivre, incitant Miguel de Icaza à la résumer ainsi : « Au fil du temps, la plate-forme .NET devient fermée, afin de s'assurer qu'elle n'est utile que si vous êtes un client. » Pour ceux qui avaient espéré que l'open source .NET ouvrirait la voie à C# et à d'autres technologies clés de Microsoft, cela semble être un revirement difficile à accepter. Un commentateur du billet de M. de Icaza a suggéré que, malgré le slogan « Nous aimons l'open source » de Microsoft, « beaucoup de vieux routiers qui étaient là à l'époque sont encore là aujourd’hui. Ils sont nombreux, et très anciens, et certains ont certainement encore ces idées désagréables ». Ce à quoi M. de Icaza a répondu : « Oui. » Il est possible de partager le point de vue de Miguel de Icaza et de continuer à penser que, tout compte fait, Microsoft prend plus de bonnes décisions en matière d'open source que de mauvaises. C'est la même société qui a récemment financé le projet GNOME, un défi direct (même s'il n'est pas particulièrement menaçant) au bureau Windows. C'est un gros sponsor de l'Apache Software Foundation, qui apporte également de l'argent et d'autres ressources à Python, Java (!!), Kubernetes, OpenTelemetry, et d’autres.

Un fort contributeur, mais des mauvais comportements persistants

Bien sûr, on peut répondre que Microsoft est à l’origine de tout ça. C'est dans leur intérêt, et peut-être qu'ils considèrent que rendre .NET propriétaire est aussi dans leur intérêt. Et je suis d’accord. Mais je ne peux citer aucune entreprise qui contribue à des projets open source par altruisme. L'open source est intrinsèquement égoïste, et c'est pourquoi il continue à se maintenir et à prospérer. Les développeurs sont toujours aussi nombreux à vouloir contribuer à des projets, et il y a toujours des entreprises qui les payent pour le faire. En ce qui concerne Microsoft et .NET, je n'ai pas de grief particulier à formuler. Voilà plus de vingt ans que je suis Microsoft, et j’ai passé un certain temps à en dénoncer les pratiques. J'ai appris une chose : Une entreprise n'est jamais aussi mauvaise qu'elle n'y paraît à première vue, car, en fin de compte, elle est composée de personnes qui prennent des décisions. Certaines de ces décisions me plaisent, d'autres non. Mais mon opinion (et probablement la vôtre) n'a pas vraiment d'importance, car le test décisif revient aux développeurs et aux clients. Si la communauté des développeurs .NET de Microsoft se rebiffe et emporte l'argent de leurs employeurs avec elle, Microsoft cédera et reviendra sur sa décision. Comme pour toute autre entreprise, c’est l'argent qui a motivé l'amour de Microsoft pour l'open source, et cette fois aussi, c’est le levier de l’argent qui influera sur l’entreprise.