I read the beginning of the piece about the architecture of the Facebook iOS app and stopped reading in disgust. It’s not true that an app like Facebook has to be that complicated. I don’t think I’ve ever worked on a codebase that could not be simplified. The reality of software development is complexity tends to grow linearly with time passing, either because it’s left unchecked or because it’s glorified. The Facebook app sounds like the latter.