MVC is dead, it's time to MOVE on (2012)
Events are an anti-pattern in my opinion.  They allow the ultimate flexibility, but in essence are worse than global variables.  With events, it is very hard to reason about behavior.  Objects respond to messages from "god" at arbitrary times in an untestable way.<p>Whenever I am tempted to use an event, I ask myself if there a way to solve this problem with delegation or data-binding or some other solution.<p>I fall into the event trap all the time, but when I come across an event-free solution like Angular/Ember or using delegates in Obj-C, I am immediately sold.<p>Any pattern that promotes events as first class ways to communicate are a recipe for hell.  Every Backbone application I have seen is nothing but a messy event hub that mangles arbitrary DOM events with arbitrary Model events, and there is a metric shit ton of code that just re-invents data-binding and delegation.