by Larry Peng
Trip Report for Apple Worldwide
May 21-25, 2001
May 29, 2001
This report is a combination of my notes, as well as links to more specific topical summaries posted by other people in the Apple developer community. Attendance is up 20-25 percent over the record attendance of last year. There is 4000+ people attending. The bulk of the increase is from Unix and Java developers.
Keynote speech (Steve Jobs and Avie Tevanian)--May 21
Steve's opening line:
"Why did I come back to Apple? I did not want to use a Windows box for eternity!"
There were a few hardware announcements:
- Starting today, the 17 inch CRT is end of life. Apple no longer makes external CRT's, everything is panels. Panels all LCD, active matrix, digital driven, contain usb hubs, and computer powered.
- New 17 inch flat panel model introduced today. Up to 1280x1024 for $999. Available in early June.
- Cinema display price drop to $2499. 15 inch panel price drop to $599
Now onto OSX...
Steve began by saying how good it was not to have to talk about OSX is just around the corner, versus being able to talk about today as a shipping product.
- 600 native apps available today for OSX (he did not break it down any further).
- Impressed upon developers the need to get on the OSX bandwagon.
- Cited MacWorld (April 2001) survey--main point was that customers are demanding apps go native, and that app switching is on their minds. If your competition gets native first, you may lose customers. The survey numbers were approximately:
- 84% of respondents had Mac OS X compatible systems
- 68% have already purchased Mac OS X or plan to by mid year
- 82% plan to upgrade as soon as apps are available
- 57-82% (per market segment) will switch apps to get native apps sooner
Apple welcomes feedback. They know things are not perfect, and there is room to improve. Gotten 40K feedbacks since the public release. Apple has 1000 engineers devoted to OSX and continual improvements. Users comments are on performance, native apps, the dock, etc. Developers comments are on Performance, Developer Tools, Documentation, Precision Printing, Advanced Audio and AppleScript suppport.
Two Carbon apps were featured--Macromedia Freehand 10 and FileMaker 5.5.
Macromedia demonstrated Freehand 10 and reported performance increases (40-50% for some operations) over the Mac OS 9 version. MacroMedia is targeting the next 6 months to ship carbonized versions of Fireworks, Dreamweaver, and Flash.
With Freehand, this brings to two (as far as I know) commercial and native vector based graphics applications to ship for Mac OS X. The other title is Create (part of the Stone Studio application suite) by Stone Design (Albuquerque, NM). Stone Design has been doing Cocoa development since the days of NeXTStep/OpenStep.
FileMaker, Inc demonstrated carbonized FileMaker 5.5. Carbonizing was best for FileMaker since it is hundreds of thousands of lines of code (some dating to the 80s). FileMaker has been carbonizing for awhile, and the application was released 50 days after Mac OS X shipped. Filemaker 5.5 supports databasing PDF files natively--but only on OSX (since OSX handles PDF as a native format). FileMaker expects to ship FileMaker Server this summer, and it is a Cocoa based application.
Scott Forstall (Director, Apple Frameworks) did a Cocoa demo constructing a simple Quicktime movie editing program with 0 lines of additional code in 5 minutes. The 13 line word processor demo just got usurped. He demonstrated how to create a fairly powerful app with Cocoa, and how Interface Builder works. The demo had a playback window, a box containing a visual list of movie clips, a container in which to drop sound files, and several buttons (Play, Save, Split and Delete). He dragged several QT movies into the list, re-arranged them, played one to the halfway point and split it at that position, dragged a soundtrack into the soundwell, and saved the result out an edited Quicktime movie. Adding up the extra time to show us the movies, and describe what he was going to do, the total presentation time was about 10 minutes. The custom Cocoa object which acts as a wrapper for QuickTime, and provides the control layer for the app, is less than 1000 lines of code. It does not yet provide access to eery QuickTime call, but certainly covers the basics.
Jobs commented about Java 2 and Unix services. Apple is the only major commercial vendor to ship systems with a built-in Java 2 virtual machine as part of the OS. With the Berkeley Unix foundation of OSX, Apple is getting serious interest from software makers who previously ignored or would not touch a Mac. This includes Biotech, engineering, networking, academics, science, entertainment, hi-end prepress, etc.
Big surprise......as of today, Apple is preinstalling OSX along with OS 9 on all machines. The machines are configured as dual boot systems, and OS9 is the default. Machines already in the channel should come with a boxed copy of Mac OS X. With Apple's sales volume, Apple may be the largest UNIX supplier by the end of the year.
Steve reviewed the new Apple stores in Virginia and LA. Two principal goals are to grow the Mac market, and to provide a place where Apple can show off their stuff and solutions. He showed a video describing the stores. Based on the video, a trip to LA is in order :), or at least until a Bay Area version opens up. Stores combined have done $600,000 of business (7700 visitors, 238 Macs sold, 935 software units) over the first weekend. Portions of the video are online (http://www.apple.com/retail/).
Avie Tevanian (software VP) then took the stage to talk about OSX from a software engineering viewpoint. He emphasized the major goals of OSX:
- Unix power plus Mac simplicity
The user simplicity and application environments of the Mac coupled with the modern OS buzzwords (pre-emptive multitask, protected memory, multi-thread, multiprocess, etc), availability of BSD Unix, and opening up the core OS by leveraging and giving back to the open source community. And do this without significant compromises, as this is Apple's foundation for the next decade or so.
- Open Standards
Examples like OpenGL, Apache, SML, Unix, PDF, Mail, Networking, etc. The need to reduce proprietary stuff, and minimize the not-invented-here attitude.
- Killer graphics
Quartz (with ColorSync correction built-in), OpenGL, QuickTime, fonts, etc.
- Enabling killer apps
- Advance application frameworks like Cocoa, Carbon, Java 2, etc.
- Providing outstanding software tools for creating and performance tuning applications, whether they run on Mac OS X or Mac OS 9.
- Software tools widely available via the Internet and in the retail Mac OSX box.
- Deep Internet integration
- Include the BSD Network Reference Stack
- Include security services like the Keychain and CDSA standards
- Seamless mobility
- Sleep and wakeup functions work well, particularly for portables.
- Automatic networking so as to use whatever connection is available without user intervention.
- Global Citizenship
- Use of Unicode throughout.
- Multilingual support. Support can be for individual apps and set per user.
The March 24, 2001 OSX GM supported English, Japanese, German, Dutch, Italian, Spanish, and French. As of WWDC the next set of language support is now GM (traditional and simplified Chinese, Swedish, Korean, Finnish, Danish, Norweigan, and Brazilian Portuguese) and will be available at the end of May.
- Gentle migration
As Apple realizes that the transition to OSX will not happen overnight, they wanted to provide ways for customers to transition to the new system. Hence we have the Classic environment, and the ability to dual-boot OSX with OS9.
- Digital Hub
- USB and Firewire device support (handhelds, MP3, Camcorders, etc.)
- iMovie, iTunes, iDVD, etc.
- OSX Screensaver as an example to show the integration of OpenGL, Quartz, and QuickTime. Most file formats supported by Quartz and QuickTime (JPEG, PDF, TIFF, etc) can be used by the screensaver.
Additional apps featured/demoed
- Tevanian gave a great demo of the MIDI (music) support of OSX--midi playing from local files on the computer being mixed with midi coming from a person playing a keyboard in real time. And while that is going, he launched a couple of apps, browsed the web, and checked his email.
- Adobe showed Premiere 6 beta as a Carbon app--no ship date given.
- Drive10 apparently shipping from Micromat.
- Create from StoneDesign (Albuquerque, NM)
- Tony Hawk skate boarding game--ironically supposed to be a premiere title for Microsofts XBox! Guess this is Apple's jab for what happened to Halo.
Other big software announcements...
WebObjects 5 is available as of today! Written in Java 1.3. HTML and Java Clients.
- OS X Server v10 is available today!--this is the new server based on OSX. It supersedes OSX Server 1.2 which was released almost a couple of years ago. Tevanian highlighted a few items about OSX Server 10:
- AppleShare IP + OSX
- Full GUI administration, plus the server can be remotely administered.
- File serving by AFP over IP, NFS, Samba and FTP
- Internet services:
- Quicktime Streaming Server 3
- Mail services (IMAP4, POP3, SMTP)
- Virtually every significant network protocol supported
- Management tools:
- NetBoot 2
- Mac Manager 2
- NetInfo and extensible Directory Services (built-in support for LDAP)
Mac OS X Overview Website: http://www.stepwise.com/SpecialCoverage/WWDC2001/202.html
Specific Topical session notes--I have taken the liberty of making heavy use of Stepwise.com for links on some of these sessions.
Application Frameworks Overview
There are at least 5 different frameworks that developers can use to develop applications for Mac OS X.
It is a full implementation of Java 2 Standard Edition version 1.3. It utilitizes the Hotspot client virtual machine and the Swing UI, and includes Java 2D, printing support, and drag and drop.
Apple integrated the Swing UI to the OSX Aqua interface, and the Swing UI libraries are shared among Java apps. If a developer does not use the library to tie into Aqua, then the Java app uses the Swing interface. QuickTime is Java enabled. Facilities are provided to create double-clickable Java applications. WebObjects 5 is now done in Java 1.3. With Java 1.3 part of the standard OS distribution, Apple has a unified Java runtime environment--rather than vendors trying to ship their own implementations.
At a simple level, this is the subset of the Classic Mac Toolbox rewritten to function on top of a modernized foundation. Although touted as the bridge for existing Mac OS 9 apps to come over native to OSX, it is not just a port of the Mac Toolbox. Carbon continues to evolve and is a native framework in its own right. It can be used to develop applications and plugins. However, it is NOT to be used for drivers or extensions. Use I/O Kit for drivers. OS 9 extensions no longer exist in OSX.
For developers bringing over their OS 9 apps via Carbon, Apple recommends first doing a lazy port (minimal optimization) first. Then utilize the developer tools to fine tune apps for OSX or OS 9. This allows you to account for the fact that the runtime characteristics of OSX and OS 9 are rather different.
These are the frameworks derived from NeXTStep/OpenStep. These are highly polished frameworks which accelerate development, are dynamic, easily extensible, and allow for reuseable and compact code. For developers coming from the Unix/NeXTStep, and for developers of new applications (or apps with little legacy code), Apple suggests going this route.
Cocoa Website: http://www.oreillynet.com/pub/a/mac/2001/05/18/cocoa.html
Carbon and Cocoa share a lot of underlying code through the CoreFoundation frameworks. CoreFoundation provides support for items such as Unicode, XML, application packaging and multilingual support, and Preferences. As such, Apple does not consider Carbon a transitional framework. Rather it is a full partner with Cocoa, and in some cases Carbon and Cocoa call on each other for services.
Based on BSD 4.4 lite, Apple intends to be POSIX compliant, although it is doubtful they will go through the certification process. A full set of command line tools is part of OSX. As there is a very large amount of applications written for BSD and other Unix-like systems, there exists a large potential for these apps to be easily ported to OSX. However, from a Mac user point of view, creation of a GUI front end is critical. Apple suggests using Cocoa (preferred) or Carbon to create the user interface.
A first release of CD's containing software for Darwin was released at WWDC. This is the Darwin Collection, published by Prime Time Freeware. The CD's contain 2000 software programs from the FreeBSD ports collection. Many of these apps currently utilize XWindows. I have not tried it yet, so I do not yet know if you need to login as >console (to kill the Aqua window server) to run XFree86 (4.0.3 provided on the CD's) or whether they will work utilizing XServers which run along side Aqua (e.g. the XonX package created by the LLNL Source) or XTools from Tenon, Inc. The central point is that quite a bit of software is coming over given OSX Unix services.
XonX software Website: http://snd.llnl.gov/macosx/opendev/index.html
Major technologies involved is Quartz, OpenGL, and Quicktime.
Lightweight C library for 2D drawing
Supports Apple Type System (TrueType, pluggable font) and Type 1 Scalar (e.g. ATM)
Built-in ColorSync support.
accelerated for NVidia and ATI
Apple has modified Quartz nomenclature, reflecting the fact that Quartz does more than just 2D drawing. The portion which deals with 2D drawing is being called Quartz 2D. The other portion (window server) layered underneath Quartz 2D, OpenGL and QuickTime, is called the Quartz Compositor. Apple views the windowing system as a digital imaging compositor, rather than just a switcher between 2D/3D, etc.
Quartz, QuickTime, and OpenGL all optimized for G3 and G4, and are SMP aware. With the concept of the windowing system being a compositor, the graphics services can all call on each other when needed. An example of this is the OSX screensaver.
Please also see the following links from Stepwise:
Quartz Imaging Early Bird Session: http://www.stepwise.com/SpecialCoverage/WWDC2001/200.html
Graphics and Imaging Overview Session: http://www.stepwise.com/SpecialCoverage/WWDC2001/201.html
Apple's stated goal was to make OSX a premiere Java development platform.
They have pulled over Sun Java2 standard edition with the Swing UI libraries, and tied Swing to the OSX Aqua UI. On top of this, Apple added its own services--WebObjects, access to QuickTime via Java, and access to the Cocoa framework via Java.
The integration with Aqua allows Swing to look great, allows for menu placement where Mac users expect it, integrates with Quartz 2D, and is supported out of the box.
Two applications to illustrate the Aqua integration were shown.
First was Moneydance (by Sean Riley, Chief Technical Officer, Appgen Personal Software). This program is a financial management program aimed at small and mid-size business, and written entirely in Java. From the user standpoint, it looked like a standard Aqua application. Interestingly, Sean pointed out that the code was first done on Linux and FreeBSD PC's, and pulled directly over to OSX. He made a few small additions to the code to take advantage of Aqua, but nothing else. Finally, Sean indicated that he has switched over to OSX as his primary development platform.
The second demo was JBuilder 5 by Blake Stone (Chief Scientist, Borland). The point of this demo was that JBuilder is completely written in Java, and takes advantage of Aqua. A session later in the week was devoted to JBuilder. I did not make the JBuilder session, but I suspect the content was similar to what Blake showed at LLNL's Mac Technical Seminar Series about 2 months ago.
As, I understood it, the roadmap for Java in 2001 on OSX was stated as follows:
It was stated that Internet Explorer Preview Release 2 (supporting applets) was going to be released early the week of May 21.
On May 25, on the Apple developer site, a developer preview of Java 1.3.1 was released. This release includes better support for applets in the browser, graphics improvements and a preview release of the Hotspot 1.3.1 interpreter.
Targeted for July, Apple expects to issue an official update to Java 1.3.1. Sun apparently blessed version 1.3.1 the week before WWDC.
Interestingly, this means that Apple would be among the first vendors to implement Java 1.3.1. This is quite a contrast from Mac OS 9 in which Java support was significantly behind.
A demo of Internet Explorer showed the Sun SwingSet demo running inside the browser. Work on applet launching within OmniWeb is in progress as well.
Larry Abrahams (Director, Java 2 Standard Edition, Sun Microsystems) then took the stage. He indicated that Sun will deliver the beta of Java 1.4 the week after WWDC.
Finally, Apple showed (using JBuilder 5) hardware acceleration of the Swing UI. Depending on what was being done, performance improvements of 8-23X were seen using CaffeineMarks. Or 2-3X better when using SwingMarks. The primary demo was seeing that manipulation and refresh of windows in JBuilder was fluid with acceleration, versus the occasional stutter when not accelerated.
Additional info: http://www.oreillynet.com/cs/weblog/view/wlg/360
Mac OS X Server Session
Mac OS X Server Overview: http://www.stepwise.com/SpecialCoverage/WWDC2001/309.html
Directory Services Session: http://www.stepwise.com/SpecialCoverage/WWDC2001/307.html
Networking Overview: http://www.stepwise.com/SpecialCoverage/WWDC2001/300.html
Extensible Kernel Networking Services: http://www.stepwise.com/SpecialCoverage/WWDC2001/304.html
Compilers and Development Tools
Apple uses the gcc compiler (2.95.x) for OSX (located in /usr/bin/cc). The entire operating system is itself compiled via gcc. Note that, although obselete, the OSX Public beta had portions of code compiled with gcc 2.7.x as well as 2.95.x. For the GM public release, everything is compiled with 2.95.x.
Apple enhancements to the standard gcc distribution include integration with ProjectBuilder, Objective-C, AltiVec, framework integration, and Mach-O runtime support. Apple is the official maintainer of the Objective-C aspects of gcc.
Upcoming improvements include use of gcc 3.x and the resurrection of Objective-C++. Portions of current internal builds of OSX are now compiled with gcc 3.x. There will be issues with C++ under gcc 3.x, most notably in how some of the ABI's are changing. However, this will not affect the I/O Kit of Darwin/MacOSX. The I/O Kit, used to create drivers for OSX, is a subset of C++ without the bells and whistles. Apparently, the bells and whistles is what may have problems with the changing C++ ABI in gcc 3.x.
Objective-C++ is back, with improvements on the earlier NeXTStep implementations. Within rules, this allows a mixing of Objective-C and C++ code. In addition, it provides one way for C++ apps to utilize the Cocoa frameworks of OSX. The recommended source file extension is .mm (earlier extension of .M is still supported but discouraged since the HFS+ filesystem is not case sensitive--though case preserving).
Project Builder introduction: http://www.stepwise.com/SpecialCoverage/WWDC2001/301.html
Interface Builder introduction: http://www.stepwise.com/SpecialCoverage/WWDC2001/900.html
Apple is looking to provides tools updates on about a quarterly basis. The first was here at WWDC 2001. They are expected to be downloadable, and also given free as part of the developer mailings for select and premiere developers.
Other commercial development environments mentioned (not a complete list) were Absoft Pro Fortran (beta now, hoping to go GM in June 2001), JBuilder and ZeroG and VMGear for Java, CodeWarrior, and RealBasic.
Finally, there is the issue of g77 Fortran. According to Apple Science and Technology Marketing reps, Apple will not productize g77 but is trying to work with the open source folks to get it ported over. The people they are working with are at Penn State, and the majority of the work is done. They are still weeding out reliability issues, and quirks caused by the move to gcc 3.x, so they are not ready to post things yet. Apple folks told me that Penn State described the g77 Makefile as the "Makefile from hell."
Mac OSX ships out of the box with the root account disabled, remote services turned off, and (starting with the 10.0.1 update) secure shell installed.
Kerberos port is progressing well. A developer release is available, with the public release scheduled for 3rd quarter, 2001.
There was a members meeting of the STOS Consortium (Secure and Trusted OS) which I attended. Attendance included members of Apple's security and Core OS enginnering groups, and representatives from LLNL (myself), Sandia, TRW, NSA, and academics. What can be said here are two major points:
Science Advisory Group Meeting
I attended a luncheon meeting with the Apple Science and Technology Markets people in which we could voice concerns and praise.
Richard Crandall, Ph.D., head of the Apple Advanced Computation Group, gave an overview of what his group is doing. One example of their work is seen in the G4 optimizations for DVD encoding--which is part of the DVD software that Apple ships. One thing they are interested in is providing "enabling software", sample codes, and vectorized libraries for the G4.
As usual, there is too much to see and do. Major growth in the last few years in attendance--from around 2000 to 4000+ people.
By no means does this report comprise a full synopsis of all the sessions. There were many additional sessions (WebObjects, localization, filesystems, kernel technologies, etc) that I was not able to attend for lack of time.
If events unfold like last year, I expect that within a month or so QuickTime streams of WWDC 2001 sessions (except the keynote) will be available for viewing on the Developer site. Shortly after that, there will be DVD sales containing QuickTime movies of all the sessions (except the keynote).
Any questions, concerns, etc., let me know. Thanks.
Lawrence Livermore National Lab