I think modernserf made some great points here, but didn't take the argument to its logical conclusion: just use a (non-bespoke) framework.<p><pre><code> We might not be able to provide novice users with One True Framework, but we need to do better than boilerplate, both for their sake and for our own. If we can’t find a higher level abstraction to work with our own frameworks, how are we sure that we understand it ourselves?
</code></pre>
While competition is good, I think modernserf too quickly accepts that there can't be a One True Framework for the web, or at least a handful. Windows, Mac OS, iOS and Android all have One True Framework, and their app ecosystems are doing well. We would be lucky to elevate the caliber of the average web app to that of the average iOS app.<p>In fact, it's exactly this received wisdom—that the web is open, and therefore each app should handpick its own bespoke stack—is, in my opinion, the very thing setting us back. We spend so much time integrating pieces that were never designed to work together that we both waste time and hit a limit in the capabilities of the browser we can take advantage of.<p>The browser now supports offline storage, Service Worker, WebGL and more. But taking advantage of those things requires <i>code</i>. But not too much, because you need to preserve the instantaneous the web is known for. To balance this constraint, we're going to need even more tools that help us parcel up our application into little pieces that can be delivered on demand, then cached as aggressively as possible on the user's device. All of this requires code, and more importantly, it requires code that can <i>reason about the entire system</i>.
At some point, we're going to get to a place where bespoke frameworks simply don't let you build the caliber of app that you can with Ember or Angular 2—there's too much to do, and too much of it relies on a shared understanding of the entire system. When that happens, I hope the web community can finally accept that shared solutions are the only way to compete with native apps.