[LONG] Making the right choice (was Re: How viable is Cocoa development?)
[LONG] Making the right choice (was Re: How viable is Cocoa development?)
- Subject: [LONG] Making the right choice (was Re: How viable is Cocoa development?)
- From: email@hidden
- Date: Sat, 26 Jan 2002 18:14:52 -0500
"Sing o Muse, of the anger of OpenDrawPowerGXDocTalk,
and its devastation, which put pain thousandsfold upon
the AppleDevelopers, hurled in their multitudes to the
house of Wintel, strong souls of codewarriors that gave
their blood freely to the delicate feasting of the faithless
ghouls of Redmond, and the will of Gates was accomplished..."
Cry if you will, sing Homeric laments if you must, but these dead
technologies are still dead, and even though my heart bleeds for them, I
find all the handwringing useless and not very constructive. The
original poster's questions are important to anyone venturing into the
brave new world of osx development, but substantial answers to these
questions have been lost amid the angst and rage over the historical bad
blood between Apple and its developers.
I think the original questions were very broad, and loaded with
important sub-questions, that have gotten lost in the passionate
responses to the "Apple has screwed us in the past" question. So I'd
like to pose slightly more detailed questions along the same lines.
Every developer has different needs and the issues which these questions
address are very important in making the right choice between Cocoa and
Carbon. Here are my questions:
1) If I want to take full advantage of OSX, and have fastest access to
the latest and greatest capabilities of the operating system as it
evolves, should I use Cocoa or Carbon??
1a) When Apple implements new feature FOO or new technology BAR
in OSX, do I get to use FOO and BAR first in Carbon or Cocoa?
1b) Right now (today!), can I access the most OSX features and Apple
technologies
using Cocoa? or Carbon?
1c) Is it feasible to develop primarily in Cocoa, but use APIs from
Carbon? (or vice versa)
1d) What is available in Cocoa that is not available in Carbon?
1e) What is available in Carbon that is not available in Cocoa.
1f) If I want to use the standard BSD features of OSX in my app, are
there issues which
make Cocoa a better choice than Carbon (or vice versa).
1g) If I want to integrate unix-based non-Apple technologies into my
application such as
Qt, IMSL, or third party C libraries, is Cocoa or Carbon the
right choice??
My choice of technologies must be palatable to my management. The
pointy-haired ones do not understand technology, they understand
simplistic drivel like "Microsoft uses Carbon" or "Adobe makes $40
billion using Cocoa". So the question is:
2) Who are the big name (non-Apple) vendors shipping Cocoa applications
who can make management comfortable with my picking Cocoa as a
development technology?
2a) If I choose Cocoa, are there other sources of simplistic drivel
that might be
acceptable to the pointy-haired ones?
Apple has a very bad history of screwing developers by promoting radical
new technologies and then pulling the plug on them. The "Apple Screws
its Developers & Users" poster child is not OpenDrawPowerGXDocTalk, but
HyperCard. HyperCard was well-loved by users and developers, and yet
Apple killed it anyway.
Apple's bad history with developers makes it something of a risk to
invest in Apple technologies. From the history, it appears that Apple's
tendency to pull the plug on a technology is influenced primarily by the
installed base of applications that depend on that technology. So to
properly assess the risk associated with having Cocoa or Carbon as my
primary development technology I need to ask:
3) Is it possible for Apple to ship OSX without Cocoa support? Without
Carbon support?
3a) If Apple shipped an OSX without Cocoa (Carbon?) support tomorrow,
how
many shipping products (non-Apple) would be affected.
3b) If I shipped a Cocoa or Carbon App and Apple stopped shipping
Cocoa or Carbon
support with OSX, is it *possible* for me to provide a
functional application environment
without Apple's help.
I'm sure there are lots of other considerations to be made up front when
selecting Cocoa or Carbon as the core technology for a new application,
and hopefully these questions and the vast experience available on this
list will provide a starting point for those of us still in the early
stages of such big decisions.
Sorry for the long post,
email@hidden