4 ms·
I remember these years well, and there were years where C (not C++) was prevalent on the mac dev market. Metrowerks only appears quite late, with the PowerPC m
by buserror 8y ago
I remember these years well, and there were years where C (not C++) was prevalent on the mac dev market.
Metrowerks only appears quite late, with the PowerPC macs -- I remember having both a prototype of the PowerPC 601 66Mhz pizza box and the fancy new compiler on the block delivered from apple (I remember the excitement -- that sort of excitement new tech delivered that I never really found again after that decade!). I stayed on the 'permanent beta list' of metrowerks until they vanished.
Before that, THINK C/Symantec C/C++ existed and were in use extensively including inside of apple, but most of the software was plain C, or "base C++" (it was before the time of templates and stuff like that) at best...
Apple never used C++ for system interfaces. Even 'Carbon' on OSX still used Pascal Strings for the historycal toolbox calls. Over the years they added extra helpers and extra glue code to cater for C, but they stuck more or less to their API design until OSX arrived.
The funny bit is that even afterward they continued with some of their paradigms, the 'component' one for example, was still in used for years afterward for quicktime stuff, in OSX. Likewise the AppleEvents (also using "components") had the same paradigm and structures as it ever had (and migth still have!)
- pjmlp 8y agoSome of my knowledge was from reading Computer Shopper and other computer magazines with a Mac section. It was unthinkable for most business in Portugal to get a Mac, given that there was only one official importer, Interlog, with shops in Lisbon and Porto, nowhere else. So I had the idea the C++ frameworks were introduced as the same time as the C, C++ SDK, not was system interfaces, but as wrappers on top of them.
- jcelerier 8y ago> Apple never used C++ for system interfaces. ... eh ? https://developer.apple.com/library/content/documentation/DeviceDrivers/Conceptual/WritingDeviceDriver/CPluPlusRuntime/CPlusPlusRuntime.html https://developer.apple.com/library/content/documentation/De...
- buserror 8y agoThat's an OSX kernel interface, not at all related to what they called 'classic' afterward... Beside, despite the syntax sugar, it is NOWHERE near C++ at all. No constructors/destructor (if I remember correctly), no stack based objects, no exceptions, no virtual functions, no library, and you had to provision your classes with the right number of member function 'dummy' pointers to allow for expansion. I've written enough OSX drivers back then to know that, quite frankly, C would have been a lot better.
- jcelerier 8y ago> No constructors/destructor (if I remember correctly), no stack based objects, no exceptions, no virtual functions, no library, and you had to provision your classes with the right number of member function 'dummy' pointers to allow for expansion. I think that you are fairly mistaken. IOKit drivers are written by inheriting from a base class and overloading virtual functions. Here's how it looks : https://developer.apple.com/library/content/documentation/Darwin/Conceptual/KEXTConcept/KEXTConceptIOKit/iokit_tutorial.html#//apple_ref/doc/uid/20002366-100120 https://developer.apple.com/library/content/documentation/Da... ; it may be not 2018 template-metaprogramming bliss, but it's fairly standard C++.