An interesting article from JJD (an InfoQ stalwart)…
http://www.infoq.com/articles/no-more-mvc-frameworks
And an interesting discussion on Gitter around this topic…
With the SAM pattern, he’s clearly approaching the problem from a server-side engineer’s perspective — the emphasis is on clean abstractions, formalism, clear representation-of-component-state — but he misses why React + RxJS + Cycle.js and potentially Angular2 are a thing: it’s because they allow modern product teams to ship code quickly, performantly, and predictably on the browser (mobile or desktop). In the quad-polar world of browser engines, this is a critical consideration.
For most web apps, productivity depends on the ProductManager and FrontEndEngineer(s) establishing a fast-feedback-loop. Product teams want to ship quickly, validate assumptions, and iterate further. The backend is in service of the front-end and that’s why patterns like Backends For Frontends (BFF) are a thing.
Front-end Engineers expect backends to feed, protect and accept data. And while that sounds really hard to fulfill when one doesn’t control the front-end, let alone anticipate future needs — it is still possible to design artful APIs that deliver the goods. One gets better at this with practice.
Is our current state-of-progress perfect? No. I believe Cycle.js is pointing the way forward for a lot of frameworks — it certainly opened my eyes. I applaud JJD for sharing some bold thoughts, and leveraging Leslie Lamport’s awesome TLA+ in a unique context. In the end, the patterns that prevail will always be the ones that help developers and their teams deliver. For that, they must reflect operational realities.