In Mac OS X, there are an unusual number of ways to make programs.
One convenient way to classify them is by their user interface,
and another is by the underlying technologies,
both of which can contribute to the user's experience.
is the term Apple has given to the standard look and
feel of Mac OS X applications. This is basically what most Mac users think
of when they run an OS X program. These programs can take advantage of a
multitude of underlying technologies.
refer to the two main methods
of designing Aqua applications. Ideally, the user is completely oblivious
to this fact, but there still persist differences which make the user
experience between programs using one or the other technique differ.
I also group AppleScripts, Menubar items, Docklings, and other goodies
under the umbrella of Aqua applications.
Since Leopard, Apple has made it explicit and clear that
the future of Apple development is Cocoa
This doesn't mean Carbon is going away. In fact, many parts
of Cocoa are built on Carbon libraries, and vice versa, but that all future
improvements to the APIs that developers use will be on the Cocoa side.
Bottom line: Cocoa is the development API of choice on Macs.
I give separate consideration to Java
since their GUI is noticeably different from standard Aqua apps.
(This may change over time, if the interface becomes dove-tailed with
the Aqua behavior.)
The great thing about the Java programs, of course, is that they run
practically the same on all platforms that support Java.
programs refer to programs which have been made using
a windowing system developed in the Unix/BSD/Linux world.
There are many applications which may never be ported to Mac-only technologies,
so being able to run this programs widens greatly what's available for Mac users.
Since X11 is a whole windowing system, one needs to run what is called an X-Window server.
These function in a similar way to running Classic applications
(except without Classic's long start-up time), and their
windows may look and function in a non-standard way.
There are several free X-Window servers available, including one from Apple.
(These programs too will gradually become more Aqua-like in their behavior.)
Then there are programs which can only be directly run by opening up
a terminal window and typing in some commands, which I'm simply
applications. Most people prefer not to
bother with these applications due to the learning curve often involved,
but it's a powerful option for the serious user. Mac OS X is a real
Unix-class system and has access to programs far outside the scope of
the traditional Mac world.