Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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.


> coz that's what runs on remote machines

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.


If you connect sidecart to debug it will most likely have bash.

And why you'd need bash fu just for local work ? The most I use it is for old fashioned servers (we have anything from "classics" to few k8s clusters)


>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?

About... almost every day?


> Then they learn the better and end up having to learn bash anyway coz that's what runs on remote machines.

unless you are the person to push for it to be installed on the remote machine.


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.


I have tried oh-my-zsh, but still fish was easier to get started with. Especially with autocompletions.

However oh-my-zsh was pleasant to use as well!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: