We get an increasing number of inquiries asking what the future for ISESteroids is, and whether we plan to move to VSCode. Here is some background, and some answers! Disclaimer: the infos we summarized here on PowerShell and related technologies represent our conclusions. They could be wrong. If so, please drop us a message.
Future of Windows PowerShell
In May this year, PowerShell inventor Jeffrey Snover explained at psconf.eu that Windows PowerShell is “done”. It will continue to be part of current and future versions of Windows, and continue to ship out of the box. Based on full .NET Framework, it supports almost everything a Windows Admin needs to control. Windows PowerShell will not evolve anymore, though.
According to Jeffrey, all future investments go into PowerShell Core (aka PowerShell 6). The name “PowerShell 6” is to a tiny bit misleading as PowerShell Core is not the technical continuation of Windows PowerShell. Instead, it is a different breed, based on .NET Core which is basically a subset of the full .NET Framework.
Windows PowerShell vs. PowerShell Core
PowerShell Core by design cannot target all the things Windows PowerShell can, and many existing modules won’t currently run in PowerShell Core. For example, neither the ActiveDirectory module nor Exchange are currently supported in PowerShell Core. Graphical user interfaces based on WinForms or WPF won’t run, either.
PowerShell Core’s unique selling point at this point is its cross-platform reach: the smaller .NET Core can run not just on Windows but also on Linux and MacOS. This is why PowerShell Core is most appealing to those who need to manage heterogeneous environments or target the cloud.
It is likely that over time, .NET Core and .NET Standard evolve and deliver a more complete coverage for the needs of the Windows platform. We also might see the cloud become much more significant. And/Or Windows become more manageable via .NET Core.
Whatever the future holds, it will not happen overnight but rather take a couple of years. Meanwhile, we’ll see the bulk of existing PowerShell users working on Windows operating systems continue to use Windows PowerShell, and a new group of PowerShell users with cloud and cross-platform requirements use PowerShell Core.
Until these groups reunite at some point in the future, both PowerShell breeds benefit from another and communicate via PowerShell Remoting.
Future of the ISE Editor
The ISE editor being a rich WPF application, cannot run on .NET Core. It is bound to Windows operating systems and Windows PowerShell.
This is why Microsoft decided to keep ISE “as-is” as part of Windows, continue to ship it out-of-the box in current and future Windows operating systems, but not invest in ISE anymore. So if ISE caters your needs, you are safe to use it now and in the future. Just don’t expect it to improve. It is basically frozen.
ISE vs. VSCode
Since ISE cannot run on Linux and MacOS, and cannot run PowerShell Core, Microsoft looked for a different editor that works for both Windows PowerShell and PowerShell Core. David Wilson created his excellent “Editor Services” plugin that is at the heart of PowerShell support found in cross-platform VisualStudio Code (VS Code). VSCode is a free general-purpose editor for text-based script files. It is no specific PowerShell dev environment but the Editor Services extension provides many of the features you expect from a dev environment, including intellisense, running scripts, and debugging.
ISE, on the contrary, was originally designed as a specific PowerShell dev environment, but is now 8 years old, and you can’t deny this fact: VSCode is much slicker, and its editor is much more sophisticated.
ISE continues to have a solid fan base, for example because of its simplicity. This comes at no surprise considering how diverse the millions of PowerShell users are. It would be a miracle if anyone managed to come up with a “one-fits-all” PowerShell editor (which is why there are no one-fits-all cars, or pizzas). So while for some users the keyboard-shortcut oriented concept of VSCode is very efficient and appealing, this very fact turns off others who prefer ISEs simplistic approach. There is no technical requirement forcing you away from ISE, and ISE remains a choice for you provided you are targeting Windows PowerShell.
Future of ISESteroids 2.0
The current ISESteroids 2.0 was designed as an extension for the ISE editor to refresh ISE, and add sophisticated features typically found in modern dev environments. ISESteroids is highly integrated into ISE. This is why ISESteroids 2.0 shares the same fate: ISESteroids 2.0 continues to be available on Windows now and in the time to come, yet it won’t evolve anymore.
A “New” ISESteroids
Since ISESteroids 2.0 is “done” and can’t evolve significantly anymore due to its architecture, we stepped back and brainstormed how our perfect PowerShell development environment should look like:
- available when and where you need it: load from inside ISE, from inside VSCode, from inside PowerShell consoles or any other PowerShell host, or stand-alone. You can simply load it whenever you need a more sophisticated PowerShell development experience, and unload it when you are done.
- fast and light-weight: load in split-seconds, rapid intellisense, robust even with super-large documents
- support for all relevant file types, including xml, xaml, json, c#, python, etc
- built-in integrated GUI designer: use PowerShell not just for automation, but also as a rapid development platform for quick tools and apps (on the Windows platform)
- ISESteroids tools: move over existing tools like PSSharper, Obfuscator, EXE generator, Variable Monitor, etc
- Multiple hosts: work with multiple PowerShell hosts across multiple documents
- Project based: combine multiple different file types in projects
Our achitecture is ready to embrace PowerShell Core and cross-platform, yet we plan to release “the next thing” with full Windows PowerShell support on the Windows platform at first. We do this because many of the moving parts of PowerShell Core are still in flux. We want the first version settle and sink in at bit, just like PowerShell Core, Editor Services, and VSCode may benefit from some extra time to mature, until we then target PowerShell Core and cross-platform in the following version.
Originally we planned to release a beta before xmas 2017. The extension runs really well, very fast and with WPF editing onboard, *but* as the latest tests showed, there is still polish work to do. To give an example, we cannot release before we have an update mechanism onboard, and the UI design should be final. To be frank and honest, I am wiped at this point, working on psconf.eu in parallel, so I decided to take the stress out of this and the fun back into this. We are all working as hard and passionate on this as we can. We just need to take care of our families a bit, too. Hope you can appreciate. A great xmas time to you and your families!
If you are an existing ISESteroids user or have supported this project with a license purchase lately, you’ll be happy to hear that there is a 18-month guarantee working for you. ISESteroids updates have always been free, and we never charged for “maintenance” or alike. Now even upgrading to this new editor might be free: when the next version comes out, anyone with a license not older than 18 months upgrades completely free. Anyone else can upgrade with significant discounts. Or stick with ISESteroids 2.0. It’ll continue to run just fine.
Meanwhile, we cordially invite you to participate in our survey where you can tell us what else you’d like to see in our next version. We’re excited to hear from you!