That was the exact opposite with fish. I had already gotten fairly well first with bash by the time I started using it, and the way fish did it was just super counterintuitive to me.
I couldn’t get into the overall design of how it looked and I disliked how command substitution and the built in’s worked, Combined with the fact that it’s a lesser used shell, so there’s less information available on it. I just couldn’t do it.
You brought up a point though. That makes me ask. You must not have to share your scripts with anyone then, right? Fish has a very small user base in comparison to ZSH and Bash and when I make a script that’s more advanced I tend to want to share it with my friends and having them install a whole new shell just to run a script is just not helpful to me. ZSH is close enough to bash in compatibility that, generally speaking, if I want to share it, I can use zsh And then convert the minor discrepancies. Where with fish I have to redo the entire script.







zsh actually predates fish by almost 15 years and bash which 16 years while fish shell also ignores every standard known in favor of doing it’s own thing so yes I would say it’s re-inventing the wheel.
Fish is known as what’s called an exotic shell, meaning that it doesn’t adhere to what is considered standard for Linux systems, which would be POSIX compliance. Now most alternative shells have partial compliance, not full compliance. But fish didn’t have any compliance. It didn’t attempt it. Like you mentioned, its use case was meant to be an interactive shell. So scripting on it was a back burner project.
If it works for you, then that’s good. I tried it, hated the lack of information available for it, and hated the way that it didn’t follow standards. And at the end of the day, anything I made for it was exclusively for me due to the fact that I could no longer share configurations or chains with anyone else because they did not have fish shell. I’m sure it works for some but it didn’t fit my use case anywhere