I tried using ZSH. My first experience was using a bunch of plugins like zsh spaceship and having the shell slow to a complete halt.
I then used "stock zsh" and running commands was fine except some autocompletes like git-autocomplete were terribly slow and, for example, did not support `git switch`. This broke my workflow and it was easier to just go back to bash than to figure out how zsh works. I found that autocomplete in zsh is a lot more opaque than in bash. I'm sure there are ways to fix it. My way was to switch to bash.
Actually, maybe it's more the fact that at a prominent tech company:
* zsh is the default shell on a large proportion of servers that have read-only /home, so you can't easily change to your preferred shell
* a training guide that many new developers follows states incorrectly that:
> If you are using Bash and you have the option of using ZSH, you should switch to it. ZSH has additional auto-complete and history features that Bash doesn’t have (but don't worry - those features will not be relevant to this tutorial.)
oh-my-zsh seems to be recommended by a lot of developers in this company, even though:
* the default mechanism to install is curl|sh (there is no Homebrew package) on developer machines which have privileged access to a lot of resources
* installing it via its recommended installation procedure on dev machines would violate company policies, whereas installing bash-completion wouldn't
- Oh-my-zsh has a lot of plugins for auto-completion
- FZF (fuzzy finder), for command history is a big hit (supports bash too)