Trois ans après la sortie de PowerShell Core pour Linux et macOS, Microsoft a annoncé PowerShell 7, la version la plus récente de PowerShell Core. En mars, Microsoft a publié PowerShell Core 6.2, mais au lieu d’appeler cette version PowerShell Core 6.3, l’éditeur l’a nommée PowerShell 7. Pourquoi ?
Dans un billet, Steve de Microsoft explique que
Envoyé par
Microsoft
L’utilisation de PowerShell Core a considérablement augmenté au cours des deux dernières années. En particulier, le gros de notre croissance provient de l'utilisation de Linux, une statistique encourageante compte tenu de notre investissement visant à rendre PowerShell viable multiplate-forme. Ce graphique représente le nombre de fois que pwsh.exe (ou uniquement pwsh sous Linux / macOS) a été démarré (sauf si la télémétrie a été désactivée).
Cependant, nous pouvons aussi clairement voir que notre utilisation de Windows n’a pas augmenté de manière aussi significative, ce qui est surprenant étant donné que PowerShell a été popularisé sur la plateforme Windows. Nous pensons que cela pourrait se produire car les utilisateurs Windows PowerShell existants disposent d'une automatisation existante incompatible avec PowerShell Core en raison de modules, d'assemblys et d'API non pris en charge. Ces personnes sont incapables de tirer parti des nouvelles fonctionnalités de PowerShell Core, de ses performances accrues et des corrections de bogues. Pour résoudre ce problème, nous renouvelons nos efforts en vue du remplacement complet de Windows PowerShell 5.1 dans notre prochaine version.
Cela signifie que les utilisateurs de Windows PowerShell et de PowerShell Core pourront utiliser la même version de PowerShell pour les automatisations sous Windows, Linux, macOS. Cela signifie également que sur Windows, les utilisateurs de PowerShell 7 auront un très haut niveau de compatibilité avec les modules Windows PowerShell dont ils dépendent aujourd'hui.
Nous allons également profiter de l’occasion pour simplifier nos références à PowerShell dans la documentation et les pages produits, en supprimant le «Core» dans «PowerShell 7». La PSEdition continuera de refléter le Core, mais il ne s'agira que d'une distinction technique dans les API et la documentation, le cas échéant.
Notez que la version majeure n'implique pas que nous apporterons des modifications significatives. Bien que nous ayons saisi cette opportunité pour apporter des modifications de dernière minute dans la version 6.0, nombre de celles-ci constituaient des compromis pour assurer notre compatibilité sur des plateformes autres que Windows. Auparavant, Windows PowerShell mettait historiquement à jour sa version principale en se basant sur les nouvelles versions de Windows plutôt que sur le versionnage sémantique.
Dans le même temps, Microsoft envisage de publier un remplacement complet de Windows PowerShell 5.1, dernière version de PowerShell pour Windows uniquement, publiée en 2016 et fonctionnant sur .NET Framework, à la différence de PowerShell Core, qui s'exécute sur .NET. Core.
Comme Microsoft l'explique sur son blog de développeur, l'adoption de PowerShell Core est principalement due aux utilisateurs de Linux, ce qui suggère que Microsoft avait raison d'étendre la disponibilité aux plateformes autres que Windows.
L’utilisation de PowerShell par Linux est la raison principale pour laquelle le langage de programmation de Microsoft a atteint la 45eme place pour la première fois en mars dans l’indice de popularité des langages de programmation de Tiobe.
Toutefois, l'utilisation de PowerShell Core par Windows est restée inchangée, représentant aujourd'hui moins de 20% des quelque 11 millions des Powershell Startups (voir le graphique).
.NET Core 3.0PowerShell Core 6.1 a apporté la compatibilité avec de nombreux modules Windows PowerShell intégrés, et Microsoft estime que PowerShell 7 peut atteindre la compatibilité avec plus de 90% des modules de Windows PowerShell en tirant parti des modifications apportées au .NET Core 3.0 qui ramènent de nombreuses API requises par les modules. construit sur .NET Framework pour qu’ils fonctionnent avec le runtime .NET Core. Par exemple, Microsoft s’attend à ce que Out-GridView revienne (pour Windows uniquement)!
Un effort important pour PowerShell 7 consiste à porter la base de code de PowerShell Core 6 sur .NET Core 3.0 et à collaborer avec les équipes de partenaires Windows pour valider leurs modules par rapport à PowerShell 7.
Microsoft envisage de supprimer le "Core" de sa documentation pour PowerShell 7 et de l'aligner sur le cycle de vie du support .NET Core, qui va proposer une version LTS (Long Term Service) et une version non LTS.
Les utilisateurs devraient pouvoir accéder à la première Preview de PowerShell 7 en mai, la date réelle étant tributaire de l'avancement des travaux de Microsoft sur l'intégration de PowerShell à .NET Core 3.0. Microsoft s'attend à ce qu'il atteigne la disponibilité générale à un moment donné après que .NET Core 3.0 ait atteint la disponibilité générale.
PowerShell 7 sera éventuellement livré avec Windows aux côtés de Windows PowerShell 5.1, mais comme la chronologie de .NET Core ne correspond pas aux mises à jour de Windows, il n’est pas possible de savoir avec quelle version de Windows 10 et Windows Server elle sera livrée.
Source :
Microsoft