> How do people actually get anything done when it's so hard to build a stable foundation for anything?
For me it's a matter of not chasing the latest hot tech, and instead using the right tool for the job and sticking with it.
I also avoid using kitchen sink style frameworks. I'm much happier going vanilla JS and using small light weight libraries that do one thing well. The upshot to this is that you can often swap out a library with a newer one without a complete application rewrite (something that can't be said of frameworks).
In principle I like this approach but there are advantages with going with the larger frameworks too. For example, if I build something with Angular, I can take advantage of all the components, tutorials, SO posts etc that the community has generated. If I roll my own solution from a handpicked collection of third-party libraries I forfeit all that. I was until very recently leaning towards using Angular but now that they've announced that Angular 2.0 is practically a rewrite that also seems like a dead end.
At the moment I'm rooting for Polymer/Web Components, even though I'm not sure I'm on board with all their design decisions, if only because it seems to be likely to generate enough consensus to be a stable platform to build on for the next several years. But even that isn't something I can actually use today to get work done.
For me it's a matter of not chasing the latest hot tech, and instead using the right tool for the job and sticking with it.
I also avoid using kitchen sink style frameworks. I'm much happier going vanilla JS and using small light weight libraries that do one thing well. The upshot to this is that you can often swap out a library with a newer one without a complete application rewrite (something that can't be said of frameworks).