On Monday 31st March 2003, Apple held a free-to-attend talk about the Mac OS X developer technologies at Crowne Plaza Hotel Heathrow. While this event was primarily pitched at UNIX or Linux developers interested in moving their existing software onto Mac OS X, the presentations were very accessible, using as little jargon as possible and examples to demonstrate the technologies being discussed. The main speakers were two of Apple's "technology evangelists", this showed in the enthusiasm they displayed for the subjects of their talks. The session opened with a look at the various components of the Mac OSX operating system and its differences from other UNIX or UNIX like systems. The main distinction is of course the graphical user interface (GUI); Apple use the in-house Aqua GUI on the Quartz Extreme graphics engine while on other UNIX systems such as Linux or Solaris, it is more common to see X11 being used. (Apple has a publicly available version of an X11 system for Mac OS X, who integrates well with the Aqua look-and-feel.) The tour of the Quartz Extreme and Aqua systems was non-technical; applications developed with the Apple development tools (of which more below) automatically gain access to these for free so no detailed knowledge of their workings is required. The focus then shifted to how the nuts-and-bolts UNIX underpinnings of the OS differ from other UNIX systems. This was by necessity the most technical and specialist part of the event, even leading some to comment that at some points it seemed as if one needed to know what the speaker was going to say before one could make sense of it! The collaboration between Apple and the open source software community on projects such as the Darwin kernel (the heart of Mac OS X) and the Safari web browser was given special attention; gone are the days when Apple would only use technologies developed in-house, they now embrace and contribute to open standards to aid interoperability and entice developers and users from other environments. Also given in-depth commentary was the Mac OS X drive towards POSIX compliance. POSIX is a set of standards defining how a UNIX operating system behaves, important to developers as software built for one POSIX system can (in theory....) be ported painlessly to any other. We were told that 10.2Jaguar is already largely compliant with these standards ("the 80% of the standard that is used 99% of the time"), and that better compliance can be expected for 10.3 Panther although work is still ongoing. The rest of the session introduced the development tools that area available to Mac OS X programmers. Notable for their absence were the Classic-derived systems such as CodeWarrior or RealBASIC, as Apple are trying to wean developers onto Cocoa (discussed below). The Carbon programming interface – designed to allow Classic applications to be ported to OS X with minimal pain – was given a brief mention. We were shown how applications developed in Sun's Java language can be run "out of the box" on Mac OS X. With a couple of very minor tweaks, Java programs can be made to behave exactly like any other Aqua application, displaying its name and menus on the menu bar at the top of the screen. The developers over at Cupertino are working hard to integrate Java with the OS to the point where a Java application cannot be distinguished from a native OS X program. This has been underway since the initial version of OS X two years ago, and indications from this presentation show that the work has gone well. The development environment that Apple are most proud of is known as Cocoa. This environment is a direct descendent of the system that was used by NeXT from the late 1980s onwards, and has thus had over a decade of r&d. The programming language employed by Cocoa is Objective-C. This language is almost unique to Cocoa; a straw poll of the attendees showed that less than half had used the language prior to the Tech Talk. Objective-C was described as a "small superset" of the C language; most of the meat is identical to standard C but a few additional features provide an Object-Oriented veneer. The language is dynamic; it is possible to swap one object out for another while the program is running without causing major problems, something that may not be done in C++. An example of the usefulness of this was said to be in accessibility; a generic document view object in an application can be switched for one suited to, say, a blind user without much additional work. The main tools for use in Cocoa development are Project Builder and Interface Builder. These are distributed free with OS X, and attendees were given the latest version on CD. One of the most interesting features of these Builder programs is that program elements receive certain OS or GUI functionality "for free" such as spell checking, font manipulation, cut-n-paste etc. It is important to Apple that all OS X applications have a consistent and intuitive behaviour, so when one attempts to place a new element (e.g. a button)onto a window with Interface Builder, blue lines appear in the window showing locations that conform to the Human Interface Guide lines. The last talk in the session (besides the Q+A) introduced the Applescript language, lone among the subjects of this session in that t was developed via the Classic operating system. Applescript is a powerful macro scripting, English-style language that allows various programs to interoperate, including Java applications and Cocoa-developed programs that were not explicitly given Applescript capabilities when written. In the latter case the script becomes slightly less intuitive – while it might be possible to write:
The speaker explained that he thought of Applescript as the "universal glue" of Mac OS, and predicted that future applications would comprise of small modules written in, say, Cocoa that shared information via Applescript. He demonstrated how an MP3 player could be written in a few lines of script (with a little help from Quicktime), how to use the language to control programs such as Word and even how it could be used to control the computer from a mobile phone The Tech Talk closed with a description of the Apple Developer Connection program, and an introduction to what to expect at this year's World-Wide Developers' Conference. All in all it was an informative tour of the technologies that current and future OS X applications will be developed in, of the direction that Apple has taken since their merger with NeXT in 1997 and their involvement of public communities in the development of the new Mac OS. Further reading | ||