Fish is fantastic. Some people worry about posix compatibility and stuff, but that only matters if you are copy pasting bash snippets directly to the command line. If you are using bash or zsh as a programming language then you put the code in a file, and run it with that shell - so it doesn't matter what shell you are running.<p>If you love bash or zsh, and are in the habit of building long complex commands on the command line, then stick with bash or zsh. But if you are just running commands fish is far superior. If you are not a bash/zsh/posix expert fish is a cleaner language and you'll learn it more easily. A fully tricked out zsh might do everything that fish does, but it is very slow compared to fish.