Hacker News new | past | comments | ask | show | jobs | submit login

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 am no C++ lover, but the success of Obj C is directly tied to iOS, and the success of iOS is directly tied to the iPhone.

The iPhone made VB6 developers learn Obj C. It was a seismic change.


> but the success of Obj C is directly tied to iOS

That doesn't explain the massive gap between objective-c's invention and the invention of ios/iphone. There's clearly more to the narrative than that.


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!


> and they of course used Objective C.

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.


Objective-C only became relavant because of Apple, and even so, macOS has more lines of C++ code than BeOS.

Objective-C driver subsystem from NeXTSTEP was replaced by C++, and plenty of subsystems are written in Objective-C++.

Metal uses C++ as shading language.

As ex-Nokian, Symbian failed not because of Symbian C++, but because of management and internal politics.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: