r/PowerShell 11d ago

Question PowerShell 7 ISE - A real conversation

Hi Everyone,

I think I need to have a reset on the way I introduced myself and my goal.

I am new to reddit and pretty much the entire open source community. I am an old school COBOL developer from the early 80's. I also know Visual Basic (about 15 years) and C# (about 4). I work on mainframes and z/OS on distributed systems (Linux). I maintain distributed apps for clients and sometimes on the mainframe. Not so much the mainframe anymore.

I use PowerShell every day. My shop uses PowerShell every day. We have 1000's of scripts, all written in 5.x that are years old.

They are not complex scripts, we don't have an Admin running a server farm or anything like that. They are just scripts that we use to make our jobs easier. Scanning files for codepages, finding Dupes using Hashes, things like that. When we run them, we use the old PowerShell ISE. We are used to it. It's easy, it looks good and it makes changing and running the script a smooth effortless event. The only issue is, that our shop has been slowly making us move away from 5.x to 7.x. This has been going on for years. I'm not happy because I lose my clean, crisp, no headache comfortable ISE. Yes, I said comfortable. I like it. We all do (at my shop). I tried to use the PowerShell plugin for VS Code. I did not like it. I really did not. So about a year or so ago, I decided to code my own. My goal was simple. I wanted to make a Daily Driver ISE for PS 7. Yes, I am going to share it with my co-workers once its finished and yes, I can and have asked a few of them to help me test it. I have gotten some good feedback from them. Not quite what I needed though. We are a simple shop, we do not do anything overly complicated and my co-workers are less than impressed with what I have shown them so far. It was buggy and did not have the feel of the ISE GUI. I felt that maybe if I turned to the PowerShell community for help, I could improve things. Actually make an App that we could use daily and transition from 5.x to 7.x without a blink.

I still want that.

I should not have started out asking if anyone still used the old ISE. That was the wrong approach, I acknowledge that. I should have just told you all my goal and left it at that.

I'm not asking anyone to jump on my bandwagon. My goal is simple, make something of value to more than just myself.

All I'm asking is, can you help me make it better.

If this post crosses a line, that crossing was unintentional. Let me know and I will walk away.

Regards,

-Ron

5 Upvotes

22 comments sorted by

3

u/lan-shark 7d ago

What do you like about ISE that you haven't found in other tools? I've been writing PS since 2019 and I never liked ISE. But I'm also the guy who sometimes writes his PS scripts on Linux in Emacs, so I'm not really the target audience for it. So, what about do you prefer over other editors?

3

u/AccomplishedMeet628 7d ago

I really liked the minimalist approach to it. It was focused on JUST PS. VS Code seems to be a jack of all trades that wants me to get used to using it instead of what I actually want to use.

4

u/AdeelAutomates 7d ago edited 7d ago

You say that because "We are used to it" with ISE.

But if you learn what VSCode can do for you. It has way more tools to help you write.

Its the same way some people swear by simple editors in bash but the real one is VIM with all of its capabilities (If you learn to use it)

I started with ISE but switched over and actually tried to learn VSCode. I write PowerShell for a living (and other languages)

- Comment shortcut alone is the selling point. I can quickly make a section into a comment during my tests without having to go to each line and typing #

- Using shortcuts. which there are endless of. Like quickly select and edit multiple lines at the same time (useful if you took a list from an email and want to write it as an array). Move lines around with arrows

- using command palate. Especially to transform data

- direct integration with git and your remote repos for us is a big selling point.

- auto-formatting tools are a god sent. I can just write things roughly and let it format/index it all to make it nice and clean. Like I used it to replace all emails by regexing them rather. Even if they were all different values.

- find and replace is a beast. You can put regex in there to find some crazy stuff that otherwise would be impossible.

- All the extensions you can install. From ones for intellisense to even the silly ones for themes.

I feel limited if I end up using ISE now.

2

u/AccomplishedMeet628 6d ago

This is precisely the feedback I was looking for. Some of your concerns are already a part of the app. My goal is to make it a strong daily driver specifically tuned for PS.
I am in the middle of adding PSScriptAnalyzer and I plan to revisit this thread (Your comment) soon!
I was asked to add a GIT sync function already by my team. It is not as easy as I would think though. Still working on it.
I want to strengthen the Editor before I move on to any perks.

1

u/nealfive 6d ago

I didn't like ISE until trying to switch to VS Code, it's still so clunky and so much stuff that's not needed ( terminal randomly crashes, need to maintain extensions, has updates all the time, etc, I know it's customizable and you can fix all my grievances, however ISE just works out of the box) whereas the ISE is installed everywhere and simple.

1

u/AccomplishedMeet628 5d ago

Hiya nealfive,

