My husband would like to borrow my HN account to post this story:
While working at either Netscape or AOL (he can't remember which side of the transition it was), a developer BeBox was delivered, to assist in porting Netscape to BeOS. It was one of the first dual-processor machines that many devs had ever seen.
It had an activity monitor which showed two bar graphs for the load of each CPU, but unusually, you could click on each CPU to turn it on and off, to turn the system into a single-CPU machine.
He wondered what happened if you turned both off. So he did. The machine obediently froze, and had to be hard rebooted.
You'd never find an OS that let you do that today!
Through the years, I've seen references here and there on the internet about Haiku OS but never payed too much attention assuming that was kind of a toy, however, after reading the release notes of the beta 4 I have to admit that I'm impressed.
BeOS was such a delight to use. It respected the user. No circles of death, no beachballs. UI responsiveness considered an actual priority. Gobe productive was my office software of choice for a long time, too. Good times.
Deadlocks were probably common because people weren't used to concurrent programming, nothing about beos specific except it was unusually multithreaded for the time. That class of bug would apply to all operating systems, though people are more familiar with that paradigm now than they were in beos days.
Ahh, BeOS. I used it has a daily driver for about 6 months. It was fairly nice, but my job moved from Mainframe/VMS/Minicomputer work more towards Web related work (it was along time ago for the kids reading along) and I had to put away my toy and start learning more on my Linux boxes when I wasn't working.
Spent a lot of time learning the kernel and support "kits" and porting some of my large baseball related code to it.
Could'a been a nice little operating system despite forcing me to learn C++ better.
At the time, I was interested in the physics behind pitches, how the eye works when watching the flight of the ball, and how that might be affected by pitch sequencing.
Lots of math with crude estimations for stuff. It's not Moneyball-related, just odd things I like to wonder.
Apple probably would've gone out of business. Be didn't have Steve Jobs.
Although I have a fondness for BeOS, and used it as a daily driver, it was more of a tech demo. It was missing key things (like printing), and security.
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.
While working at either Netscape or AOL (he can't remember which side of the transition it was), a developer BeBox was delivered, to assist in porting Netscape to BeOS. It was one of the first dual-processor machines that many devs had ever seen.
It had an activity monitor which showed two bar graphs for the load of each CPU, but unusually, you could click on each CPU to turn it on and off, to turn the system into a single-CPU machine.
He wondered what happened if you turned both off. So he did. The machine obediently froze, and had to be hard rebooted.
You'd never find an OS that let you do that today!