People use Bash for quick and dirty scripts, because it’s pretty much just a few symbols in between all the commands that they know and use all the time anyways. You don’t really ‘learn’ Bash in a dedicated manner, you rather just pick up on tricks and tidbits over years.
For more than that, you’d use Python, Ruby or a full-fledged programming language.
Personally, I would even go so far that Powershell hardly added something new that wasn’t already covered by a programming language…
Python is always something I intend to learn but never get around to. Does it natively handle GUI for process tooling or does it require a third party? What makes PowerShell so useful to me is the native ability to create visual applications without the need to compile. I can create tools for my company that launches right out of ConfigMgr Software Center and other technicians can contribute without needing a programming background.
At home I want to mess around with tooling for home services without having to resort to web development.
To be honest, I’m not the best to ask about Python. I need more rigid languages for my daily job, so it’s much quicker for me to just throw down a small project in one of those.
I do know, though, that Python comes with Tkinter out of the box. People usually don’t praise that all too much, but it’s probably fine for small GUIs.
However, it’s almost certainly worse than Powershell/.NET for creating Windows-only GUIs.
If you’d like to write GUIs on the Linux side, then I would frankly recommend not doing that.
No Linux sysadmin wants a GUI to deal with. If you give them a CLI, then they can automate that, i.e. integrate it into yet another (probably Bash) script.
Not to mention that most Linux servers don’t even have a graphics stack installed…
I appreciate the feedback. For the Linux side it’s for personal projects and learning opportunities so starting with something familiar and growing from there is my goal.
I dabble in C and C++ so cli isn’t out of the question for me. But .NET is my comfort zone, and I like the rapid tooling that PS offers.
I have multiple reasons to dig into Python so really I just need to get on with it.
I can create tools for my company that launches right out of ConfigMgr Software Center and other technicians can contribute without needing a programming background.
Now this is a bit of magic I would like to learn. I read through PowerShell in a month of lunches a couple of years ago and it’s saved my butt a couple of times. I’m due for a re-read though. Would you have a source on where I could go to learn more about creating GUI applications in PowerShell?
This blog does a fairly straight-forward job on explaining the basics. For me, I learn best in an interactive 1:1 or well-constructed video, so ChatGPT was priceless. I could ask it stupid questions all day long, and after throwing some different ideas around I started to see the essential parts and just let my prior knowledge of PS, .NET, and C# WPF take it from there.
At the end of the day, all that really matters is using the PresentationFramework assembly and creating a window:
Add-Type -AssemblyName PresentationFramework
Either use Visual Studio > WPF Project and make the UI you want. Take the XAML file and use PowerShell to get the raw content:
$Xaml = Get-Content -Path MainWindow.xaml -Raw
$SanitizedXaml = $Xaml -replace “bad syntax e.g. Foreground={x:Null}” "Foreground=“Transparent” # Certain XAML syntax is incompatible with PS XML
People use Bash for quick and dirty scripts, because it’s pretty much just a few symbols in between all the commands that they know and use all the time anyways. You don’t really ‘learn’ Bash in a dedicated manner, you rather just pick up on tricks and tidbits over years.
For more than that, you’d use Python, Ruby or a full-fledged programming language.
Personally, I would even go so far that Powershell hardly added something new that wasn’t already covered by a programming language…
Python is always something I intend to learn but never get around to. Does it natively handle GUI for process tooling or does it require a third party? What makes PowerShell so useful to me is the native ability to create visual applications without the need to compile. I can create tools for my company that launches right out of ConfigMgr Software Center and other technicians can contribute without needing a programming background.
At home I want to mess around with tooling for home services without having to resort to web development.
To be honest, I’m not the best to ask about Python. I need more rigid languages for my daily job, so it’s much quicker for me to just throw down a small project in one of those.
I do know, though, that Python comes with Tkinter out of the box. People usually don’t praise that all too much, but it’s probably fine for small GUIs.
However, it’s almost certainly worse than Powershell/.NET for creating Windows-only GUIs.
If you’d like to write GUIs on the Linux side, then I would frankly recommend not doing that.
No Linux sysadmin wants a GUI to deal with. If you give them a CLI, then they can automate that, i.e. integrate it into yet another (probably Bash) script.
Not to mention that most Linux servers don’t even have a graphics stack installed…
I appreciate the feedback. For the Linux side it’s for personal projects and learning opportunities so starting with something familiar and growing from there is my goal.
I dabble in C and C++ so cli isn’t out of the question for me. But .NET is my comfort zone, and I like the rapid tooling that PS offers.
I have multiple reasons to dig into Python so really I just need to get on with it.
Now this is a bit of magic I would like to learn. I read through PowerShell in a month of lunches a couple of years ago and it’s saved my butt a couple of times. I’m due for a re-read though. Would you have a source on where I could go to learn more about creating GUI applications in PowerShell?
This blog does a fairly straight-forward job on explaining the basics. For me, I learn best in an interactive 1:1 or well-constructed video, so ChatGPT was priceless. I could ask it stupid questions all day long, and after throwing some different ideas around I started to see the essential parts and just let my prior knowledge of PS, .NET, and C# WPF take it from there.
At the end of the day, all that really matters is using the PresentationFramework assembly and creating a window: