On Thursday 09 July 2009 1:46:59 am Rolf Kalbermatter wrote:
Adam Strzelecki [mailto:
[email protected]]
Cocoa is the proper Obj-C API for OSX UI &
graphics. OSX is
NextStep based objective oriented GUI & OS. And Obj-C is a
basement of both NextStep and OSX. So if you want to write
OSX GUI application properly you have to use Obj-C, same as
C++ & KDE and so on.
With the same argument you could say that writing COM objects has
to be done in C++. Yet Wine has lots and lots of COM code written
all in standard C.
It has to, because the class vtable layout and calling convention can be
different in Windows than how the host system's compiler will generate it. COM
objects have to interface with existing Windows code, and so need to be setup
in memory in a specific way.
By contrast, an OSX-specific driver can use Obj-C without consequence to
existing Windows code. As long as said driver can expose a C-only interface
for gdi32 or whatever, the Obj-C code is entirely self-contained and anything
outside the app is none-the-wiser.
If OSX will always have Obj-C support, and the Obj-C code can be restricted to
OSX-only code, then the only sticking point, in my eyes, would be how
maintainable it is. After all, if only one or two people can work with Obj-C
code, it can bit-rot that much more quickly.