Fish is nice, but syntax difference is a no-go for me.
I frequently log into different servers that usually use bash.
I miss simple things like alias when I temporary want to assign long commands to a shorter alias.
I still script in bash and I still know bash. It’s just not that big an ordeal to code-switch between the two.
It turns out that it’s pretty annoying to have completely different fundamental syntax for something like variable assignment when so many things are the same. If I’m living in bash scripts half the time anyways, it’s just fundamentally annoying to accidentally type “foo=123” into fish and to get an error.
If I could use fish without set, maybe I would
I started using fish on a dare from a coworker who thought it would be funny. Joke’s on them, it’s been five years and I still love it. Started using starship this year and agree with you.
Funnily enough, the startup delay of oh-my-zsh is exactly what prompted me to try out fish and eventually starship on top. I have not looked back as you say!
My fish config is maybe 5-10 lines just starship, zoxide, direnv.