27 ms·
I'll bite, since I wasn't around at the time and am not deeply attached to either, but have some thoughts none-the-less for sport. I'm going to "flip" several o
by spijdar 6y ago
I'll bite, since I wasn't around at the time and am not deeply attached to either, but have some thoughts none-the-less for sport. I'm going to "flip" several of your points and "reword" them from the perspective of a dirty NeXT sympathizer ;)
OpenStep was built on top of a then rather battle hardened Objective-C toolchain and "IDE" which had been in development since the 80s, and was an open standard that would target both the Mach OS, Solaris, and Windows NT.
Mach 2 always shipped with a full BSD kernel running as a server -- the modifications were such that BSD would request resources like memory and process time from the mach kernel. This is why for many years Mach based systems kicked the butts of other BSDs. While CSRG's BSD kept its awful virtual memory system from VAX that crapped out after 30-40 MB of address space, Mach's VM system was scalable and performant.
(Mach 3 and above were "more proper", and indeed Darwin's combination of OSF/1's Mach derivative and 4.4BSD-lite's kernel/userland was for performance reasons.)
Mach also gave NeXT a threading model, something absent from BSD. It is exploited by the objective-C framework and the driver layer natively.
https://src.paperfox.es/next.jpg https://src.paperfox.es/next.jpg
Because of its BSD roots, NeXT shipped with support for multiple users (something Haiku still lacks real support for to this day, with everything "Be" related stuck under a single user, although the underlying "not-unix-but-POSIX" layer does support it), and a mature BSD sockets library, along with its own (horrific, but there!) interpretation of domain services, NetInfo.
Be shipped with a pseudo-unix environment, with a fair amount of POSIX represented, and a bash shell and GNU utilities preinstalled, albeit lacking any concept of users or permissions...
And to me that's the kicker -- both OSes intentionally had "UNIX layers", Be's was just home-grown and lacked features compared to OpenStep's "4.4BSD but with patches and significantly enhanced resource handling" environment, with much greater software compatibility as a result.
NeXT had the advantage of being an older piece of software, with a much greater depth of "backwards compatibility" while also having a fairly well designed native framework with a well-represented stack of native software. If I was given some (ridiculous) mission of building <x> desktop OS from either BeOS R5's kernel/low level userland or some late release of Open/Rhapsody/Darwin, it'd be a no-brainer to me.
(as a final thought, it's curious you'd mention running a personal web server as an example, when the first web server was developed on NeXT)
(I also ignored Be's filesystem because it is, frankly, superior, however I believe it's not enough by itself to change the merit of the entire OS, since its value either depends on developer buy-in or how much utility it gives to the OS shell, and OS X implemented similar features within Finder using indexers and databases. Ugly, but if it works...)