Mac OS X is, in many ways, a new paint job on a 30-year-old operating system. BSD (the Berkeley Software Distribution), the Unix root of Mac OS X, has been around since the 1960s. The Mach kernel was developed in the 1990s, and the underlying user interface was created in early 1980s along with Lisa (Apple’s ill-fated precursor to the Macintosh). In other words, everything old is new again.
Mac OS X doesn’t feel like a 30-year-old clunker, though, but the culmination of countless hours of experimentation and refinement in desktop and workstation operating systems. To a Unix expert, Mac OS X is much like a solid distribution of a classic BSD system with the most egregiously beautiful window manager you’ve ever seen. For the Windows veteran, it is a simplified beast—a pure workhorse of modern productivity stripped of decades of anachronisms and distilled until it has an almost Zen-like simplicity. For the Mac OS 9 user, it represents an even more significant change. Nasty crashes and ridiculous extension conflicts are now a thing of the past, while Aqua, Mac OS X’s new user interface, is clearly the look of the future.
Most importantly, though, Mac OS X is finally a
developer’s platform. With the melding of BSD, a
killer user interface, and unprecedented stability, code can finally
be written on the Mac OS X platform and deployed to Windows, Linux,
Unix, or other Mac OS X servers. This book was written with the Java
developer in mind. It assumes some degree of Java experience and
familiarity with basic
commands such as
pwd. Maybe you are interested in porting an
existing Java application to Mac OS X (perhaps because your customers
asked for a Mac OS X version). Or maybe Linux is your development
platform, but you are interested in moving to Mac OS X to access
powerful graphics applications such as Adobe Photoshop. Maybe
you’re a bored Windows user, or are philosophically
opposed to the Microsoft hegemony.
Your degree of experience really doesn’t matter; Mac OS X is a great Java development platform for people of all programming and operating system backgrounds.
Mac OS X has, at different times, been associated with several different names. At one point it was called Rhapsody. Prior to that, it was NeXT’s OpenStep and NeXTStep platform. The underlying Unix guts were also released as an open source project, Darwin, which includes BSD and the Mach kernel. With that in mind, explaining where Mac OS X started and where it is now will contextualize Mac OS X in its current incarnation.
Convincing a large body of developers to embrace a new platform is not easy. You can release developer seeds, betas, and prereleases all you want, but at the end of the day, major operating system vendors have to release something that can be called a 1.0 product (or, in the case of Mac OS X, a 10.0 product). Releasing this product lets users know that you’re transitioning from testing to “prime time.”
The commercial release of Mac OS X 10.0 was just that: it was Apple’s way of telling developers that the system was ready to go and that they should get on board. At this point, Apple began shipping Mac OS X 10.0 with their hardware, but didn’t make it the default operating system. The release was lacking in quality, features, and supported applications, and everyone knew that the product needed more work.
Even more significant, however, was an Apple announcement at Macworld in January 2002. During one of the conference’s keynote addresses, Steve Jobs announced that Apple would begin shipping Mac OS X as the default operating system. Users could still switch back to Mac OS 9 if they wanted, but when someone took that shiny new iMac out of the box, Mac OS X’s Aqua greeted them. Apple’s commitment to Mac OS X as their default platform was a clear message—developers and users both were assured of Apple’s commitment to Mac OS X as an operating system for mainstream use.
A few patches quickly followed the 10.1 release. Mac OS X 10.1.1 became Mac OS X 10.1.4. More importantly, a large number of critical applications became available, such as Microsoft Office and Adobe Photoshop. For developers, a large number of open source projects started to make regular binary builds available for the Mac OS X platform. Are you interested in MySQL, Apache, PHP, or Tomcat? All are now available, prebuilt specifically for Mac OS X. Some open source projects (such as PostgreSQL) that weren’t even available for Windows have become available for Mac OS X.
Then Macromedia announced that their MX line (products like Flash, Dreamweaver, and Fireworks) were to be made Mac OS X-native via Carbon. Suddenly, the best platform for Unix and web application development started to resemble Mac OS X. Furthermore, several Java applications became available for Mac OS X. Many were server applications or developer products, but their appearance started to convince users that Mac OS X was becoming a friendly platform for developers.
This release, despite being the first major release to not offer upgrade pricing, was in many ways a major infrastructural improvement. Much of the technology included in this release, such as Rendezvous (Mac OS X’s autoconfigurable networking), had a distinctly infrastructural feel. Most significantly, this release included several low-level improvements required for Apple’s JDK 1.4 implementation. Although Jaguar shipped with a JDK 1.3 implementation, JDK 1.4 can be installed on Jaguar.
Chapter 2 details the installation of both 1.3 and 1.4 JDK runtimes.
Future releases of Mac OS X will ship with JDK 1.4 support (or whatever the latest JDK version is at release time). As of this writing, the contents of the J2SE 1.5 release are already under discussion for inclusion in Panther, the code name for what will most likely be Mac OS X 10.3.