With regards the library itself —- I think it’s generally known the c++ standard library is a poorly designed mess in places but if you make an entirely new one you lose all the software already written, at which point why use C++ nowadays?
> design-wise copy the Python standard library's APIs whenever possible [1]
0. https://www.reddit.com/r/bashonubuntuonwindows/comments/t952...
* https://jdebp.uk/FGA/boot-and-system-volumes.html
'Windows subsystem for' actually has a similar sort of logic behind it.
* https://news.ycombinator.com/item?id=11417059
Although Microsoft then spoiled that explanation a couple of years later by switching to a virtual machine system instead of the NT kernel emulating the not-present Linux kernel.
Surely copy the Rust APIs? Or maybe Go?
As for the why c++ at all, as long as one falls into the "don't care" category, it works fine.. lately I found myself I rather build my apps in C with NODEFAULTLIB (under Windows at least), and creating my own size-optimized standard library which on Windows wraps the Win32 API wherever possible. The size savings are incredible, my executable is in the ~500KB range, ultra small and ultra fast. This is unattainable with normal modern C++.
As for the size requirements, and having Windows experience all the way back to Windows 3.0, you can do exactly the same tricks with C++.
Win 9x is a dead OS, why would I bother with that outside retro computing?
I only don't consider legacy Windows platforms something to care about, and put the required effort into making something like that happen.
Only if using classical headers, std as module is already a reality on VC++.
VC++ and clang latest with MSBuild or CMake/ninja are there, minus some bugs or code completion misbehaving (but bearable).
GCC 16 is mostly ok now, also with CMake/ninja.
All my hobby coding in C++ makes use of modules, at work it is a different matter, where libraries to be consumed by Java/.NET/nodejs, are still using C++17 as baseline.
You can easily check, https://github.com/pjmlp/RaytracingWeekend-CPP
Note the CMake version was tested initially with clang 17, and we're already on clang 22, so some of those comments are irrelevant nowadays, I haven't bothered to update the project.
Naturally if you cannot be on latest compiler releases, or suffer from CMake phobia, the support isn't there.