The pool of Macintosh software has become incredibly deep over the years, containing a vast number of applications for nearly every imaginable purpose. I was pondering that fact the other day when I started wondering just which of Apple's many technologies were the most important to the developers who create the programs we use on a regular basis. Rather than mull over this question in a theoretical fashion, I decided to ask a select set of developers: Which Apple technologies had proven the most important for your business, and why? (Some of these developers are current or past TidBITS sponsors; I chose them not because of that fact, but because I knew them well enough to ask them to respond on short notice.)
I wasn't looking for what someone might think was particularly cool. Instead, with this one question I hoped to find the technologies that have actually enabled the creation of new tools, new ways of working, or even new ways of thinking about what's possible. You may not recognize the names of all of these people, but I'm certain you'll recognize their products.
Although it's perhaps too obvious, has had a big impact on our work, and the Mac world in general. All of Rogue Amoeba's products are built with it, and it has worked quite well for us. Cocoa has made it an order of magnitude (or more) easier to create software for Mac OS X, which has led to rapid development of new products and updates. That's very important for a small company with limited resources.
But more interestingly, I'd like to nominate the. We don't make any software that works specifically with the iPod, nor iPod hardware, so how can it be so important to us? The trick is that the iPod has brought music to the masses and turned everyone into an audio user. The more people use audio, the more relevant our products become to them. If a user has an iPod and he wants new content, he can use Audio Hijack Pro to record just about anything. Fission will let him edit that audio before it goes on his iPod. And if he's playing audio around his house, Airfoil will be useful for enabling playback through the AirPort Express. As audio use becomes a bigger part of users' lives due to the iPod, our products gain potential users.
Cocoa is essential, but the most entertaining and useful technology from Apple for us at the moment is, which is included for free with Apple's Developer Tools. It is a visual programming language for video, and deserves to be better known. Quartz Composer is embedded deep within Mac OS X, and it relies on OpenGL, Core Image, Core Video, and other core Apple technologies. With it anyone can create various Quartz Compositions that can perform magic on various types of video input. We use it in ChatFX, our video special effects software for iChat (and soon for Skype, Yahoo Messenger, MSN Messenger, iMovie, etc.), to add bluescreen, Photo Booth-type effects, 3D, and more to video conferencing. It is powerful, useful, and whole lot of fun even if you're not a developer. In fact our next fun application (unannounced) will also use Quartz Composer extensively.
For us, the most important technology is definitely Apple's. The Cocoa Frameworks are collections of objects - everything from numbers and lists to buttons and windows - that application writers can use to build their Macintosh software products. These objects are so well written and well designed that one person can write an application that would take 10 programmers to cobble together on another platform. This leverage also means that in the end, developers have more time to focus on the code that makes their applications unique.
Fetch wouldn't be the same program without any of at least a dozen Apple technologies, from AppleScript to Open GL (for the animated progress donut). But if I had to pick one essential technology it would be the, from the AirPort and Ethernet drivers up through the TCP/IP stack and CFNetwork. All of our user interface work is aimed at making it easier to move data from one computer to another, and that effort is wasted without a robust networking infrastructure to put the bits on the wire (or radio waves). Apple was the first personal computer maker to build networking into their systems, and the first to have a standardized TCP/IP programming interface for accessing the Internet. In Mac OS X the networking infrastructure is more efficient, reliable, and flexible than ever before, and that's critical for applications like Fetch.
Apple's adoption of as the standard imaging model for Mac OS X has been the most important technology for our business. Enabling users to create a PDF of anything they can print makes it possible to share documents across platforms with great ease. It also creates a market for PDF manipulation and markup tools, such as PDFpen. Recently, we were even able to stretch the limits of the PDF's nature as a read-only format to offer our new Correct Text feature, which lets users actually replace existing text within a PDF.
Our products are more illustrative of your "deep and vast" premise, rather than a demonstration of using a single "most important" technology. We select from the system API sets (, , or ) that allow us to address our customers' needs most effectively (based on our assessment of a performance/scalability need or specific user-experience goal).
Cocoa's subsystem provides the crucial data storage reliability for Yojimbo, our information organizer. Yojimbo also uses various Cocoa UI services to create its effortless user experience, and  to implement synchronization of data across multiple computers (through the use of .Mac or Mark/Space's new SyncTogether).
BBEdit and TextWrangler rely on (Apple Type Services for Unicode Imaging) to put the text on the screen - where the rubber meets the road, so to speak. Both products' performance and scalability didn't originate with Apple-provided technology, but we used  and the Multiprocessing API (basically, a wrapper on the POSIX threads API) to improve the user experience.
Our pro products are known for setting the standard in automation support, and to achieve this they rely on the and , and  and the POSIX programming interfaces for running AppleScript scripts, Unix scripts, filters, and powering BBEdit's Shell Worksheets. Finally, many of BBEdit's features sit atop Cocoa APIs for doing the heavy lifting: spell checking, the Font panel, and live HTML previews.
So, as you can tell, our technology choices cut across a wide swath of technology disciplines - sometimes even within a single product - to address an equally wide range of customer needs.