Earlier quoted context omitted.
About 98% of common POSIX shell usage is covered by fish, right down to identical syntax. (Not everything is.) Biggest tip for fish switchers: set fish as your terminal's shell instead of changing your login shell.
what's the difference between the two for the non initiatives?
By default your terminal program uses that, but most terminals let you override that to be something else.