Microsoft à la conquête des développeurs : des succès mais quelques ratés

De WSL à winget
Logiciel 9 min
Microsoft à la conquête des développeurs : des succès mais quelques ratés
Crédits : SeventyFour/iStock

Microsoft veut faire de Windows 10 la plateforme idéale pour les développeurs. Pour cela l'entreprise a misé sur l'open source, allant jusqu'à racheter GitHub et npm. Cela passe également par la création d'outils comme le sous-système Linux, le nouveau Terminal ou winget. Mais tous n'évoluent pas au même rythme.

Si Windows est le système d'exploitation de référence pour les ordinateurs grand public, ce n'est plus le cas sur d'autres marchés. Il y a bien entendu les serveurs, qui exploitent massivement Linux. Mais aussi les appareils sous Android, lui-même basé sur le système libre (à travers AOSP). Mais il y a pire signal pour Microsoft.

Microsoft ❤ Développeurs

Car depuis de nombreuses années, il est devenu très courant de voir des développeurs sous Linux ou macOS (basé sur FreeBSD). Les raisons sont diverses, mais certaines tiennent directement à la stratégie du géant américain qui a négligé pendant de longues années plusieurs aspects chers à ce public particulier. 

On pense par exemple à l'invite de commandes de Windows qui n'avait guère évolué, si ce n'est pour tenter d'imposer PowerShell. Au téléchargement et à l'installation de logiciels, qui est longtemps passée par des exécutables à récupérer en ligne sans aucune procédure de sécurité. À Visual Studio, un IDE très complet, mais pas franchement le plus adapté pour du développement web ou de petites applications. La liste est longue.

Résultat, l'écosystème maison est passé à côté de quelques révolutions, se retrouvant écarté de différentes manières. C'est ce qui l'a décidé à mener un travail de fond ces dernières années, reposant largement sur l'open source en licence MIT. Mais malgré la bonne volonté du groupe, tout ne se passe pas toujours comme prévu.

Sous-système Linux : Windows 10, nouvel OS à tout faire

Il y a tout d'abord les projets qui ont réussi. On pense notamment au sous-système Linux (WSL), récemment passé dans sa version 2 et qui a évolué dans le bon sens depuis ses débuts en 2016

Il s'agit d'une couche de virtualisation, disponible dans toutes les éditions de Windows 10, permettant d'utiliser Linux en lignes de commandes (bientôt avec accélération GPU et interfaces graphiques) sans quitter l'écosystème Microsoft. L'ensemble est simple à installer et utiliser, ce qui devrait encore se renforcer dans les mois à venir. WSL est ouvert à différentes distributions, Ubuntu en tête, Microsoft et Canonical étant de plus en plus proches.

Surtout, cela ouvre la voie à des usages auparavant impossibles ou complexes sous Windows 10, comme la mise en place de conteneurs Docker par exemple. Les développeurs avaient aussi pris leurs habitudes avec de petits outils comme curl, wget, openssh, git, etc. Aucun n'était géré nativement dans l'OS de Microsoft.

Pour une part, cela a été corrigé. Pour une autre, on passe désormais par WSL. L'objectif est en bonne partie rempli : tout ce que vous pouvez faire sous Linux est également accessible depuis Windows 10 à quelques détails près. La virtualisation classique et des outils comme Multipass peuvent venir combler ce qui manque. 

Concernant les utilisateurs voulant rester sur un système d'exploitation open source, ou loin des outils de Microsoft, aucun outil n'aurait de toutes façons permis de les « récupérer ». Même avec un véritable « Winux ».

Visual Studio Code : discrète arme de guerre (pour .Net Core)

WSL fonctionne d'ailleurs très bien avec un autre succès open source de l'entreprise : Visual Studio Code. Il y a quelques années, personne ne croyait qu'Atom pourrait se faire détrôner. Ce fût pourtant vite le cas. Très basique à ses débuts, l'outil a rapidement fédéré une grande communauté au-delà des langages maison.

Multiplateforme, complet, avec un système d'extension assez fourni, il est désormais de tous les tutoriels en ligne. Bien entendu, Atom continue d'avoir ses fans (GitHub ayant entretemps été racheté par Microsoft), tout comme d'autres IDE, de Notepad++ aux outils de Jetbrains par exemple. Mais VSC s'est fait une place de choix.

Il propose depuis sa dernière version stable une synchronisation multiposte (à activer volontairement) passant par un compte GitHub ou Microsoft. Il permet également de développer de manière collaborative via Live Share. Mais il peut aussi être relié au sous-système Linux, à un conteneur ou un serveur SSH via ses extensions « remote », est disponible en version ARM64, etc. Sa galerie d'extensions est disponible par ici.

