In a way, this is cool. But I am also confused. Why does a shell include commands? Is this the beginning of a new type of distribution? A new type of GNU perhaps? Probably not. But I am not completely following what this provides that the two projects independently would not.
I presume the reason they do it is that the premise of Nushell is that it uses pipes of structured output instead of simple text streams. That means that they need all the tools to output datas in that form. They could include wrappers for all OS provided binaries and handle the conversion in those wrappers, but that makes you incredibly fragile to minor output or flags changes, and in many cases those wrappers would end up being more complex than the complex than the commands themselves.
One benefit is portability. Writing a script utilizing those commands won't depend on those tools being available, only the shell. Another potential one is performance. In the specific case of nushell which is object-based it may also needed for piping object-data.
It's actually something that bothers me about nushell. The assumption seems to be that you have to parse the output of external commands. I think that ideally there should be some metadata that an executable could have to indicate that it can output structured data and nushell could pick it up without the user having to explicitly parse it. That way you could write commands that work on other shells but work better on shells that understand structured data.
Sort of. In pwsh on Linux, ls and cp are the same binaries you'd call from bash. The Powershell equivalents, aliased to gci and copy, are implemented in Powershell, but not part of the shell, they are modules. Some core modules ship with the shell, everything else comes from the package manager (Install-Module). There is a very small set of commands implemented directly in the shell - Import-Module, e.g.
Every command is implemented in a module, it's just that pwsh ships with several core modules.
I'm a seeming nobody (hurrah new HN accounts) but I cannot express how much excitement I have for nushell, and this only intensifies it. Practical, and progresses towards resolving one of my only complaints with nushell currently. Don't sleep on nushell. I've never regretted reaching for it. You think jq is 'good', but only because you haven't nushell. Maybe it's the (insert tool that gives me my exact dev env on any Linux-y machine I can walk up to) but nushell is invaluable to me. I was shocked the other day when tired-me wrote a shell script and started employing my usual bash-isms before changing the shebang to nushell and embracing serenity. Mad respect for JT and the folks that JT has attracted.
mongol|2 years ago
lgg|2 years ago
llimllib|2 years ago
forgotpwd16|2 years ago
kybernetikos|2 years ago
kermatt|2 years ago
I'd like to think in part for us poor souls who must work on a Windows machine but are used to working in a Linux shell.
dubcanada|2 years ago
forgotpwd16|2 years ago
psd1|2 years ago
Every command is implemented in a module, it's just that pwsh ships with several core modules.
38|2 years ago
https://wikipedia.org/wiki/Jamie_Zawinski#Zawinski's_Law
unknown|2 years ago
[deleted]
kingwill101|2 years ago
k8svet|2 years ago
mongol|2 years ago
unknown|2 years ago
[deleted]