Did I just downgrade my shell?

1 min read

I've lived in a shell for the last 40 years or so, always with a terminal window open.

Changing shells always felt like an upgrade: from sh to ksh, to csh, to tcsh, to bash, to zsh. I used Oh My Zsh for a while but found it slow and bloated, so I wrote my own .zshrc. That was better, but still required regular tweaking.

Recently, I started trying fish. I can't recall exactly why—something I read must've piqued my interest.

No .fishrc? Definitely a downgrade. My zsh configuration was sizeable, with lots of customization, functions, and aliases. I wasn't looking forward to reimplementing most of it.

Then I actually started using fish…

“Oh, it already does that!” became my mantra for the day.

After a few days, I realized it did 99% of what I needed out of the box. I only had to configure the prompt, add a few aliases and abbreviations, and convert a whopping 4 functions.

I also installed fisher, a plugin manager, along with these plugins:

I tried hard to find more things to configure or install, but that was it. If that's what minimalism looks like, sign me up.

Then the real fun began…

I wanted to convert some of my regular shell scripts to fish scripts. Fish syntax is different but in a good way. It doesn't feel as hackish as bash, though there's a small learning curve.

This was the final test: convert my most intricate script. I thought it would fail miserably, sending me back to clunky zsh.

It didn't. It wasn't easy, but it was a valuable learning experience. Change is good, right?

Is there anything I miss from zsh? Yes and no. I'm not missing functionality, but I have to unlearn some ingrained habits.

Who said you can't teach old dogs new tricks?