Hacker News new | ask | show | jobs
by integricho 28 days ago
Agreed, I thought this is a wrapper for STL under Python, what does the py prefix stand for here actually?

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++.

2 comments

I instead, use VC++ latest with C++23 import std.

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++.

Have you checked what dll dependencies you get if you build such an app? And have you actually tried running such an executable on win9x?
If you use only Win32 APIs from C++ just like since Petzold books, the dlls are already there, there is also static linking for other stuff.

Win 9x is a dead OS, why would I bother with that outside retro computing?

Understood, yes, but I described my reasons in my reply to another comment already. Your proposed solution is not equivalent to what I am doing, it cannot work on all the systems I support, and would never be as dependency free.
I fail to see why, as I have been doing C++ on Windows since Windows 3.0.

I only don't consider legacy Windows platforms something to care about, and put the required effort into making something like that happen.

Even trivial stuff causes the linking to vcruntime, this is an extra dll dependency that I don't tolerate, no msvcrt, no vcruntime, nothing except core Win32 dlls are allowed on the platform. Static linking can relieve some of this pain, but that bloats the binary. C++ simply does not allow the same level of minimalism that can be achieved by C, and for many these are unimportant details, for me they are deal breakers and this is a core pillar of my architecture.
Out of curiosity what are your projects written in C for Windows? GUI apps?
Yes, I am building GUI apps. This "standard library" of mine is built from the ground up in a cross platform manner, such that it compiles on Windows wrapping Win32, with Windows 95 being the CI machine, making sure it works on the whole Windows family upwards, and it wraps POSIX under Linux/MacOS/any POSIX system. The goal being to reuse the available shared library dependencies that are always present on these platforms anyway, giving me these ultra small binaries.
why support Win9x? actual users? as a fun thing to do?
For the last couple of years I got into retro computing, realized how much more I enjoyed the 9x era Windows systems compared to anything that came later, and made it a personal goal that if I build anything, it will have to work on Windows 95 as well. I realize the actual number of 9x users would be really small, but they still exist, e.g. seeing the vogons community, they are still using lots of such apps and would value support.