After 5 years with OmniFocus, I recently converted to Cultured Code's Things. I never thought this would happen because in general I love everything the Omni Group does. Although I love the Omni Group, my allegiance to Getting Things Done is stronger. Up until now, I had believed OmniFocus to be the most faithful implementation of GTD. When Things was first introduced, it didn't have a desktop version, syncing, and other features I felt made it not worth giving serious consideration. Over the years, Things has become feature competitive with OmniFocus and has now become my preferred GTD implementation because of its streamlined workflow.
Things may also have an even more faithful implementation of GTD through its explicit implementation of Someday/Maybe projects and Areas of Responsibility. These are both features you can accomplish in OmniFocus by other means, but I find that explicitly naming them keeps one focused on what you are trying to accomplish. I also believe that not having to create these features from more general purpose elements like folders or contexts is a major contributing factor to Things's workflow being more streamlined.
In my switch from OmniFocus to Things, the greatest area of improvement for me has been how Things handles reviews. GTD officially recommends a weekly review of projects, but Things makes it easy to review projects more frequently. In OmniFocus, you have to remember to put it in review perspective once a week. Things on the other hand automatically displays a very easy-to-use daily review the first time you look at it each day. Things's daily review shows tasks and projects which have been scheduled. It is important to note that scheduling something for a day is different from it being due on a day. During the daily review you have the option of putting the task or project on Today's agenda or putting it off until a future date. Putting something on Today's agenda is a single click and putting it off is as little as 2 clicks.
Things's desktop user interface is more modern and in line with current design trends on the Mac when compared to OmniFocus. OmniFocus relies heavily on a floating inspector panel to edit the properties of tasks and projects. Things on the other hand is largely a single window interface application which makes great use of drag and drop. Many equivalent attributes which require being edited in the inspector in OmniFocus can be updated quickly through simple drag and drop in Things.
Another area where Things shines is in what happens when you inevitably get behind. Anecdotally, I can tell you that I am able to clean up overdue tasks much quicker in Things than I can in OmniFocus. It also seems like you are less likely to get behind because of how Things's Today view works.
I don't think I'm alone in my tendency to optimistically over-schedule what I plan to do every day. What happens in Things tomorrow when you don't do tasks that are on Today's agenda? They're still on Today's agenda! To me this seems like what you want most of the time.
In OmniFocus you have several options for doing something on a specific day. The most obvious is to make it due on that day. If you don't do it on that day it becomes overdue and you're going to have to enter a new date or soon you'll be looking at dozens of red overdue tasks. Another option would be to have a task start on a specific day. In my opinion, just having a task start on a specific day does not bring it to your attention enough in OmniFocus because it can still be buried in a project and/or folder. You could also partially emulate the way Things's Today view works in OmniFocus through the use of flagged tasks, but it doesn't quite work as well.
OmniFocus's flagged task feature, which has no specific recommendation of best use, is a great example of what is probably the core problem with OmniFocus: it's just too flexible. In OmniFocus you can create custom perspectives. There are sequential, parallel, and single action projects. You can assign a physical location to a context on a mobile device but not on the desktop. All dates also have a time associated with them. I've also struggled with what the best use of contexts in OmniFocus is. It can all be a bit overwhelming.