I tried to use it as my main shell for a couple days, found it fun and potentially useful, played with its unique features... and eventually uninstalled it and went back to zsh.
For 99.99% of what I use a shell for, Nushell doesn't do anything that I can't do with a regular shell. Maybe just because I'm used to shells/sed/awk/etc.
For the few cases where Nushell could be useful, I can usually do the same thing with Vim/Emacs/VSCode or a trivial Python/Ruby script.
What if someone starts from a clean slate. Which shell is better?
That is the question. Old habits hold us back from progress in usability. Eventually if one system is better it should completely replace the old system. But only if it's better. What one power user deems as "useful" according to his own usage patterns shouldn't be a metric for measurement.
I haven't played with nushell yet, but it actually seems more powerful then python for shell tasks. All the data structures are catered towards easy visualization and parsing parameters related to a shell. Python does not have such convenience.
> What if someone starts from a clean slate. Which shell is better?
Then they learn the better and end up having to learn bash anyway coz that's what runs on remote machines.
There is also not that much to be gained. Common easy tasks might be easier to learn but just few percent faster in the end. Harder ones are faster by one-off script in "real" programming language most of the time. Harder repeatable one should never be written in shell or shell-like language because it is just a terrible one to write any real programs.
Also if you really spend that much time gnobling in shell you'd be FAR better off investing time into learning configuration management tools.
Is that actually still an issue these days with Docker containers and what not? How often do you access a remote server via SSH where you share an account with your colleagues and cannot install another shell next to bash? (So that bash could still be the default but you could switch on the fly.)
I think the problem is more about friction. While it might be possible to install another shell on every remote server you work on, are the features really worth the trouble?
Also, I've sometimes had to work on remote boxes on an internal-only network, with no outside internet access. In that case installing anything new is even more of a pain, so it's easier to work with the defaults as much as possible.
That said, I'm all for learning new tools. Progress couldn't be made if everybody just stuck with the old. But there's always a trade-off to be made between time investment into new tools vs. just getting your work done with the old ones.
From a clean state almost everything is better than Bash. I don't think many people seriously say that Bash is good. We use it because of the insane network effects that come from it being preinstalled almost everywhere (except Windows).
The question is not "is nushell better than Bash" - it obviously is. The question is "is nushell better enough that you are willing to install it on every system you use, deal with naysaying colleagues and idiots that have been brainwashed into thinking Bash is great, learn a new tool, deal with all the incompatibilities with software that assumes everyone uses Bash, etc. etc."
As much as I hate Bash I would say it isn't that good. At least currently. If you're willing to install a new tool to run your scripts then there are better options, e.g. Deno. If it catches on and gets installed by default in more places in future (hopefully!) then that might change.
Basically I would say for interactive use Bash is not great but fine. For scripting use you shouldn't use Bash anyway.
>If you're willing to install a new tool to run your scripts then there are better options, e.g. Deno
A shell scripting language should also have a sort of convenience that allows the user to easily navigate and manipulate the OS via repl commands. Javascript while definetely a more powerful scripting language lacks the power of a repl OS command prompt.
Bash at the very least has the property of being good as a UI, even though it is clearly a horrible scripting language.
So nushell in this sense unionizes the best aspects of both worlds. Powerful UI, powerful scripting.
Fish is that shell for me. I tried nushell and zsh. zsh required a bunch of setup and nushell was too young.
Whereas fish has really great defaults and enough of support to just go and have fun.
Have you tried oh-my-zsh? It's what got me to install zsh on all my servers, even at work. Just run their setup script, let it change your default shell and set your preferred theme in the config.
Unfortunately I felt the same way. I'm probably their prototypical target audience (neovim user, I stay in the terminal 99% of the time) and I couldnt justify switching over to nushell full time. I wish they didn't change the syntax too much - there's still tons of scripts and commands that work on zsh or bash and are used in normal work flows.
I've never seen nushell as a daily driver -- more as a data exploration tool. Have a random export you want to go splunking in? `nu` from your current zsh session and go wild. When you're done, ^D back to your main zsh session, job done. Whereas `jq` is only useful for json, and `xsv` is only useful for CSVs, `nu` offers uniform syntax for exploring many different formats and producing structured data out at the end as well. Neat!
This was precisely my experience as well. It was magnified by the burden of having to rewrite various zsh scripts and parts of my config that I've cultivated over a decade. I thought Nushell was _neat_, but not neat or useful enough spend time migrating my stuff.
For 99.99% of what I use a shell for, Nushell doesn't do anything that I can't do with a regular shell. Maybe just because I'm used to shells/sed/awk/etc.
For the few cases where Nushell could be useful, I can usually do the same thing with Vim/Emacs/VSCode or a trivial Python/Ruby script.