
Node.js Is a Salad Bar: On Boilerplate, Frameworks and Usability - modernserf
https://medium.com/@modernserf/node-js-is-a-salad-bar-74ec01bd4390#.s6k69x6rp
======
tomdale
I think modernserf made some great points here, but didn't take the argument
to its logical conclusion: just use a (non-bespoke) framework.

    
    
      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?
    

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.

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.

The browser now supports offline storage, Service Worker, WebGL and more. But
taking advantage of those things requires _code_. 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 _reason about the entire system_.
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.

