Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

In this alternative universe, Objective-C would have died, Swift would never happened, and C++ would rule across desktop and mobile OSes (thinking only of Windows, BeOS X, Symbian, Windows CE and what might have been BeOS based iOS).

Also POSIX would be even less relevant, and very few would be buying BeOS X for doing Linux coding.



In my alternate universe, GNUStep or some other implementation of the NS APIs would have allowed Linux/BSD to rise in popularity along with a NeXT-ified Apple. Except that didn’t happen.

I think in your alternate universe it’s likely we’d have seen something entirely different emerge.


I pretty much doubt that.

GNUStep still looks much like to the on the same state it used to be when I was using WindowMaker in the late 90's.

I regretted the time I once spent on the GNUStep room at FOSDEM, as the only subjects of relevance seemed to be the theme engine, as if there wasn't anything more relevant to get working properly.


What would have been interesting is if Apple had bought Be in 1993 or 1994, and incorporated BeOS tech in System 8, then wound up buying NeXT anyway at the end of 96 and OS X incorporated Be and NeXT tech.

Though it's entirely possible Jobs would have tossed the BeOS tech along with Quickdraw GX, Newton, etc.


> Also POSIX would be even less relevant, and very few would be buying BeOS X for doing Linux coding.

I don't think I'd enjoy a GNU userland/glibc/Linux monoculture, quite honestly. I'm glad POSIX exists to have a slightly less moving target.


That was exactly part of my point, with BeOS that wouldn't have happened anyway.

The only successful UNIX desktop is OS X.


Well, the last major revision to the Single Unix Specification was released in 2008. Ever since then, Linux has basically become the defacto POSIX standard. So while glibc may not rule the roost, most POSIX OSes bend to the will of the GNU userland and the Linux monoculture in many ways. It's not really like the old days with Sun, IBM, DEC and even Microsoft with Xenix. POSIX is being washed away a little more every day.


Proof being that other POSIX and Windows, now go with Linux kernel ABI compatibility instead of POSIX.

And it isn't at all relevant on mobile OSes.


> and C++ would rule across desktop and mobile OSes

C++ in a non-standard version as compiled by gcc 2.96 release! Awesome.


What lack of imagination, as if they wouldn't be upgrading their toolchains.

In fact, Haiku does support more modern toolchains and the BeOS R5 is only kept around due to ABI issues with binary only BeOS software.


The ABI issues are exactly the reason why having C++ as OS API level language is a bad idea.


Not all, Android, IBM i (C++ has been slowly replacing PL/S), mbed, Windows, and OS X (IO Kit, now Driver Kit), are doing pretty alright.

There is no such thing as C ABI, it only happens to work on OS that are, surprise surprise, written in C.


There is a C ABI. The "x86-64 System V ABI" (the ABI for C on everything except Windows on an x86-64, ie a typical PC) was designed by AMD working with early adopters on Linux and other platforms. Here are several extant ABI documents:

https://github.com/hjl-tools/x86-psABI/wiki/X86-psABI

The ABI for C needs to agree less stuff than a C++ ABI but it's still quite a lot of stuff, if these things don't get agreed then code won't work unless everybody uses the same (version of the) compiler.


As the name already implies, that is an UNIX ABI, the OS where C was born, and naturally the OS ABI.

x86-64 platforms not using the said ABI:

- macOS, "This article describes differences in the OS X x86-64 user-space code model from the code model described in System V Application Binary Interface", (https://developer.apple.com/library/archive/documentation/De...)

- Unisys Clear Path OS200 and MCP

- Android (where JNI is what matters)

- Chrome OS (where JavaScript and WASM is what matters)

So no, it isn't everything except Windows on x86-64 and then there are all the other OSes running on ARM, MIPS, PowerPC, SPARC, PIC and plenty of other less relevant CPUs .




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

Search: