I really love fish and the philosophy behind it, especially the "configurability is the root of all evil" attitude. Makes for a well though out software that is a true pleasure to use.
I love that philosophy too. If there's too many knobs to turn I'm going to constantly fiddle with them. The only things in my config.fish are calls to scripts to setup iTerm 2 integration and the Starship prompt.
Most of it is nice, but declaring global variables with 'set -gx FOO 123" sucks. Same for "abbr --add g git", why can't it be just "abbr g git" or "set-global FOO 123"?
Exactly. I know a lot of people will disagree but my advice to more junior guys is always get rid of the toys and learn the tools.