Maybe a little irationally, the idea of programming an os in c++ strikes me as very opaque. I think the vipri[1] approach of layering dsls, or the smalltalk idea of a relatively simple vm to seem more understandable than an os that embeds a c++ runtime...
As a side note, when looking up [1] I also ran across [2].
BeOS was primarily written in C++, although the kernel was dominantly C. For actual parts that require user interaction, C++ and the object model makes a whole lot of sense, although there are probably more mature languages out that would be better candidates now.
I loved BeOS and the C++ application framework... except for the linking model.
You had to provide re-linked executables for every new version of BeOS that came out. It was exceedingly lame to go to an application download page and have to select the version of the application that corresponded to the version of BeOS you installed.
Then when you upgraded your OS, you had to upgrade ALL of your applications. Sure, there were some framework upgrades that didn't necessitate a re-linked application, but as a user you never really knew which those were so had to do a full upgrade of everything to be sure.
Agreed. Although, I don't understand why they didn't provide "shim" .so files. I think this is what linux does, though in practice these days I just use ubuntu packages... And at the time to do the same thing in linux, or FreeBSD (which is what I migrated to when I left BeOS) you had to - or were encouraged to - recompile everything from source.
As a side note, when looking up [1] I also ran across [2].
[1] http://piumarta.com/software/cola/ [2] http://www.acm.uiuc.edu/sigops/roll_your_own/1.helloworld.ht...