On Feb 16, 2021, at 11:59 AM, Jon Steinhart <jon(a)fourwinds.com> wrote:
The original Apple Macintosh API was published in 1985 in a three-
volume set of books called Inside Macintosh (Addison-Wesley). The
set was over 1,200 pages long. It’s completely obsolete; modern
(UNIX-based) Macs don’t use any of it. Why didn’t this API
design last?
I think this is a little bit of a red herring; most of the original Macintosh Toolbox APIs
would not be considered "system calls" then or now. The Macintosh Operating
System APIs were a much more tightly-scoped set on top of which was the Toolbox.
For example, in the original filesystem and device driver interfaces, you had _PBOpen,
_PBClose, _PBRead, _PBWrite, and _PBControl. Sound familiar? One major difference is that
these took a struct full of arguments (a parameter block in Macintosh API terminology) and
could be used either synchronously or asynchronously with a callback, unlike the core UNIX
filesystem calls.
A more oranges-to-oranges comparison would be to look at the Macintosh Operating System
and Toolbox API surface compared with, say, the SunOS and SunWindows API surface…
And then, of course, there's the question of how long the design lasted: The Carbon
API set is a direct descendant of the original Macintosh Operating System and Toolbox API
set, and was supported for the entire lifetime of 32-bit executables on the Mac. I ported
plenty of OS & Toolbox code to Carbon and it was mostly a matter of updating UI
metrics and replacing direct structure accesses with equivalent function calls.
-- Chris