Microsoft avance que la prochaine itération de PowerShell Core sera baptisée PowerShell 7
L'éditeur explique pourquoi il envisage de supprimer "Core"

Le , par Stéphane le calme

73PARTAGES

11  0 
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

Citation 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.0

PowerShell 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

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de air-dex
Membre expert https://www.developpez.com
Le 10/04/2019 à 2:34
Je ne serai pas étonné de voir Powershell finir par détrôner Bash.
  • Powershell est plus facile à utiliser que Bash. Bash a l'avantage d'être WYSIWYG, mais si tu veux récupérer des données t'as intérêt de bien savoir parser avec des commandes comme sed ou awk. Powershell quant à lui manipule des données structurées (objets, variables tableaux) comme les langages de programmation classiques, ce qui est nettement plus simple à l'utilisation.
  • Powershell sait rester simple et compréhensible au niveau des noms de commandes, qui ont un minimum de cohérence entre eux. Tu veux obtenir quelque chose ? Ta commande sera Get-XXX. Alors qu'en Bash va trouver un lien cohérent entre ls (Get-ChildItem), ps (Get-Process), cat (Get-Content)... Tu cherches les noms des commandes pour te repérer sur l'arborescence ? Ils seront tous en XXX-Location, tout simplement. Alors qu'en Bash va trouver un lien logique entre pwd (Get-Location), cd (Set-Location), pushd (Push-Location) et popd (Pop-Location). Le 'd' final signifiant directory ? Comme dans sed ou de nombreuses exceptions à cette pseudo-règle ?

    Bref il est beaucoup plus simple de retenir et de retrouver beaucoup de noms de commandes en Powershell qu'en Bash. Et c'est important de connaître beaucoup de commandes dans un terminal.
  • Les commandes sont souvent génériques et agissent souvent sur un ensemble de données structurées plutôt que sur un type de données précis. Concrètement tu n'as pas une commande pour supprimer un dossier (vide), une autre pour supprimer un fichier, une autre pour supprimer une clé de registre, une autre pour supprimer une variable d'environnement... Tout se fera à partir du seul Remove-Item qui saura retrouver ses petits selon où l'on se situe pour "supprimer un objet", qu'il soit fichier, dossier, clé de registre, alias de commande... Tout simplement.
  • Powershell sait ne pas dépayser pour autant ceux qui viennent de cmd ou de Bash en proposant de nombreux alias afin de ne pas les perdre d'entrée.
  • Powershell a la chance de pouvoir bénéficier très facilement de toute la puissance d'un framework entier, en l'occurrence .NET.
  • Les utilisateurs sauront aussi apprécier le -Online de Get-Help -online qui permet si possible de lire confortablement l'aide dans le navigateur plutôt que dans le terminal.


Bref tout ça pour dire que Powershell est plus simple que Bash tout en étant au moins aussi puissant que lui si ce n'est encore plus. De quoi facilement rendre Bash obsolète. Je ne suis pas apôtre Microsoft mais il faut reconnaître que les concepteurs de Powershell ont fait du foutrement bon travail avec au passage une belle valeur ajoutée. Bravo à eux !

Par contre je suis étonné de voir que Powershell n'évolue pas sous Windows. On voit bien dans Windows 10 que Microsoft pousse de plus en plus Powershell au détriment du vieux cmd. M'est avis qu'il est temps de franchir le pas et je suis étonné de voir que personne ne le fait. Cela viendra peut-être avec le temps, au fur et à mesure que Windows 10 prendra la place des vieux Windows. Certes Powershell est déjà vieux (ses premières versions sont aussi vieilles que Vista), mais ce n'est que récemment que Microsoft a vraiment commencé à le pousser au détriment de cmd et qu'il doit être pris au sérieux.
0  0 

 
Responsable bénévole de la rubrique Microsoft DotNET : Hinault Romaric -

Partenaire : Hébergement Web