Poser la prochaine brique sera plus difficile : convaincre les développeurs de l'utiliser avec la plateforme .Net Core, elle aussi open source et désormais géré par une fondation tierce. Elle peut être utilisée pour du web, une application console ou à interface graphique. Disponible sous Linux, compatible même avec un Raspberry Pi, pouvant générer du web assembly (via Blazor) et facile d'accès (via C# notamment), elle a de nombreux atouts.

Mais détrôner Node.js (entre autres) ne se fera pas facilement, d'autant que les versions 1.x/2.x étaient poussives et incomplètes. La route sera encore longue pour convaincre, mais les choses avancent dans le bon sens. 

Le nouveau Terminal : celui que tout le monde attendait

L'année dernière, Microsoft surprenait son monde avec son nouveau Terminal. Là aussi, de nombreux outils avaient pris le relai – tant l'invite de commandes était dépassé – comme l'excellent Cmder. Il fallait donc réagir.

Après avoir modifié en profondeur son OS pour préparer le terrain, le projet était lancé (nom de code Cascadia, gardé pour sa nouvelle police). Évoluant vite, fédérant là aussi une communauté autour de lui, il a rapidement gagné en fonctionnalités, parfois vitales ou tenant du très drôle (mais totalement inutile), avec une grande capacité de personnalisation. Le tout développé en open source (sous licence MIT là encore).

La version 1.0 était publiée à la Build 2020, mais le projet était encore loin d'être finalisé. Prêt pour un usage quotidien, le nouveau Terminal manque encore d'un panneau de configuration, de nombreuses facilités et autres raccourcis, par exemple pour démarrer un onglet avec les droits Administrateur lorsque l'application n'a qu'un simple accès Utilisateur, organiser les onglets, ouvrir un panneau de commandes, etc. 

Des éléments déjà dans les tuyaux, parfois disponibles en préversion (1.2.x). Mais pour réellement en profiter, vous avez intérêt à aimer manier des fichiers de configuration en JSON. Il n'a d'ailleurs pas encore été intégré à Windows 10 et doit encore être installé séparément.

winget : une belle promesse, sans plus pour le moment

Reste le parent pauvre de la stratégie de Microsoft envers les développeurs : la distribution des applications. Empêtrée dans ses applications universelles (désormais via le projet Réunion) et son Store depuis des années, l'entreprise n'avait au départ rien intégré pour y diffuser des applications classiques.

Rien non plus pour les amateurs de lignes de commandes. Pour rappel, dans de nombreuses distributions Linux, installer et mettre à jour toutes les applications et le système est aussi simple que ça :

La mise à jour sous Fedora/Ubuntu :
===================================

dnf upgrade
apt update && apt full-upgrade

L'installation d'applications sous Fedora/Ubuntu :
==================================================

dnf install vlc
apt install vlc

Trouver et installer de nouvelles applications se fait de la même manière. Des interfaces graphiques, sous forme de pseudo-boutiques, sont également proposées. On peut y utiliser des dépôts tiers et autres miroirs, faisant de l'ensemble une infrastructure décentralisée, avec une couche de sécurité assurée par des empreintes et GnuPG.

Bref, le retard était énorme. Plusieurs projets ont émergé ces dix dernières années, mais aucun n'a réellement donné de résultats probants. C'est finalement un outil tiers qui s'est imposé comme une référence dans l'écosystème Windows : Chocolatey. Puis, à la Build 2020, Microsoft a dévoilé son winget.

La promesse était celle d'un gestionnaire de paquets complet, fonctionnant pour des applications classiques comme pour le Store officiel, avec installation, mise à jour et désinstallation. Une première version 0.1 était diffusée, la feuille de route était claire : une nouvelle mouture chaque mois jusqu'à la 1.0 au printemps 2021.

Mais voilà, un trimestre plus tard nous en sommes toujours à la v0.1.42101-preview, la troisième sortie depuis mai. Les nouveautés se comptent sur les doigts d'une main et ne sont pour la plupart qu'une préparation du terrain pour ce qui doit suivre. Comme feature toggle, ajoutée en prévision de prochaines nouveautés devant être testées avant d'être généralisées. Ou settings, qui... ouvre le fichier JSON contenant les paramètres.

Pour le reste, c'est aussi creux que lors de notre premier essai, même si une application correspondant exactement au nom tapé dans la commande sera désormais installée directement. Mais pour disposer d'une possibilité aussi basique que l'installation de plusieurs applications en une seule ligne de commandes, nous avons dû développer notre propre script PowerShell en attendant une gestion native...

Sur GitHub, un contributeur, employé de Microsoft, nous a confirmé que les dates étaient « ambitieuses » et que la feuille de route serait mise à jour d'ici quelques semaines. La v1 est toujours attendue entre mars et mai 2021.

Il y a néanmoins quelques bonnes nouvelles sur le front de winget. D'abord, l'implémentation des manifestes pour l'installation d'applications depuis le Store est achevée et en test. Cela ne devrait plus tarder. Il nous a été confirmé qu'il s'agissait de l'une des priorités actuelles avec la mise à jour, la désinstallation, l'import/export et la gestion des dépendances (quand une application nécessite qu'une autre soit également installée).

WinGet
Depuis cette première version, peu d'évolutions...

Les évolutions en cours montrent qu'il en est de même pour la gestion des applications avec plusieurs canaux (stable, beta, dev, etc.). Idem pour celles n'ayant pas d'installeur et distribuées sous forme d'un exécutable unique, d'une archive (.zip ou autre) ou même une Progressive Web App (PWA).

Autre point appréciable : la liste des applications gérées s'allonge quotidiennement. On y trouve désormais 710 éléments selon notre dernier décompte, avec toutes celles dont on peut avoir besoin au quotidien, que ce soit pour un utilisateur lambda, un joueur ou un développeur. On y trouve aussi bien des outils propriétaires qu'open source. Vous pouvez d'ailleurs contribuer en publiant vous-même votre propre manifeste.

Vous n'avez pas encore de notification

Page d'accueil
Options d'affichage
Abonné
Actualités
Abonné
Des thèmes sont disponibles :
Thème de baseThème de baseThème sombreThème sombreThème yinyang clairThème yinyang clairThème yinyang sombreThème yinyang sombreThème orange mécanique clairThème orange mécanique clairThème orange mécanique sombreThème orange mécanique sombreThème rose clairThème rose clairThème rose sombreThème rose sombre

Vous n'êtes pas encore INpactien ?

Inscrivez-vous !