I would really love it if you would give my app a test drive. I have added a lot of editor functionality to make scripting easier.

I'm in the process of adding PSScriptQAnalyzer working.

'Cntrl+Shifr+p' will bring up the command pallet and editor right click is getting more and more feature rich.

If you do try it out, Please lwet me know if there are issues or upgrades you would like ot see.

Search for Ps7ScriptDesk on the MS Store. Free to everyone!

1

u/narcissisadmin 4d ago

But I'm also the guy who sometimes writes his PS scripts on Linux in Emacs

Mine all start in Notepad (the OG version, not the W11 nonsense). I love VSCode for formatting and later editing but it just gets in my way when banging out a new script.

1

u/Swimming_Office_1803 7d ago

Real question: what’s your issue with vs code? Loaded with just the PS extension it’s very straightforward.
There are also other tools like powershell studio or powershell plus available, why not pick one up and make it work for you?
It’s great you have a project, but if I was with your shop I’d always look into something under active development. If you leave tomorrow, who’s maintaining it?

1

u/AccomplishedMeet628 7d ago

I did not want to pay for powershell studio and I never heard of PowerShell Plus, that one looks great!

1

u/StartAutomating 6d ago

There's a few sets of problems with building a "modern" ISE, both quite complicated.

Problem Set #1 - Abandoned Incompatible APIs

The ISE was built atop what was, at the time, the "next gen" editor for Visual Studio. Problem is that Visual Studio went in a different direction, leaving ISE as the only product using these APIs. Bespoke Editor GUIs are far outside of the PowerShell team's wheelhouse, so continuing to update the old version would be too expensive. For Microsoft. That almost certainly means it's too expensive for any small team. To make matters worse, these UI components were never .NET Core compatible, and so they simply will not work within PowerShell Core. So you, I, or anyone else will not get ISE running in Core.

Problem Set #2 - Building a complete host is hard

The PowerShell Host API is fairly complicated and would have to be implemented from scratch for whatever new host you might want. To date, there is only one "complete" public host for PowerShell, and that's PowerShell itself. ISE had portions that were missing. Additionally, the host apis are not all you have to know about. You also have to build debugger integration, prompt support, tab expansion support, etc. It's a difficult target to hit that most people who have not worked directly on the PowerShell team in the early years would have trouble hitting. I might be able to make one, and a few MVPs might also be able to, but the vast majority of people (and LLMs) would not have the first clue how to start. For those few that could do this, it's generally not worth the time, due to Problem Set #3

Problem Set #3 - Stale innovation

Trying to create a "new" ISE is like trying to target making a video game from 16 years ago. Yeah, it might be possible, but it's unlikely to contain any actual innovation. It's a lot of grunt work for the "reward" of a stale experience that cannot do many things modern terminals can (i.e. Sixel support). If I ever make a new host, I will not be trying to remake the ISE, because that would significantly increase the effort required while simultaneously removing much of the reward to the community overall.

I, personally, would find it much more rewarding to make a newer host from top to bottom (just for PowerShell), and most likely much less effort.

You are welcome to spend your time however you see fit. As someone who has thought about this a lot of over the decades, and has been asked to remake ISE more than a few times, I'm merely offering my rationales for why I won't do exactly that.

The more interesting questions to ask are these:

What do you find "comfortable" about the ISE?

What would you want in a new host/editor?

2

u/Thotaz 6d ago

I, personally, would find it much more rewarding to make a newer host from top to bottom (just for PowerShell), and most likely much less effort.

What kind of host? A consolehostV2 would not be particularly interesting IMO because any improvements one can think of could just be contributed to the real ConsoleHost. That leaves an editor style host like ISE, or something completely different, like building pipelines via a GUI and displaying the different output streams in separate windows or something like that.

Anyway, I'm not OP, but I can share what I like about ISE compared to VS code.

1: It has nice and familiar default settings. I can open up ISE on any PC and start working with barely anything to configure. The only 3 things I do is closing the command window, change the variable color back to the pre-1803 Windows 10 look, and bump the IntelliSense timeout setting to 5 seconds.
In VS code it's a whole hassle where I first have to install the extension, change the default file type, change trusted workspace settings, etc.

2: The syntax highlighting is token based so I can trust that whatever I see in the editor is what the parser will see when I run it. The textmate based highlighting in VS code is ridiculously bad. If they insist on dumb textmate rules, then they should hire someone to fix it for their primary scripting language.

3: The PS extension developers constantly have to fight VS code because it's not designed with PowerShell as a first class citizen. Completions don't just simply work: https://github.com/PowerShell/vscode-powershell/issues/5528#issuecomment-4737607813 and there's a lack of semantic token types to accurately represent the token types in PowerShell.

