Futuro y presente de PowerShell
Introducción
Microsoft está ampliando el ecosistema de PowerShell para ser más de lo que hoy es.
PowerShell 6.0 está asomando en el horizonte ya, y es bueno conocer lo que nos va a ofrecer, porque hay cambios sustanciales.
Versiones de PowerShell
Por casi todos es conocida la versión 5.0 y 5.1 de PowerShell para Windows.
Para saber la versión de PowerShell que tenemos, basta que ejecutemos en el terminal de PowerShell la siguiente instrucción:
$PSVersionTable.PSVersion
Las versiones 1.0, 2.0, 3.0, 4.0, 5.0 y 5.1 de PowerShell se ejecutan a través de .NET Framework.
Esto hace que sólo sea utilizable en entornos Windows.
Para saber el tipo de PowerShell instalado, para servidor o para escritorio, basta con hacer una llamada a:
$PSVersionTable.PSEdition
Si quieres una información más completa de los componentes y partes instaladas referenciadas por y para PowerShell, puedes ejecutar el siguiente comando:
$PSVersionTable
Versión 6.0 de PowerShell
La siguiente versión de PowerShell cambia completamente esta visión que teníamos sobre PowerShell.
Tanto es así, que en lugar de apoyarse en .NET Framework, lo hará sobre .NET Core.
Las bondades de .NET Core ayudan a que la futura nueva versión de PowerShell sea cross-platform, y que por lo tanto, esté disponible no sólo para Windows, sino también para macOS y Linux.
Respecto a Windows, la idea de Microsoft es cumplir la compatibilidad de PowerShell Core con Windows PowerShell. Para conseguir esto, el equipo de desarrollo se apoyará en .NET Standard 2.0.
Código Abierto
Otra de las características más destacables de PowerShell Core 6.0 es que el código es abierto.
Las versiones de PowerShell Core 6.0 en sus fases beta, las podrás encontrar aquí.
Y el código fuente en este otro enlace.
Roadmap
Te recomiendo comenzar por el siguiente recurso, que indica como empezar con PowerShell Core en Windows, Mac y Linux en este enlace.
Sobre el roadmap del producto, Microsoft a través de Joey Aiello, Program Manager de PowerShell, publicó en el blog de Powershell una información sobre esto, información que podrás encontrar en el siguiente enlace.
¡Happy Coding!