Comparing PowerShell to Linux User Manipulation
-
@Obsolesce said in Comparing PowerShell to Linux User Manipulation:
This is why I said from the beginning it's not apples to apples between PoSh and Bash.
It can be, though. Because there are times where the shells themselves are what we are comparing. And the discussion I had been having originally, was purely about the shells. Things like startup times and reaction times, for which PS is extremely slow compared to Bash. When you put them into an apples to apples mode, just using them to do things like a remote connection or to run a command, PS is extremely slow. When we are comparing their functionality, they are used for generally very different things. But there are absolutely, like what we were initially discussing, when they are identical and the underlying performance differences are very visible.
-
As far as I know, robocopy is still the best file copying/syncing utility included in Windows, and you have to parse the output to get any anything useful back to work with in Powershell.
^ another example of Windows administration mismatch
-
@flaxking said in Comparing PowerShell to Linux User Manipulation:
As far as I know, robocopy is still the best file copying/syncing utility included in Windows, and you have to parse the output to get any anything useful back to work with in Powershell.
^ another example of Windows administration mismatch
Interesting, so it outputs in text, not objects? Robocopy is definitely the best, never realized that PS didn't fully integrate.
-
@scottalanmiller said in Comparing PowerShell to Linux User Manipulation:
@flaxking said in Comparing PowerShell to Linux User Manipulation:
As far as I know, robocopy is still the best file copying/syncing utility included in Windows, and you have to parse the output to get any anything useful back to work with in Powershell.
^ another example of Windows administration mismatch
Interesting, so it outputs in text, not objects? Robocopy is definitely the best, never realized that PS didn't fully integrate.
Robocopy isn't PowerShell or a PowerShell cmdlet, function, or module. AFAIK, that's where you get to work with objects.
However, you can really easily parse the output of Robocopy and turn it into a really nice and usable object
-
@Obsolesce said in Comparing PowerShell to Linux User Manipulation:
Robocopy isn't PowerShell or a PowerShell cmdlet, function, or module. AFAIK, that's where you get to work with objects.
But wasn't the point that PS was needed to do those things because that is how "Windows" works? If PS only does those things because that is how PS works, then PS is total garbage. It doesn't matter that it isn't part of PS, it's part of Windows, hence should follow the Windows rules.
-
And, likewise, if it is part of Windows, then it is PowerShell's job to interact with it effectively.
-
@scottalanmiller said in Comparing PowerShell to Linux User Manipulation:
@Obsolesce said in Comparing PowerShell to Linux User Manipulation:
Robocopy isn't PowerShell or a PowerShell cmdlet, function, or module. AFAIK, that's where you get to work with objects.
But wasn't the point that PS was needed to do those things because that is how "Windows" works? If PS only does those things because that is how PS works, then PS is total garbage. It doesn't matter that it isn't part of PS, it's part of Windows, hence should follow the Windows rules.
Maybe you didn't understand.
Robocopy isn't Windows.
Robocopy works great from PowerShell, but Robocopy itself is it's own separate tool in which all logging is text based. It's not at all the same as working with Windows API or an app like Excel...
-
PowerShell has its own way to work with files built in, even though Robocopy is easier to use.
-
@Obsolesce said in Comparing PowerShell to Linux User Manipulation:
Maybe you didn't understand.
Robocopy isn't Windows.It is. Robocopy is part of Windows, and a very important part of it. Far moreso part of Windows than say rsync is part of RHEL. Robocopy is made by Microsoft and part of the base of what makes Windows Windows. It is the same or more a part of Windows than PowerShell is.
-
@Obsolesce said in Comparing PowerShell to Linux User Manipulation:
PowerShell has its own way to work with files built in, even though Robocopy is easier to use.
That's good that PS has that, but PS is also there to be a part of the Windows ecosystem, not an alternative to it. And PS doesn't really have its own, does it? It's that there are separate tools and PS just works better with those other tools, that likely aren't as good as Robocopy.
Anything in a CmdLet isn't PowerShell, it's another app, just like RoboCopy is. Just one built more with PS being the calling shell in mind, instead of being a more general part of Windows like RoboCopy.
-
@scottalanmiller said in Comparing PowerShell to Linux User Manipulation:
@Obsolesce said in Comparing PowerShell to Linux User Manipulation:
Maybe you didn't understand.
Robocopy isn't Windows.It is. Robocopy is part of Windows, and a very important part of it. Far moreso part of Windows than say rsync is part of RHEL. Robocopy is made by Microsoft and part of the base of what makes Windows Windows. It is the same or more a part of Windows than PowerShell is.
Robocopy used to not even be included in Windows. Windows was still Windows without Robocopy.
-
@Obsolesce said in Comparing PowerShell to Linux User Manipulation:
Robocopy used to not even be included in Windows. Windows was still Windows without Robocopy.
WAS, but IS not. Everything in Windows, including the kernel, didn't used to be there. All of it is new at some point, but together now, that is what Windows is. If you consider Windows only what was included in the original release of Windows NT 3.1, then PowerShell isn't in Windows or even a Windows application as it won't run there.
Robocopy is Windows as much as anything can be Windows. There is nothing today that can be considered "more Windows" than it. Many things are equally Windows, like NTKernel and CMD. Some things you could argue like Notepad are slightly less Windows because they are in the GUI install only, but I'd not think that that makes a lot of sense. But Robocopy is part of every Windows for a long time, and in every configuration.
-
To extend the logic, if you don't consider Robocopy to be a part of Windows, you have to them say that Windows itself isn't Windows because no part of it would meet your qualification for being a part of Windows and clearly if you don't have a single thing that is any part of Windows, you can't have Windows.
-
It's one thing to barely touch Windows and get by managing it with simple commands and scripts. Sure, I then get the whole PowerShell is garbage band wagon when you just need to create a user or other simple things.
It's a complete different story when you actually need PowerShell to do what you need to do with managing Windows and other Microsoft products/apps and services. At a certain point, it just becomes imposisble to work with anything other than PowerShell. And the way this stuff is, I woudln't want to work with text-based output. That would seriously complicate working with it all. Nobody would do it.
I get it's not as fast as when working wiht a text-based OS and text based shell, but those things are not doing or needing to do all the crap that's behind the curtain, such as dealing and working with .NET framework, registry, com, wmi, adsi, Office, SQL, REST, etc etc... what I had in the screen shot earlier.
Finally, I also get "it should just work like Linux". But the fact is, it isn't Linux. It's something else. And like it or not, it's built the way it is, and it isn't going away.
-
@Obsolesce said in Comparing PowerShell to Linux User Manipulation:
It's one thing to barely touch Windows and get by managing it with simple commands and scripts. Sure, I then get the whole PowerShell is garbage band wagon when you just need to create a user or other simple things.
That's the primary function of a shell and what would determine it's quality.
-
@Obsolesce said in Comparing PowerShell to Linux User Manipulation:
It's a complete different story when you actually need PowerShell to do what you need to do with managing Windows and other Microsoft products/apps and services. At a certain point, it just becomes imposisble to work with anything other than PowerShell. And the way this stuff is, I woudln't want to work with text-based output. That would seriously complicate working with it all. Nobody would do it.
It's chicken and egg though. You want PS because other products suck. Other products suck because PS encourages it. Sure, over time, intentionally making all products difficult to use so that you need special tooling makes that tooling seem like a good idea. But fundamentally, it's too much work and poorly designed. The reality is, though, nothing needed cumbersome PowerShell until we had cumbersome PowerShell. PS didn't solve a Windows problem, Windows created problems to justify PowerShell.
-
@Obsolesce said in Comparing PowerShell to Linux User Manipulation:
I get it's not as fast as when working wiht a text-based OS and text based shell, but those things are not doing or needing to do all the crap that's behind the curtain, such as dealing and working with .NET framework, registry, com, wmi, adsi, Office, SQL, REST, etc etc... what I had in the screen shot earlier.
Those are things you only need once in a while, not all the time. Why do you need SQL or Office or .NET when not working with those things? You don't.
-
@Obsolesce said in Comparing PowerShell to Linux User Manipulation:
Finally, I also get "it should just work like Linux". But the fact is, it isn't Linux. It's something else. And like it or not, it's built the way it is, and it isn't going away.
The point was... it has problems. It is slow. It has design flaws that aren't being addressed and cause it to be noticeably cumbersome for simple tasks - slow to the point of being slow from a human perspective. Like it or not, that's a problem with PowerShell. That Microsoft has worked their butts off to come up with excuses to justify it being bad today isn't relevant. The point that started all of this is that for shell tasks, PS is noticeably slow, and it is. Very much so. And easy to demonstrate.
The long discussion came from you trying to say it wasn't slow. Then we had to break down what the shell was versus what are things called by it, what is being measured, etc. Then we started looking at the comparisons of shells.
The point was not that PowerShell isn't needed, nor that Microsoft hasn't worked to create requirements to justify it, but simply that it doesn't do shell duties as well as alternatives and is very slow when it shouldn't be.
-
Meh, regardless of what it is and what you tihnk of it... I really enjoy scripting, automating, and building with it... It's fun, and it's a nice experience for me working with objects and all. I don't use it for simple tasks, so maybe that's why.
I'm not saying I enjoy it more or less than something or anything else, I'm just saying I really enjoy working with it and want to take it further. It is in the future of all that is Microsoft, so why not?
I also will be doing more with Node and JS, and I am pretty sure Java. I'm super excited about that.
-
It also seems that most of the justification for PowerShell isn't that it does a good job, but that there isn't something better. A lack of something better doesn't make what remains "good". That it is "all we have" is fine, we are stuck with it. But you should never argue that something is "good" or "fast" based on no one bothering or caring to make something good or fast for the platform. Bash competes against many other shells, including PowerShell, on Linux and comes out looking good. Not the best, zsh is definitely better and fish is good, but it comes out looking pretty decent. It blows PS away when compared apples to apples - calling the same tooling. It's faster and easier and more efficient (and stable.)
Bash is considered "good" when competing in a field of shells trying to unseat one another. Bash itself unseated csh, ksh, tcsh, and just shell over the years. It's held up to scrutiny in an open field.
PowerShell has had to have its ecosystem locked to it to even get people to use it. It didn't work on existing platforms and to be usable needed the platforms to conform to its quirks and problems. It only gets used from a lack of alternatives, not by beating them in competition. From a software perspective, it uses a monopoly stance to get used, rather than allowing quality to rise to the top.
I think what is important is understanding that PowerShell is not impressive overall. It has some cool features, it is improving, but overall, it's a pretty weak shell offering and there is a reason that it is available universally yet people think it would be silly to adopt it anywhere that it is not required - it just isn't good enough to compete in any open competition. It's not even close to being competitive. Accepting that it has to be used, sure, but that was never in question. Likewise, I think it has to be accepted that it's just not a good shell and reflects extremely poorly on the Windows ecosystem that this is the only viable alternative provided after decades of better options being known about and eschewed.