BeOS went all in on mid-1990s C++ which was a terrible language in many ways. It was a brittle and awkward foundation for operating system APIs.
Oddly enough, Objective-C, which seemed like a loser at the time, fared much better and still underpins the GUI classes in Apple’s operating systems. The simple syntax and dynamic nature of Obj-C gave it much better longevity.
(In addition to BeOS, there was another major commercial operating system created in the mid-90s with a pure C++ API. It was called Symbian, and unlike BeOS it was actually very popular for a while. In 2003-2011 hundreds of millions of Symbian devices were sold, mostly Nokia smartphones. But even though these devices supported native apps with advanced features like OpenGL, few apps were made because the API was so baroque, and anyway few users would discover the apps because there wasn’t a simple app store. Symbian is a great example of having the right ideas early but a completely wrong approach to implementing them.)
I feel like it is the opposite - Objective-C existed for more than a decade in realtive obscurity, and quite suddenly became very widely used when a new and popular computing platform forced developers to start using it.
IMHO, the massive gap supports the idea that iOS is the main driver of Objective-C popularity.
Quite a lot of NeXT was ObjC (and ObjC++ -- eek!). Apple bought NeXT; the NeXT team begat Mac OS X; Mac OS X thus ended up being ObjC-heavy.
When Apple build the iPhone, they used their Mac OS X know-how to build a new-but-familiar operating system, and they of course used Objective C.
The iPhone was a massive success, and the native development language for it was Objective C, so when they opened up the platform to third-party developers, Objective C was all of a sudden an overnight success!
Kind of, they also introduced Java as OS X system language alternative, with a Objective-C runtime interop, as they were uncertaint that the Mac OS developer community, raised in Object Pascal and C++, were that keen in adopting Objective-C.
Java as official OS X language only got deprecated after it was clear the Mac OS developer community was keen in adopting Objective-C.
Also the Objective-C driver framework from NeXTSTEP was rewritten in an C++ subset, based on COM's design.
OS X being a success let the iPhone be built six years later. That may be only a little over a quarter of the history at Apple now but thats the end of the beginning.
The BeOS api was super nice. I was building a source-level compatibility layer for windows in my late teens.. BApplication, BWindow, etc., but implemented in the win32 api :-)
I don't know the details, but QT started in 1991, developed in C++ and is a good solid foundation even today, without the backing of something like Apple which would be a game-changer. So while I agree C++ has warts not sure to what extent you can extrapolate from that.
Oddly enough, Objective-C, which seemed like a loser at the time, fared much better and still underpins the GUI classes in Apple’s operating systems. The simple syntax and dynamic nature of Obj-C gave it much better longevity.
(In addition to BeOS, there was another major commercial operating system created in the mid-90s with a pure C++ API. It was called Symbian, and unlike BeOS it was actually very popular for a while. In 2003-2011 hundreds of millions of Symbian devices were sold, mostly Nokia smartphones. But even though these devices supported native apps with advanced features like OpenGL, few apps were made because the API was so baroque, and anyway few users would discover the apps because there wasn’t a simple app store. Symbian is a great example of having the right ideas early but a completely wrong approach to implementing them.)