Fish is setup out of the box while ZSH is minimal OOTB and can be extended with all sorts of themes, plugins, etc. They both offer syntax highlighting, tab completion, fuzzy search, as well as many other QoL features over bash. The main upside of ZSH is that it’s compatible with the same POSIX scripts bash supports, while fish uses their own scripting thing (that can be easier to read and simpler, yes, but you lose compatibility with a lot of existing scripts!)
In my opinion, I would say fish and ZSH are awesome for most people, while ZSH has the edge when if you use a lot of scripts, and fish is better if you don’t want to configure anything (though oh-my-zsh, which is very simple to install, puts ZSH nearly on par with stock fish)
I have been using fish for years; no issues running scripts with shebangs. If you’re running something janky or homemade that lacks them, you pipe it into a new bash instance bash | ./...
Doesn’t the shebang at the top of a bash script negate that compatibility issue anyway?
Yes. Fish is equal to ZSH when running scripts. But has more trouble if you are writing scripts you want other people to run (this is quite rare these days though, maybe just use a proper programming language if you want to write/share software).
Fish is worth trying out! I have used both fish and ZSH both for around a year. Fish is a better experience overall. You don’t have to maintain a bunch of config files for the same level of features and it is generally faster.
Fish is setup out of the box while ZSH is minimal OOTB and can be extended with all sorts of themes, plugins, etc. They both offer syntax highlighting, tab completion, fuzzy search, as well as many other QoL features over bash. The main upside of ZSH is that it’s compatible with the same POSIX scripts bash supports, while fish uses their own scripting thing (that can be easier to read and simpler, yes, but you lose compatibility with a lot of existing scripts!)
In my opinion, I would say fish and ZSH are awesome for most people, while ZSH has the edge when if you use a lot of scripts, and fish is better if you don’t want to configure anything (though oh-my-zsh, which is very simple to install, puts ZSH nearly on par with stock fish)
ensuring fish runs shell scripts properly is pretty trivial - it just runs them in the builtin shell and shows the results
i don’t do anything very special in the shell so fish’s usability features just make life easier
been using it since 3.x and have no complaints
Doesn’t the shebang at the top of a bash script negate that compatibility issue anyway?
I remember years ago a YouTuber (I think it was Distrotube) making that same point about Fish, and I had this same thought back then lol.
Although, the Fish scripting looks interesting. Might switch my default shell to Fish on my laptop for a bit, maybe I’m underestimating this lol
I have been using fish for years; no issues running scripts with shebangs. If you’re running something janky or homemade that lacks them, you pipe it into a new bash instance
bash | ./...Yes. Fish is equal to ZSH when running scripts. But has more trouble if you are writing scripts you want other people to run (this is quite rare these days though, maybe just use a proper programming language if you want to write/share software).
Fish is worth trying out! I have used both fish and ZSH both for around a year. Fish is a better experience overall. You don’t have to maintain a bunch of config files for the same level of features and it is generally faster.
I dunno, just stuff I’ve heard before. For 99% of people both are awesome, it’s just preference!
I’d say fish not being posix compatible is an upside of fish
posix shell is full of shitty footguns, overcomplicated almost obfuscating syntax sugar and insane defaults
not having to deal with that is hell of an upside
but i also see the point of wanting to adhere to the standard