Good read on twitter.
I feel like a lot of popular frameworks could be completely replaced with better
docs about how to build things with platform features and ala-carte libraries.
how it usually shakes down:
"I want to do X."
"Framework Y does X."
"I must learn framework Y to do X."
but there are few resources available for how to do X outside of Y, even when
Y is largely superfluous this documentation problem is compounded by how
popular projects can bring in resources to either pay people to work on docs or
somebody can otherwise build their career around a big bundle of semi-related
features called Y the downside of this phenomenon is when you have a problem
that doesn't quite agree with the assumptions of the core framework, you'll spend
a huge amount of time fighting against those assumptions. often many times more
effort than writing something from scratch.
and the discourse around "from scratch" is that it's just about always more wasteful,
but I haven't found that to be the case. and when you use appropriate decoupled
libraries (that you can easily throw away or swap out), it's no more wasteful than
using a big framework.
with the upside that you can incrementally refactor the stack as your assumptions
change because the components are relatively less coupled. It's a bit of work to set
things up this way, but it's not a huge amount of effort or anything.
the main hurdle is convincing other people to take this more modular approach,
which is very hard to do. partly because something with slick marketing and lots
of usage is considered "safe" even if you know from experience you're going to
encounter huge maintainence burdens later
plus the paternalism of the framing in technology marketing about "teams" along
with the desire to hire around commodity skills and not wanting to spend any
time on training
because this is such a pervasive phenomenon, building things from scratch
(+ala-carte modules) is a less common skill, which shapes perceptions and
makes the status quo stick. but I don't think it's an intrinsically more or less
difficult approach, just different.