Et si le gentil des années 2015+ était Microsoft ?

Les annonces de ce mercredi 12 novembre risquent de faire du bruit. Dans l’écosystème Microsoft, c’est sûr. Et peut-être même chez les concurrents. Car Microsoft va vite et veut taper fort. Nous étions 8 de chez Cellenza au MVP Summit 2014 à Seattle. Durant cette semaine, nous avons pu voir en détail les nouveautés qui sortiront dans les prochains mois, qui annoncent des changements majeurs dans le positionnement de Microsoft dans les années à venir. Les annonces ayant maintenant été officiellement faites, voyons ce qu’il en est.
L’arrivée de Satya Nadella semble déjà avoir changé bon nombre de choses chez Microsoft. Pendant des années, l’éditeur a eu une stratégie très autocentrée. Tout tournait autour de Windows. Et si une idée était bonne chez quelqu’un d’autre, Microsoft développait sa propre version de cette dernière. De toute évidence, ils en ont eu marre de réinventer la roue. Et après s’être fait méchamment damer le pion sur le mobile par Apple et Google, certains ont dû se dire qu’il valait peut-être mieux s’y prendre autrement. Nous avons pu voir des exemples d’ouverture ces dernières années. D’abord l’adoption des normes, telles que celles de la W3C (persister à faire l’inverse aurait néanmoins été… dommage, pour rester poli). Et si Office pour Mac existe depuis longtemps, il y a maintenant toute une panoplie d’applications Microsoft sur les stores iOS et Android. Côté Open Source, de grandes annonces ont été faites avec la .NET Foundation, ou la .NET Compiler Platform, plus communément appelée Roslyn. F# est open source depuis le départ. Plus récemment, le Microsoft Band a été annoncé. Et il n’est pas seulement compatible avec Windows Phone, mais également iOS et Android. Mais les annonces faites au Summit font penser que MS souhaite encore accélérer dans ce sens.
La voiture bélier : ASP.NET 5
On nous en parle depuis un moment, d’ASP.NET vNext. La version a maintenant un nom : ASP.NET 5. Pas très sexy, et pourtant, beaucoup de choses changent. Pour commencer, la stack est full open source. Et ça n’inclue pas seulement la mise à disposition du code sur GitHub, mais également le suivi des demandes de correction et d’évolution, la prise en compte des pull requests de la communauté et une visibilité sur la roadmap.
Déjà avec la version précédente d’ASP.NET, nous avions gagné le choix de l’hébergement : IIS ou self-hosting. Merci Owin et Katana.
Et quitte à réécrire complètement la stack, autant le faire bien. Nous avons successivement vu apparaître Webforms, MVC, Web API et SignalR. Et si des efforts étaient faits pour rendre le tout cohérent, c’étaient bien des projets indépendants. A partir de maintenant, tout le monde est rassemblé sous la bannière MVC6. Si la stack Web de Microsoft était mature, elle était aussi handicapée structurellement : pour avoir un feedback sur ce que vous développiez, il fallait un framework .NET complet et ensuite compiler et déployer, même localement. Ce temps est révolu. Grâce à Roslyn, la compilation est faite à chaud. On sauvegarde la modification, et on fait F5 pour rafraîchir la page sur son navigateur, comme avec les langages interprétés. Le meilleur des deux mondes. La stack promet également d’être plus performante, car dorénavant, elle pourra n’embarquer que les parties du framework .NET dont elle a besoin via des packages NuGet. En effet, qui a besoin des 200Mo du framework complet, y compris Winforms, WPF, etc. quand on développe pour le Web ? On voit arriver à grands chevaux la fin du déploiement monolithique du framework, pour aller vers un déploiement à la demande. Donc chaque application ASP.NET viendra avec son code et son framework, faisant d’elle une application entièrement stand-alone. Rien n’empêchera donc de faire tourner plusieurs applications, reposant sur des versions différentes de composants du framework.
La configuration d’un projet se fera via des fichiers JSON (oui, oui), dont la saisie est assistée par Intellisense. Donc plus d’énorme fichier XML. Et si Visual Studio sera toujours l’éditeur proposant la meilleure intégration et promet la meilleure productivité pour ASP.NET, l’IDE ne sera plus obligatoire pour développer ses projets. MS a même développé des plugins Intellisense et coloration syntaxique pour SublimeText et Emacs.
Vous voyez où je veux en venir ? La stack est open source, les applications sont stand-alone et Visual Studio n’est plus obligatoire pour le développement… ASP.NET goes cross-platform ! Et oui, Microsoft a développé des runtimes pour Linux et OSX. Rien que ça. L’éditeur nous l’annonce clairement : ce qui est développé avec ses technologies pourra aussi bien tourner sur le middleware de l’éditeur, mais également sur ceux des concurrents. C’est un changement brutal de mode de pensée.
Azure, Docker et tout le reste
Depuis le début, Azure prône l’ouverture. Tout ce que vous développez doit pouvoir tourner sur Azure, quelle que soit la techno utilisée, et quel que soit l’OS (à condition qu’il tourne sous forme de VM, donc tant pis pour OSX). Et toutes les briques PaaS de Azure peuvent être consommées sur n’importe quelle application, là encore quel que soit l’OS, quelle que soit la techno. Les principes sous-jacents de modularité et d’interopérabilité se voient élargis à tout le spectre MS. Développez une fois, et déployez vers Windows, Azure, Linux et OSX.
L’intégration de Docker, déjà très populaire dans le monde Linux, dans Azure et dans Windows 10 va changer pas mal de choses. Les applications tourneront dans des containers légers et seront naturellement portables vers tous les OS supportant Docker. Cerise sur le gâteau, le développement et déploiement est homogénéisé et simplifié. Voilà qui devrait accélérer le mouvement DevOps dans notre écosystème. Pour le développement mobile cross-platform, Xamarin est la solution privilégiée, mais nous avons également vu que l’intégration de Cordova dans Visual Studio offrait une autre possibilité pour la même problématique.
Si Visual Studio ne sera sans doute pas porté vers d’autres OS que Windows, Microsoft ouvre la porte aux autres IDE, mais également à de nouveaux développeurs. Le lancement de Visual Studio 2013 Community est un signe fort allant dans ce sens : bienvenue aux développeurs venus d’ailleurs et notamment du monde open source.
Si nous avons vu que ASP.NET, Roslyn et F# passaient open source, ce sera bientôt le cas pour tout le framework .NET. On nous l’a répété à plusieurs reprises durant le Summit : les 3 sources de revenus de Microsoft sont : Windows, Office et Azure. Tout le reste servira à terme à alimenter ces 3 sources de revenus. Tout le reste ne sera sans doute pas gratuit, mais le business model de l’éditeur a fondamentalement changé ces dernières années.
Qu’est-ce que ça va changer pour la communauté ?
Notre écosystème mute. En profondeur. L’éditeur semble avoir pris conscience qu’il ne pouvait pas faire tourner le monde à lui tout seul. Que des synergies avec des solutions tierces pouvaient être plus intéressantes que de réinventer la roue. Gageons que le temps des procès pour violation des lois sur le monopole est révolu.
C’est intéressant de regarder ces évolutions, là où Apple n’envisage toujours qu’un écosystème cohérent mais fermé, et où Google fait des choses un peu étranges. Comme si Microsoft se rachetait une conduite.
Les perspectives sont plutôt réjouissantes du point du vue du développeur. Il reste encore de nombreuses questions sans réponse, mais les prochains mois s’annoncent pour le moins denses. Nous sommes peut-être en train d’assister à la naissance d’un nouveau Microsoft fondamentalement différent de celui que nous connaissons/connaissions. L’éditeur accepte enfin de ne pas TOUT maîtriser. Les grandes lignes – Cloud First, Mobile First – sont tracées. Mais l’implémentation, elle, peut bouger. Les principes d’agilité ont émergé à plusieurs reprises durant cette semaine de MVP Summit, y compris de la bouche de Satya Nadella lui-même. Le monde Microsoft sera dorénavant moins monolithique, plus réactif, plus adaptatif. MS prend le pari d’apprendre en marchant, avec le soutien de sa communauté. On aime bien l’idée.