Porting something like that across a non-backwards-compatible version bump while preserving identical behavior which is sparsely documented and uncovered by unit tests? Starts to be a serious amount of effort quickly.
<3 <3 <3
Indeed. Basically anything in the JS world, except maybe nodejs, will vanish in 5 years. (I'm looking at you, bower, gulp, EmberJS, even the giant dinosaurus jQuery is on the decline, given everyone and their dogs shift to Angular)
Seriously, if one is after long-lived software, choose a solid PHP framework (Drupal 7, for example, is around for 5 years now and probably will be supported for two or three years) or a Java framework, together with a rock-solid database (i.e. no NoSQL crap)...
Hate PHP and Java all you want, but these two languages put backwards compatibility as priority.
And the government could just choose not to use any third party framework.
But to prove your point, people are moving to React, not Angular :-) jQuery is used in almost all Angular apps anyway.
Honestly it might be heavy on new system acquisitions. I tend to think that enterprise lifecycles are too fast, most of the time, but that's because they're frequently driven by vendor licensing policies that make old-but-working systems prohibitively expensive on purpose. (IBM is notorious for this.)
I don't know if there's a name for this already, but I think there's a common fallacy in which people think that a "chuck it and redo it from the ground up" effort will be easier than fixing their existing system's bugs and/or will result in a less-buggy system. But there's a danger in that you're just moving from a situation where you know where all the bugs are, to a situation where you haven't found them yet. I've seen companies that seem to be stuck endlessly in this cycle.
Seriously, though, as far as I can tell, the transition to Python 3 is extremely low on pain. My Perl 5 to Perl 6 transition will be much more interesting, however.
I hate Perl as a programming language, but it does provide stability.