For the unaware, this is why the macOS/iOS APIs are prefixed with NS (NSObject, NSString...), for NeXTSTEP.
I believe iTunes is still based on WebObjects.
For the unaware, this is why the macOS/iOS APIs are prefixed with NS (NSObject, NSString...), for NeXTSTEP.
I believe iTunes is still based on WebObjects.
The pre-OpenStep version of the APIs used a NX prefix. You can still see some lingering NX* classes/functions in macOS stack traces.
So far as I know, NS stands for NextStep.
Apple knew for a long time it needed to replace classic Mac OS, which didn't have modern OS features. It started the Pink project internally to make a next-generation operating system, and eventually in the early to mid 90s, that got spun out into Taligent, the joint venture between Apple and IBM (and later others).
Then Taligent didn't pan out for a variety of reasons. Specifically why is another question, but here it's sufficient to say that Apple decided it certainly wasn't the direction they wanted to go. Taligent ended up being handed off to IBM and repurposed as a rapid app development tool that sat on top of other operating systems (AIX, I guess, mainly) instead of a standalone operating system.
As I recall, Apple may have tried to internally do its own second attempt at a next-generation operating system, essentially a competing project to Taligent, but that didn't work out either.
So that left Apple in the mid-90s but still stuck on an operating system that was rooted in the 1980s and really, really showing its age. And a lot of it was Motorola 68k only (it was never meant to be portable), but Apple had already started to make the shift to PowerPC CPUs. So there was another reason it was time to start fresh.
After at least one if not two failed attempts to come up with their own next-gen OS, here was this company founded by a former Apple luminary, with an operating system sitting there ready to go. NeXTSTEP was already portable enough to run on both 68k and x86 at that time, and once you've got two platforms, you can have pretty high confidence that a third (PowerPC) would be feasible. And I don't think NeXT had great long-term prospects with a standalone platform on its own.
On one hand it was a much modern OS because build from scratch in the 90's rather based one the good old Unix, on the other hand OSX being Unix is probably why so many software developers flocked to the mac.
Supposedly largely for performance reasons, but of course the L4 kernel showed that didn't need to be the case.
I believe modern XPC services integrated with launchd to allow on-demand job launching (similar to Linux dbus-activation?) are based on Mach 'ports' (IPC).
And tangentially, launchd "domains" (gui/user/system) are based on Mach "bootstrap domains", which is why a job launched in the background ("user") may have trouble communicating with a job launched in the GUI domain, if you're just assuming Unix permissions.
The Mac certainly benefited from attracting a lot of Unix devs, but I don’t think that was a significant contributor to its mainstream success.
At the end of the day, both Microsoft and Apple reused ideas they found at Xerox. To quote Bill Gates himself about the situation:
"Well, Steve, I think there's more than one way of looking at it. I think it's more like we both had this rich neighbor named Xerox and I broke into his house to steal the TV set and found out that you had already stolen it."
The Alto relied on a command line for most operations, no Finder, no trash can, only had a handful of GUI applications, could only handle rectangular regions so no complex controls or menus, and was slower and far more expensive than the Macintosh.
> and once you've got two platforms,
Agreed with your sentiment, but, er: five. Four released publicly: m68k, x86, HP PA, SPARC. And then there was the Motorola 88000 for the NeXT brick. The SPARC OpenStep/Mach port was in addition to OpenStep Solaris and then there was the Windows stuff. Not sure what else they had running internally.
That was some seriously portable software. And for developers, adding architectures was a checkbox in ProjectBuilder (once you had taken care of being endian-neutral).
UPDATE: just checked the Wikipedia entry on the NeXT brick (aka NeXT RISC Workstation), and it says they were redesigning it based on PowerPC, so the number was probably six and they already had a PowerPC NextStep port when acquired. https://en.wikipedia.org/wiki/NeXT_RISC_Workstation )
Project Wonder is community supported additions + fixes to WebObjects. https://github.com/wocommunity/wonder
Meanwhile, I found this hat on eBay yesterday: https://i.imgur.com/CuInqYo.png
Not the full blown EOF, WOF that iTunes uses however.
(Also, hi Matt!)
(Hey!)