I switched to fish shell
Nope. Back to bash.
Posted on in Shell
Update: 5 May 2024
I have come crawling back to bash. Why?
- My interest in system, infrastructure, and developer tooling is growing. I don't see much place for a non-bash shell in that space.
- I have time for only one niche ecosystem in my life. I have already chosen OCaml as it.
- fish is too syntax-incompatible with bash, right down to inline declaration of env vars before executing a command. If I have to recall the fish syntax for every little thing, then it's just not worth it.
Original article
Here, I am putting down my reasons to choose fish
shell for my future self.
All I want is a shell that is
- a first-class citizen on macOS and Linux
- low maintenance, which means
- out-of-the-box or low-configuration autocompletion and fuzzy history search
- adequately supported by third-party tools
I don't use shell much beyond that.
I also don't care much about scripting compabilities as I have never had to share scripts with others. Also, I prefer to write my scripts in typed, FP languages like Scala.
fish
checks all those boxes.
bash
is anything but first-class on macOS now.
zsh
is powerful, and comes with a lot of bells and whistles, most of them do not come out-of-the-box. I need to lug around a few packages (like zsh-completions
) and a lot of configuration. I also need to maintain configuration for fzf
for fuzzy search.
At the very least, I will stop worrying and wasting time in maintaining parity between bash and zsh configs.