title: Why should the observer pattern be deprecated?
body: <p>I've noticed that my dependency injected, observer-pattern-heavy code (using Guava's <a href="http://code.google.com/p/guava-libraries/wiki/EventBusExplained" rel="noreferrer">EventBus</a>) is often significantly more difficult to debug than code I've written in the past without these features.  Particularly when trying to determine when and why observer code is being called.</p>
  <p>Martin Oderski and friends wrote a lengthy paper with an especially alluring title, <a href="https://infoscience.epfl.ch/record/148043/files/DeprecatingObserversTR2010.pdf" rel="noreferrer">&quot;Deprecating the Observer Pattern&quot;</a> and I have not yet made the time to read it.</p>
  <p>I'd like to know what is so wrong with the observer pattern and so much better about the (proposed or other) alternatives to lead such bright people to write this paper.</p>
  <p>As a start, I did find one (entertaining) critique of the paper <a href="https://web.archive.org/web/20111116204240/http://java.dzone.com/articles/few-thoughts-deprecating" rel="noreferrer">here</a>.</p>