They're better now than they were years ago, but yes they're still bad. And they're still second-class citizens for git commands.
Git has been adding more config settings to try to make it less painful, such as submodule.recurse, but that slows down most git-command significantly and the truth is most repos don't actually need to recurse - they just need the top level. So instead people end up writing aliases to try to handle it, which works ok, but it's brittle and people have to know to do it.
And if you have your repo on GitHub, they don't do some simple things that could have made it easier. For example, they could let the repo owner make the git-clone copy-to-clipboard thing have --recurse-submodules in the command you copy, so that cloning will do the right thing. But they don't. I understand why git itself doesn't want to make such things automatic, but GitHub could do it for at least private enterprise account repos.
BTW, I am _not_ advocating whatever this "Git X-Modules" thing is that the link points to. I have no idea what that is, never used it, and don't plan to.
One reason is if you need to launch a subprocess with a timeout but don't want to use up CPU in the python script while that subprocess runs. The regular subprocess module will busy-loop in such cases, consuming CPU, while asyncio's does not.
The docs even warn about this for subprocess and suggest using asyncio to avoid it, although the docs are misleading - it only busy-loops if the timeout is not None, and only when running on Mac/Linux not Windows.
If I recall correctly, for approx two decades in the 1990's and 2000's, ITRON was the most popular operating system in the world by a wide margin. It was more widely installed than MS-DOS, Windows, or anything else. Because it was the OS used by Japanese consumer electronics devices, such as Panasonic and Sony VCRs and DVD players, etc.
You say that like it hasn't been going on since the mid 1990's, when it got deployed.
I'm not blaming BGP, since it prevents far more outages than it causes, but BGP-based outages have been a thing since its beginning. And any other protocol would have outages too - BGP just happens to be the protocol being used.
> Has to be one of the biggest library design blunders in the history of the industry
May I introduce you to std::regex?
Although to be fair, that one's not so much a blunder due to the standard, as it is one of poor _implementations_, coupled with an overly restrictive standardization preventing fixing them.
> being able to create pointer to objects inside the map (I never did that, but do other people really do that?)
Yes, we do it at my day job in several places, where we take advantage of the pointer stability to improve our overall performance a lot. And a much more impactful performance improvement for our overall product, than micro-optimizations of the unordered_map's insert/erase times would achieve.
Think of, for example, multi-index containers. Or an ordered hash-map (one that is both a hash map and keeps insertion ordering).
In such cases you can keep the actual objects in an unordered_map, and only store pointers to the nodes in other containers (e.g., vectors).
Obviously you can achieve the same thing with open-addressing hashmaps, by making the map's nodes unique_ptrs (i.e., creating the actual objects on the heap externally), which is what such hashmaps tell you to do if you need pointer stability.
But you asked if anyone really used pointer stability, hence my answer.
If you use Ninja, you can create a job pool for linking, separate from compiling, and restrict how many simultaneous linker jobs are run. You can even create and set job pools for Ninja through CMake, if you use that in your tooling.
Unfortunately GNU Make offers no such mechanism. And for Ninja build generation I don't think Meson does it either.
Airplane systems, telecom equipment, medical equipment, satellite and space launch equipment, railway systems, etc., etc.
There's other languages used as well obviously, and even just assembly in some parts of some systems, but in terms of the majority it's C and/or C++.