Shell Speeds, Bash and PowerShell
-
@Obsolesce said in Shell Speeds, Bash and PowerShell:
@scottalanmiller said in Shell Speeds, Bash and PowerShell:
@Obsolesce said in Shell Speeds, Bash and PowerShell:
I used PowerShell today and it was awesome.
It actually works better on Linux than on Windows. Launches faster, and integrates quite well. If you like PS, it actually is 100% functional on Linux. And that's PS6, not the old version that Windows ships.
Yeah 6 is great. That's what I use unless I need a specific Windows module.
Unfortunately we need those specific modules for SO many tasks that we do every day. Otherwise we'd happily use PS6 Core on Linux.
-
@Obsolesce said in Shell Speeds, Bash and PowerShell:
Just wait until .NET Core 3 and PS7! You will see the light.
What's new in 7 of interest?
-
@scottalanmiller said in Shell Speeds, Bash and PowerShell:
@Obsolesce said in Shell Speeds, Bash and PowerShell:
Just wait until .NET Core 3 and PS7! You will see the light.
What's new in 7 of interest?
https://redmondmag.com/articles/2019/04/05/powershell-7-coming.aspx?m=1
-
@Obsolesce said in Shell Speeds, Bash and PowerShell:
@scottalanmiller said in Shell Speeds, Bash and PowerShell:
@Obsolesce said in Shell Speeds, Bash and PowerShell:
Just wait until .NET Core 3 and PS7! You will see the light.
What's new in 7 of interest?
https://redmondmag.com/articles/2019/04/05/powershell-7-coming.aspx?m=1
Sounds like basically nothing. Striving for 90% compatibility, but that's a far cry from "able to replace." Other than cleaning up some branding and normal invisible updates, nothing of note coming as you'll still be running PS and PSC side by side with PSC indefinitely "not ready yet" to take over
-
@scottalanmiller said in Shell Speeds, Bash and PowerShell:
@Obsolesce said in Shell Speeds, Bash and PowerShell:
@scottalanmiller said in Shell Speeds, Bash and PowerShell:
@Obsolesce said in Shell Speeds, Bash and PowerShell:
Just wait until .NET Core 3 and PS7! You will see the light.
What's new in 7 of interest?
https://redmondmag.com/articles/2019/04/05/powershell-7-coming.aspx?m=1
Sounds like basically nothing. Striving for 90% compatibility, but that's a far cry from "able to replace." Other than cleaning up some branding and normal invisible updates, nothing of note coming as you'll still be running PS and PSC side by side with PSC indefinitely "not ready yet" to take over
Getting better, exciting changes! I'm looking forward to everything. It's all good stuff IMO.
-
@Obsolesce said in Shell Speeds, Bash and PowerShell:
@scottalanmiller said in Shell Speeds, Bash and PowerShell:
@Obsolesce said in Shell Speeds, Bash and PowerShell:
@scottalanmiller said in Shell Speeds, Bash and PowerShell:
@Obsolesce said in Shell Speeds, Bash and PowerShell:
Just wait until .NET Core 3 and PS7! You will see the light.
What's new in 7 of interest?
https://redmondmag.com/articles/2019/04/05/powershell-7-coming.aspx?m=1
Sounds like basically nothing. Striving for 90% compatibility, but that's a far cry from "able to replace." Other than cleaning up some branding and normal invisible updates, nothing of note coming as you'll still be running PS and PSC side by side with PSC indefinitely "not ready yet" to take over
Getting better, exciting changes! I'm looking forward to everything. It's all good stuff IMO.
Better, yes. Just seems to move like molasses. Such tiny changes, they have a gap to breach and they need to just bite the bullet and do it.
-
@scottalanmiller said in Shell Speeds, Bash and PowerShell:
@Obsolesce said in Shell Speeds, Bash and PowerShell:
@scottalanmiller said in Shell Speeds, Bash and PowerShell:
@Obsolesce said in Shell Speeds, Bash and PowerShell:
@scottalanmiller said in Shell Speeds, Bash and PowerShell:
@Obsolesce said in Shell Speeds, Bash and PowerShell:
Just wait until .NET Core 3 and PS7! You will see the light.
What's new in 7 of interest?
https://redmondmag.com/articles/2019/04/05/powershell-7-coming.aspx?m=1
Sounds like basically nothing. Striving for 90% compatibility, but that's a far cry from "able to replace." Other than cleaning up some branding and normal invisible updates, nothing of note coming as you'll still be running PS and PSC side by side with PSC indefinitely "not ready yet" to take over
Getting better, exciting changes! I'm looking forward to everything. It's all good stuff IMO.
Better, yes. Just seems to move like molasses. Such tiny changes, they have a gap to breach and they need to just bite the bullet and do it.
I wouldn't call them tiny, it also depends on .NET Core 7.
It's still moving faster than some software
-
I skipped the discussion, but I see two main points here:
- Plenty of DSLs support both Windows and Linux, they are made for automation, use them.
- For anything more complex, where you actually have to script and a DSL gets too clunky, bash/powershell also tend to get too clunky and hacky to be useful. I simply revert to Python - it runs on both platforms and is much more powerful than either bash or powershell.
-
@dyasny said in Shell Speeds, Bash and PowerShell:
bash/powershell also tend to get too clunky and hacky to be useful. I simply revert to Python - it runs on both platforms and is much more powerful than either bash or powershell.
Absolutely, I never use BASH for any serious automation. Nor PowerShell. Neither is a good tool once you go beyond "shell" functionality.
-
@scottalanmiller said in Shell Speeds, Bash and PowerShell:
@dyasny said in Shell Speeds, Bash and PowerShell:
bash/powershell also tend to get too clunky and hacky to be useful. I simply revert to Python - it runs on both platforms and is much more powerful than either bash or powershell.
Absolutely, I never use BASH for any serious automation. Nor PowerShell. Neither is a good tool once you go beyond "shell" functionality.
What's beyond shell functionality? I don't think I've come to that point or had a need to?
-
I think if rather use node for things past Bash or powershell. By design I think it would be a better performer than Python.
-
@Obsolesce said in Shell Speeds, Bash and PowerShell:
What's beyond shell functionality? I don't think I've come to that point or had a need to?
Once you are writing anything extensive. Long scripts where you'd want to move past vi and whipping it up in an hour or two. Once you move from "quick couple things strung together" to "writing software to manage automation".
The ability to be a good shell basically guarantees you can't be good at automation. BASH and PS are both good examples of this. They try to do too much, and it encourages people to use them for too much. PS especially.
-
@Obsolesce said in Shell Speeds, Bash and PowerShell:
I think if rather use node for things past Bash or powershell. By design I think it would be a better performer than Python.
Not at all. First, Node seems fast because it's not a language, but a large framework. Python isn't really slower than Node, it might be faster in fact. But Node has a singular design purpose and that's not system automation. And if you use it for system automation, none of those performance perceptions apply and I think you'd be sad with how slow it is. In fact, Node can't thread last I knew, making it way, way slower than Python. One of the reasons we like Python for automation is that it has great performance. Plus it is easier to write and maintain. So layers of advantages.
Node is purpose built for making websites and basically nothing else. that doesn't mean it can't do other things, but it's designed totally around that use case. And scalling horizontally.
Python is already a shell when its REPL is enabled (IDLE) and has a higher performance core, doesn't use Prototyping, doesn't require objects, and is mostly focused on scripting as its core function making it basically the ideal automation language.
-
Python speed varies a lot by how you use it. Python has the ability to call C libraries, giving it a lot of performance in that way. Python can also run on .NET or Java, both of which are extremely fast.
-
I was basing that off of these points, which makes Node seem like the VERY clear winner.
https://da-14.com/blog/python-vs-nodejs-which-better-your-project
-
@Obsolesce said in Shell Speeds, Bash and PowerShell:
I was basing that off of these points, which makes Node seem like the VERY clear winner.
https://da-14.com/blog/python-vs-nodejs-which-better-your-project
Simple way to tell if something is meaningful... do they mention Node (not a language) or JavaScript (language.) If the mention Node, then they are talking about one specific huge framework on top of JavaScript - and just talking about building web apps. So their talk of scaling and performance doesn't apply to our conversation of automation here.
It's not apples to apples. JS and Python would be a direct comparison. You'll notice in the article that they mention how Python doesn't do some things natively but Node does... that's because Node IS the extension for those things for JS. JS doesn't do them either. So the are cheating by selecting a specific setup of JS to compete against a generic setup of Python.
-
If you are making a website, expect that Node will be way faster. If you are automating, assume Python will be.
-
If we look at the Python vs Node article and flip it on its head, we'd see the opposite.
Instead of assuming we want async calls (something automation can't use) for performance and scalability, we should assume that we want threading. Async is designed for server performance (something listening), threading is designed for processing and "calling out" from a client. Python threads easily, Node doesn't support it at all. Python can do async, it's just not native. Node is an async platform for JS.
So if we look at it from our purpose, Python has the huge advantage out of the gate whereas Node is missing a lot of the basics.
-
@scottalanmiller said in Shell Speeds, Bash and PowerShell:
If we look at the Python vs Node article and flip it on its head, we'd see the opposite.
Instead of assuming we want async calls (something automation can't use) for performance and scalability, we should assume that we want threading. Async is designed for server performance (something listening), threading is designed for processing and "calling out" from a client. Python threads easily, Node doesn't support it at all. Python can do async, it's just not native. Node is an async platform for JS.
So if we look at it from our purpose, Python has the huge advantage out of the gate whereas Node is missing a lot of the basics.
Ah ha, I see exactly what you mean. Yeah that clears it up.
-
In reality, neither is a screaming fast language. It's just that they are both excellent at specific tasks. Python rocks at automation and scientific programming (but nothing beats R or Fortran for science.) Node rocks at stateless web apps. If speed alone were the concern, C would win, with Java right behind. And languages like Go being pretty high. But those types of languages tend to be very poor for automation writing.