You make some valid points. I think my issue as a solo, freelance dev is that keeping up with the latest flavors of trending frameworks, and all the attendant updates to them, drains my time and ability to solve real problems. It's not that I sit and write a new MVC pattern every time I build an app. I iterate on what's already in my toolkit, that's been built over a couple decades. Once in a long while that means refactoring or rewriting completely in a different language; I recently ported and cleaned a huge amount of my PHP boilerplate to Nodejs. One issue is that I get paid to write, and I don't want to be stuck in updates and maintenance whenever the team behind a framework announces a ton of breaking changes in the next version, and things become EOL. Bad enough when it happens with languages and databases. Those teams have an incentive to do that, to stay relevant. I need to expect a framework to remain roughly stable for a decade or so, or I'll be forever rewriting a small set of apps. Moreover, my clients expect to have software that runs for 10+ years without needing a full overhaul. Whatever time might be saved at the beginning by using something like React (and I'm not convinced it's that much time) would probably be lost later in keeping up with the changes.
One thing that does cause trouble is having to call a client and say, sorry but some part of our stack is EOL and we need to rewrite it by next year. I don't want to write it and they don't want to hear it. An example of a hole I got myself into was using Bootstrap v4 alpha when I moved most of my UI out of Air and into JS. At this point I have to just accept that some apps will never get an upgrade to a later version of Bootstrap. But it's not critical... it's just a bunch of CSS and there's no reason you can't use v4a forever if it works for your purposes.
I used to build business apps in AS3/Air. 10 years on, some are still in the wild and I have to explain that, look, I didn't predict the death of this language but eventually your app is going to need a rewrite, because I can't even compile it without pulling out an old laptop. And this is where maintaining an in-house framework comes in useful, because I've slowly ported most of my Air components and their functionality into JS. So the rewrite will take less than half the time as the original.
Anyway, I do understand your viewpoint when it comes to hiring and growing a project quickly through a critical phase. Particularly if you're coding for one company and you can afford to switch platforms next year if you succeed. I think it calls for a different approach than what might be good for a solo coder working on in-house employee apps that have to just be stable over long timeframes.
One thing that does cause trouble is having to call a client and say, sorry but some part of our stack is EOL and we need to rewrite it by next year. I don't want to write it and they don't want to hear it. An example of a hole I got myself into was using Bootstrap v4 alpha when I moved most of my UI out of Air and into JS. At this point I have to just accept that some apps will never get an upgrade to a later version of Bootstrap. But it's not critical... it's just a bunch of CSS and there's no reason you can't use v4a forever if it works for your purposes.
I used to build business apps in AS3/Air. 10 years on, some are still in the wild and I have to explain that, look, I didn't predict the death of this language but eventually your app is going to need a rewrite, because I can't even compile it without pulling out an old laptop. And this is where maintaining an in-house framework comes in useful, because I've slowly ported most of my Air components and their functionality into JS. So the rewrite will take less than half the time as the original.
Anyway, I do understand your viewpoint when it comes to hiring and growing a project quickly through a critical phase. Particularly if you're coding for one company and you can afford to switch platforms next year if you succeed. I think it calls for a different approach than what might be good for a solo coder working on in-house employee apps that have to just be stable over long timeframes.
Thanks for the comments.