Leaving aside the question about open source being driven by the OS itself...let's take a look at some of the claims.
Preemptive multitasking - it's been there since day one. Sure, it came in the form of interrupt-driven routines, but that was exploited by third parties from day one. It was challenging, and clearly not as easy to use as what was available on un*x, but it's not correct to assert that it wasn't available on the Macintosh. It's always been there, and it's always been utilized by third party developers.
Protected memory - the ROM, where most of the Mac operating system lived, was protected. Granted, the rest wasn't as protected (although more protection has come over the years, for example the protected nanokernal), but again, it's incorrect to make the blanket assertion that there was no memory protection. And there have long been tools to highlight the kinds of incorrect usage that are problematic whether you engage in them on a memory protected OS like un*x, or on Macintosh (i.e., it's always wrong to dereference a null pointer, it's always wrong to allocate memory and fail to check for success, it's always wrong to write beyond the end of an array or pointer). Mac programmers have had good tools to use since the earliest days.
IPC - hmm, IPC wasn't really interesting in the early days when there was only one application running. Nevertheless, processes have always been able to communicate, and there have been a lot of mechanism created to do so. Stuffing events into the event queue. Registering Gestalt values. Self-sending AppleTalk packets (and this made network IPC available very early on). The PPC Toolbox tried formalizing it. And many, many other techniques. So, again, it's incorrect to make the blanket assertion of no IPC.
Quick and dirty command line programs - stdio library shell programs were available *in open source* as early as 1984. TransSkel comes to mind. Every development environment offered some way to do console-style apps, and some went well beyond to offer complete basic Mac application support. Once again, an incorrect assertion.
Not like UNIX? At the time I got a Mac, I had access to a whole raft of un*x boxes. Guess which one got me to spend 60+ hours a week (and practically drop out of grad school)? Guess which one let me do cool apps that my friends could use? (and I ported a fair number of unix programs to the Mac, so even that doesn't hold as much water as the author may have wanted).
Never before had programmers had access to such a rich toolbox, and we had a blast learning and exploiting that toolbox.
As for suggesting it had no "real operating system", that's funny. I used to be on the operating system team at Apple. People are often flamed for speaking without knowing. Now might be a good time to ask, how much do you know about the deferred task manager, the low level event manager, the device manager, the cursor manager, the memory manager, the VBL manager, the trap dispatcher, HFS, and the many other components which make up the Mac operating system?
scott former Macintosh senior system software engineer
ps: wanna see the kind of fun things people do with Macs? Check out the Best Hack Contest (fyi, most hacks are submitted for distribution with source code)
Preemptive multitasking - it's been there since day one. Sure, it came in the form of interrupt-driven routines, but that was exploited by third parties from day one. It was challenging, and clearly not as easy to use as what was available on un*x, but it's not correct to assert that it wasn't available on the Macintosh. It's always been there, and it's always been utilized by third party developers.
Protected memory - the ROM, where most of the Mac operating system lived, was protected. Granted, the rest wasn't as protected (although more protection has come over the years, for example the protected nanokernal), but again, it's incorrect to make the blanket assertion that there was no memory protection. And there have long been tools to highlight the kinds of incorrect usage that are problematic whether you engage in them on a memory protected OS like un*x, or on Macintosh (i.e., it's always wrong to dereference a null pointer, it's always wrong to allocate memory and fail to check for success, it's always wrong to write beyond the end of an array or pointer). Mac programmers have had good tools to use since the earliest days.
IPC - hmm, IPC wasn't really interesting in the early days when there was only one application running. Nevertheless, processes have always been able to communicate, and there have been a lot of mechanism created to do so. Stuffing events into the event queue. Registering Gestalt values. Self-sending AppleTalk packets (and this made network IPC available very early on). The PPC Toolbox tried formalizing it. And many, many other techniques. So, again, it's incorrect to make the blanket assertion of no IPC.
Quick and dirty command line programs - stdio library shell programs were available *in open source* as early as 1984. TransSkel comes to mind. Every development environment offered some way to do console-style apps, and some went well beyond to offer complete basic Mac application support. Once again, an incorrect assertion.
Not like UNIX? At the time I got a Mac, I had access to a whole raft of un*x boxes. Guess which one got me to spend 60+ hours a week (and practically drop out of grad school)? Guess which one let me do cool apps that my friends could use? (and I ported a fair number of unix programs to the Mac, so even that doesn't hold as much water as the author may have wanted).
Never before had programmers had access to such a rich toolbox, and we had a blast learning and exploiting that toolbox.
As for suggesting it had no "real operating system", that's funny. I used to be on the operating system team at Apple. People are often flamed for speaking without knowing. Now might be a good time to ask, how much do you know about the deferred task manager, the low level event manager, the device manager, the cursor manager, the memory manager, the VBL manager, the trap dispatcher, HFS, and the many other components which make up the Mac operating system?
scott
former Macintosh senior system software engineer
ps: wanna see the kind of fun things people do with Macs? Check out the Best Hack Contest (fyi, most hacks are submitted for distribution with source code)