| I'm not saying UNIX and similar system are even the pinnacle of potential operating systems. But they're pretty darn good, and at least at par with, when compared to other existing mature ones. > You should use the right tool for the right job. Agree. UNIX however, has a fundamental file and character based structure. Windows, the opposite. So while powershell and its predecessors are useful in that environment, it's not equally suited to the tasks that bash is used for. So what I'm poking at is that while bash isn't a great tool for interfacing with the service manager, or registry, or policy frameworks and the like (SQL, definitely), powershell is not a general purpose command processor and text manipulator. And on UNIX, whether you like that philosophy or not, that's all you need. I would never want to use a powershell script to move and rename file structures with some rules and variables. > It is okay for small scripts. That's what it's designed for and how it should be used.
If you are talking about libraries or even a lot of functions, or if it's thousands of lines long, other more formal programming languages like Python (and with good debuggers) would be better. But to just bang out an adduser script in 30 minutes, that's where shell is lightweight enough to really shine. Look, typed OO pipelines sound like a good idea, but the negative side is this. For example, to deal with the registry, you have to have purpose built library like https://docs.microsoft.com/en-us/powershell/module/microsoft... that someone needs to write and then everyone has to know. This has to be done for every kind of interface in windows. This is just as complex as Pythons standard libraries or writing C or C++ Win32 code. With the UNIX toolkit philosophy, I have about 20 utilities and builtins to know: shell + awk/grep/sed/cut/etc. And that's it. The cons are #1 efficiency is lower and #2 as pointed out by many folks, a lot of scripts spend a lot of code inline (in different ways) things like how to parse a config file. But back to the article. It's not valid to just presumptively state like a fact that one is better than the other as the argument. And it's really not valid to compare such different tools head-to-head when it's the whole underlying philosophies of their associated ecosystems that are so different. |
I can manipulate text fine with Powershell without having to use other small programs that may or may not exist on the system. I can also interface with parts of the operating system sensibly. I was reading and writing text files a lot easier with Powershell than I ever did with Bash.
> Look, typed OO pipelines sound like a good idea, but the negative side is this. For example, to deal with the registry, you have to have purpose built library like https://docs.microsoft.com/en-us/powershell/module/microsoft.... that someone needs to write and then everyone has to know. This has to be done for every kind of interface in windows. This is just as complex as Pythons standard libraries or writing C or C++ Win32 code.
You seem to think that this is somehow a negative. I think you should be able to rely on an abstractions. I would rather rely on a well defined and understood interface than writing my own script to manipulate a file. The former is obviously less error prone than the other. Any claim to the contrary is a nonsense.
> But back to the article. It's not valid to just presumptively state like a fact that one is better than the other as the argument. And it's really not valid to compare such different tools head-to-head when it's the whole underlying philosophies of their associated ecosystems that are so different.
Yes one is sane and the other one isn't. I've heard most of these (bogus) arguments before. I hate to sound rude, but I honestly fed up of hearing it.