Whenever I'm reading about some alternative shell and thinking about switching, I'm afraid of losing my proficiency in bash. For better or worse, it's the de facto standard in scripting, so I see it as an important skill. How does this work for those of you who risked and switched? Don't you feel some kind of schizophrenia, or accidental cross-polination typos/mistakes? How does it work when you login to some remote machine, do you have the alt. shell installed everywhere?
I started by switching on one of my machines, then installing it on my main user machines, and then I ended up as a fish committer. I still use bash and zsh every few days and I don't think I've lost any of my skills in that, though they've grown slower. As long as my prompts are recognisably different it's rare for me to make a mistake.
I have the same problem. I mainly use zsh because it's not drastically different from bash but still offers some useful things that bash lacks. But, honestly, we should just bite the bullet and move on to something better. Yes, we will still need to write scripts in bash from time to time and maybe we'll need to look up a few points that we've forgotten but we won't forget the fundamentals and that's all you really need. Well, that and a web search.
If nothing else, I have thousands of lines of my own shell scripts that I don't care to move to a different shell syntax that's not obviously better :)
I'm designing a new shell language which bash can be auto-converted to. This is a lot of work and the plans might change, but the beginnings of it are here:
I switched to zsh 3-4 years ago. I use it only on my local macs ( work & home ).
I will never install it on any remote system, because it doesn't feel right to force a shell to other remote users.
Also how much time do you need something that fancy on a remote prompt? The nice features of bash like [Ctrl-r] works everywhere and the shortcuts ( Ctrl-a, etc. ) are usually the same.
The power that zsh gives me is all about my local dev machine. Things like utilities command completion or `scp remote-server:~/ [tab]` to find a file on a remote machine, or the countless other extras are mostly useful on my local.
I have my dofiles script on github that I run on remote machines I frequently connect to and it installs zsh with my .zshrc, .bashrc in case I switch to bash and all the other dotfiles I got accustomed to. It has been definitely worth the extra trouble. Of course I still use bash for scripting and zsh is not really in the way.