mallard wrote:
The C++ "unstable" ABI issue doesn't really matter much for a hobby OS where you're unlikely to have more than one C++ compiler anyway.
There is a bit more to it than just that. The C++ ABI sometimes changes between versions
of the same compiler. You would have to recompile
everything. And that means the user-space applications as well, with all the breakage that might introduce, with applications or drivers no longer supported by the supplier and suddenly no longer working after the latest OS update. Linux has gone through some of these phases (not related to C++ ABI but kernel ABI / API), and it never has been a pretty sight.
Or imagine your OS passing std::string parameters... but the userspace app using a different C++ library implementation (as it would be free to do). That might fail noisy and early, or it might fail when you least expect it...
Then there's the point that most "third party" languages (take Perl, for example) basically
expect C linkage to "talk" to other components. Sure, you can wrap around this, but all in all, you'll be much easier off if you keep your OS API plain C.
And that's coming from me, your resident "I like C++ best" guy. I still very much prefer it on the inside, but my outsides are all C these days. Much less headaches all around.