Ranked in these QuestionsQuestion Ranking
Pro Super customizable
There are a ton of plugins that come with it for many common tools and OS's.
Pro Easy to extend
It is super easy to write additional plugins or themes for.
Pro Great enhancements
The provided enhancements to zsh just hit the spot.
Pro Easy to understand config
The configuration is very well documented and makes it easy to edit.
Pro Cross platform
Can be used by zsh on Linux, Mac or under Cygwin on Windows.
Pro Simple installation and updates
A user doesn't have to be particularly technical to benefit from oh-my-zsh. You run a simple command to install and it asks you if it may check for git updates on a regular basis. You give up a bit of control but you get a tremendous benefit for very little individual effort.
Pro Updates over Git
This provides a robust update mechanism with full version control. That means that no custom mechanism needs to be implemented for upgrades of the user profile. It also means that your own modifications can be preserved while still allowing upgrades. And it means that you can downgrade at any time to any previous revision if anything doesn't work right with the new version.
Con Major performance issues
It's not unusual to wait >1 second to initialize a new shell.
Con Updates interrupt your flow
The update check triggers on zsh launch, so if you leave your terminal open, you need to manually check for updates, or (most annoying) when you launch your terminal, sometimes you'll need to go through the update wizard before you get to your prompt.
Con Updates over Git
Because it updates over Git, if something breaks in an update you will need to use Git-fu to revert to an older version.