It all depends on your goals.
To some, class fantasy is everything. To other performance of certain roles is the main idea.
I can’t help you with the first one. But as for the second…
If you want to tank - pick warrior. No alternatives. Druids and paladins can at most tank some dungeons (and still worse than warrior does).
If you want to heal - pick Paladin, Druid, Priest or Shaman. Every class has a niche.
If you want to be TOP healer, the best of them all - pick priest.
If you want to be the best support - pick shaman or Paladin - they heal a bit weaker, but their strength is in the utility.
Druid is an odd case. You need a couple of them in a raid, but they stack very poorly, and you don’t need more than 2-3. In a dungeon he’s an OK healer, but lack of normal resurrection makes wipes more painful and he’s less desirable than the other 3.
If you want to be at the top of DPS charts - pick Mage, Warrior or a Rogue. All 3 are great.
If you want a simple, reliable but not top DPS class - pick Warlock or Hunter. Their strengths is in useful utility, and they will have no problem finding a spot.
Now we get to a few small odd-balls.
A shadow priest is viable - but you won’t need many of them, and he’s worse than mage/warlock. He does have a useful debuff for warlocks though.
A druid-cat is OK, but will not shine. He’s worse than a rogue even though performs exactly the same role.
A druid-moonkin is basically a buff for casters. His problem lies in low mana and he goes OOM very VERY fast.
Shaman can be a DPS, but it’s mostly something like a support. He doesn’t do much damage, but is OK and buffs melee classes.
Every other class/role combo is pretty much garbage.
Also you can look at the levelling speed. It’s easier to watch a 10-min video on YT than for me to describe it here. In short, hunters-warlocks are great, and warriors-paladins will suffer.