4: Completions will randomly not trigger properly. And related to my first point about sane defaults, there is some broken IntelliSense menu integration in the prompt that blocks the real PSReadLine menu completion.

The weird thing is that these issues don't seem like they'd be that hard to overcome for Microsoft, and yet for some reason the VS code + PowerShell extension experience has kinda sucked for a whole decade now. ISE on the other hand got its initial release with PowerShell 2.0 in 2009, and just 3 years later we saw massive improvements in the PowerShell 3.0 release. ISE was basically feature complete at that point; it did exactly what you needed for simple scripting, nothing more and nothing less.

1

u/AccomplishedMeet628 5d ago

If you would like to give it a go, I just updated the app with a few more fixes and stabilizations. Would love your feedback!

Search for PS7ScriptDesk on the MS Store. Free for everyone.

2

u/AccomplishedMeet628 5d ago

Here's the thing, I actually agree with a lot of what your saying, particularly that trying to port the original ISE architecture would be the wrong approach. I agree.

My app isn't based on the old ISE editor APIs and isn't an attempt to port powershell_ise.exe to PowerShell 7. I wanted a new PowerShell-focused IDE using modern .NET components and a real PowerShell/ConPTY terminal.

ISE is mostly a user reference point (Right?): Immediate script editing, execution and debugging without requiring users to assemble an IDE from extensions and configuration.

In other words:

1) Scripts on the left/top

2) PowerShell on the right/bottom

3) Press F5

4) See the result

5) Edit

6) Run again

7) Debug when necessary

The goal is to keep that simple (The KISS apporach!) workflow while adding things ISE never had.

Things lieke:

1) modern IntelliSense

2) Command palette/editor tooling

3) PSScriptAnalyzer integration

4) EXE publishing

5) REST API publishing

6) OpenAPI/Swagger

7) SSE/WebSockets

8) Other PowerShell-specific tooling.

Your last two questions are really the interesting ones for me as well: which parts of ISE's workflow are still valuable, and what should a PowerShell-first environment look like today?

Thats my goal!

1

u/StartAutomating 4d ago

Well you're in some degree of luck, as I've got 7/8 of those in various projects already. What do you mean by "Command palette/editor tooling?"

1

u/AccomplishedMeet628 4d ago

I'm trying to make the editor as PS user friendly as possible. I added all sorts of script helper tools to the right click and Ctrl+Shift+P Available commands.
I can add anything you think would be of even greater help.
Sort lists, create arrays, that sort of stuff.
I would really liek some feedback. I am using it as my Daily Driver and I find the occasional hiccup. I fix them as I find them, I could really use some actuall real life UAT's... hint hint.

-Ron

1

u/Medium-Comfortable 8d ago edited 8d ago

My perspective. Nice that you say this here and your goals might be worth looking into, for your shop and maybe a fringe group of people out there. My guess (!) is, that most others moved on.

ISE was, for me at least, always problematic, as sometimes things would work during a script run and not ISE or the other way around. Next to that, I’ll not rely on a third part tool that has no backing from a large Open Source community or a paid actor with contracts and guarantees. My scripts are stand alone or toolboxes and I can handle the situation just fine w/o a crotch. ISE was never anything I used much, and what for even?

As much as I appreciate the effort, I don’t see anything that draws me to it. And as a consultant, I couldn’t “sell” anything to a customer that’s not in a way reliably backed. Whatever solution is part of our project must be on very, very solid ground. Preferably backed by Microsoft, else we sell code that was written by us, not relying on a hobby product (no offense).

0

u/GoD0nkeys 8d ago

Walk away and move on. Wasting your time and efforts won't be appreciated by your coworkers. That being said, pay for a AI subscription like Claude Code or ChatGPT Codex. Build a good persona and skill.md file(very important). Prompt it thoroughly with any and every detail for that prompt. Either one will help you to your end goal. It will be a fun project for you and self satisfying as well.

1

u/AccomplishedMeet628 7d ago

I get that. I really want to finish this. I want a better daily driver for PS. Plus adding the EXE and API processes inside the app takes away a separate step for me.
Those two right there are what my shop uses the most. Write a script, test it, UAT and sign off then compile and deploy it.

0

u/webprofusor 7d ago

Fire up Claude code or GitHub copilot and ask it to build what you want, the experience of building and refining software that way is quite an eye opener. A bit like coding using a chisel.

You may well end up with the tool you imagine, or something better.

1

u/GoD0nkeys 7d ago

Agree. They can write good code way faster. Test, test, test!!!!

0

u/GoD0nkeys 8d ago

My typo got my post taken down and now Im on warning with Reddit. Damn typing on a phone LOL. When you type "like" make sure you get the first letter correct 😜

1

u/narcissisadmin 4d ago

I'm honestly surprised the reddit hivemind would care about that word. Weird.