Dev Conference 89
Developer Conference Report
By David E. Smith, Editor & Publisher, MacTutor
System 7.0 Detailed
Apple Computer Inc. previewed its new System 7.0 software direction to an estimated 1,500 software and hardware developers at the Worldwide Developers Conference in San Jose on May 9, 1989. The new version represents what Apple calls a feature release, which means Apple wants all users to upgrade to this version. It will be compatible with all Macintosh computers from the Mac Plus and up, but only 68030 based machines or those using the 68020 with a PMMU will have virtual memory capability under System 7.0. This version will shut the door on the older Mac 128K and Mac 512K machines, making the Mac Plus the official bottom of the product line, if it isnt already. To stay in the game, all users should plan on upgrading their Macs to the functionality of a Mac Plus. Beyond that, there is the question of whether a shop should upgrade all their machines to at least a 68030 based machine. Both the SE and the Mac II offer upgrade paths to the corresponding SE/30 and Mac IIx machines.
Go Buy Some RAM
In addition to having at least a Mac Plus machine, System 7.0 requires at least two megs of RAM to run. So plan now on attending a MacWorld Expo and buying more memory. Show prices typically run $150 per megabyte. Future Macintosh computers may have a ROM upgrade as well, allowing them to work with System 7.0 with only one meg of memory by putting more of System 7.0 in ROM. Both the SE/30, IIx and IIcx have ROM SIMM card slots to allow for a future ROM upgrade. Apple intends to move its entire product line to System 7.0 so they will find a way to make it work as cheaply as possible for their production units.
New Mac Rumors
The Apple press release for the conference makes mention of the fact that Apple expects to continue to offer an attractive low-end product with System 7.0. We leave it to the reader to guess what that means. Several comments were made that a low-end Macintosh is coming but it is hard to imagine what that might be although rumors suggest Apple has already figured out how to improve on the Mac IIcx and make it cheaper to build. Rumors have also suggested a new high-end Mac IIcx running at 25 mHz is due shortly. And the fact that the next Mac World Expo in San Francisco has been pushed back from January to next April suggests that Apple has some great new product to release that will not be ready until April. Put all this together and you can probably conclude the following:
New low-end Mac at the Boston Expo?
New high-end 25 mHz Mac IIcx Fourth Qtr.?
Lap-top Mac at the San Francisco Expo 90?
In the next twelve months Apple will release a low-end Macintosh and a 25 Mhz Mac IIx of some sort. These two products will compliment what Apple is calling the mid-range of the product line, the heart of their expected sales in the next 18 months, the Mac IIcx and the SE/30. Then in April, figure that Apple will release the long-awaited lap-top Mac. But if the portable comes out as a wimp machine with only a 68000 in it, then it will bomb. It better be at least a 68020 with a PMMU or it wont fly. The world does not need a battery Mac. The world needs a moveable Mac that really does fit under an airline seat!
The main parts of System 7.0 (read the stuff that Apple is committed to getting done on time) are the virtual memory, IAC, outline fonts and improved printing. The memory manager and other system software have been re-written to be 32-bit clean so that System 7.0 will include full 32-bit addressing. This will allow users to plug in 4 megabyte SIMM boards into the Mac motherboard for 32 megs of on-board RAM. Amazing isnt it? The physical memory limit will move out from the current 8 megs to 128 megabytes of RAM with a virtual address space of up to 4 Gigabytes. To make sure your applications are 32-bit clean, see technical note #212 & 213. Basically, you dont go around the memory manager by manipulating handles directly or trying to use the top 8 bits in a handle you have assumed to be only 24 bits of address.
Some of the fixes Apple had to do to the memory manager to make it 32-bit clean was to move the flag bits out of the top end of the master pointers, change the block header format and size, and change the zone header format and size. They also had to change the interface to the CalcCRegion in Quickdraw for custom controls (CDEFs), as well as clean up various OS, toolbox, Finder and MultiFinder problems. A lot of late-night soda pop didnt hurt either!
One interesting note about System 7.0 is that Apple will no longer special case the operating system for Microsoft software that can only run in one megabyte of address space. So older versions of Microsoft products may stop working under System 7.0 because the Mac will no longer check and load those products into the first meg of memory. The fact that Apple did this checking at all is a testimony of the importance of the Apple / Microsoft relationship when the Macintosh was first introduced. Obviously, Apple feels less dependent on Microsoft and is no longer willing to put up with their software constraints.
Virtual memory will extend the system RAM to typically double whatever RAM memory the user has, allowing more practical use of smaller memory machines. This will be invisible to the user; he wont have to worry about configuration or anything, it will just happen. As mentioned before, this feature will only work on 68030 machines or Mac IIs with a PMMU. The applications will see this memory as an extension of normal RAM space so no changes will be required to the applications to take advantage of virtual memory. Going out to the disk will decrease performance slightly and Apple is suggesting that a reasonable setting for the virtual memory is twice the RAM space to prevent a lot of disk thrashing.
Under System 7.0, there will no longer be a Finder versus MultiFinder choice. MultiFinder will be on all the time. The VM model is a true demand paged (4KB) model. In a future system release, perhaps 8.0, it will also feature protection and a typical mini-computer file system and preemptive scheduler (i.e., true multi-tasking). Incidently, the new Finder was written in C++ (it works on my machine!). Apple has about 200 authorized copies they are using internally, but they have not received the final 2.0 version from AT&T to yet make it available to developers. As a result, C++ is not expected to be available to developers outside of Apple until September. It will support MacApp however, when it is released.
Apple is finally including IAC in System 7.0. The implementation is not too unlike the one published in MacTutor last year by Frank Alviani and Tom Snively and Frank will have an expanded article on it in an up-coming issue. The main thing that the IAC gives you is a standard mechanism for applications to pass messages back and forth. It will also support dynamic linking of documents with a live copy/paste mechanism. Apple will define a set of standard messages called AppleEvents that applications can use to request actions of another program, such as open document.
To implement AppleEvents, the event manager has been changed to allow a high-level interface for program to program communications by applications. The event record data structure has been expanded. The mouse point has been changed to be a LongInt. If the what field indicates a HighLevelEvent, then message field and point field now indicate a class and type of message. New toolbox calls allow applications to post and accept these new high level events as they are called. An application can send messages to the Finder, for example, to print a report. Non-event type code (I/O drivers) can also communicate with applications with a low level interface to PPC services. If applications want to implement their own message protocol beyond AppleEvents, then they must register their protocol with DTS just as the creator tags are registered, so as to avoid mass confusion.
Whats That You Say?
The key to getting application-to-application communications to work smoothly is that everyone must speak the same language and that requires that Apple set the standard by defining what we all should be able to respond to. We are still waiting for Apple to define what is meant by formatted text but hopefully they will do a better job with IAC. The magic of the Macintosh was not the fact that you can cut and paste between documents, but rather, that Apple defined a standard TEXT and PICT data type that allowed multiple vendors to design tool applications that could read and write compatible documents. That standard data type needs to be extended to include formatted text and other data types as well as standard commands, or AppleEvents as they are being called. We encourage Apple to continue to lead the way in defining standard data types for both text and graphics as this will make the design of meaningful IAC applications much easier.
One of the important messages of the conference concerns something not officially talked about yet. Apple plans to define an official Apple Script based on HyperTalk and put it into the system. This will allow a common scripting language that any application can use, including the Finder. It means that developers can add user extendibility to their applications using Apple Script without having to write a parser or compiler into their program. At least that is how I hope it will work!
The Postscript Wars
Apple has declared war on Postscript with the announcement that Quickdraw will continue to be the imaging engine on the Macintosh, and in fact, will continue to be enhanced so that it is better than Postscript. The first salvo from that commitment is the release of Quickdraw outline fonts, a Layout Manager for kerning, and a new printing architecture. This means that there will be only one type of font in the system file from now on: outline fonts. But they will come in two varieties: Apple outline fonts or Postscript outline fonts. The new printing manager will download both types of outline fonts to the LaserWriter so that the user will not need to know which type of fonts he has in his system file. Both will get printed at any resolution in the same quality.
Outline fonts are defined by a quadratic curve and a stack based language instruction set. It is designed to be fast and flexible to allow for international extensions, and easy translation from other font formats. And again, this cryptic remark: flexible, not limited to type; designed for future System Software. What does that mean? Probably tied into future Quickdraw enhancements somehow.
Other technical features include projection and freedom vectors, automatic angle adjustment and a delta instruction for pixel placement at the smallest sizes. In Postscript parlance, I think this is called hints. The size of the dot can also be adjusted based on the print engine being used, which is important for high end typesetting. Other typesetting features include a Line Layout Manager that draws text by using a layout that describes kerning, justification, fractional position, optical alignment and other features important for easy support of non-Roman languages. Apple positions the Line Layout Manager in quality and complexity somewhere between TeachText and Page Layout, whatever that means. In addition to drawing text by layout, it provides for measuring the width of the line, determining caret location, highlighting text, and testing for a mouse hit within the text.
So why buy Postscript fonts anymore? From Apples viewpoint, you wont have to. To quote Apples press release the Apple font format will be all most Macintosh owners really need. The font format has been freely distributed to font vendors, and it has been designed so that font conversion can be done automatically. This means font vendors can easily and cheaply support the new outline font technology without having to pay royalties. Will this break the back of Adobe and Postscript by providing a cheaper alternative? Could be. Think of this: Postscript quality laser printers at half the cost of current printers, using Apple outline fonts. The current crop of official postscript printers and imagesetters (2400 dpi machines) include a license cost of upwards of $1000 to include the Adobe Atlas RIP in each machine. That translates into a customer cost increase of $2000. Take that away and the same $4500 Postscript printer now costs $2500 and gives the same results, for fonts, that is. In particular, it makes the now useless LaserWriter IISC into a very useful, and cheaper alternative to the LaserWriter NTX.
Another interesting note in the Apple press release is that while Apple is committed to maintaining excellent system support for Postscript printing, our policy is to not comment specifically on hardware products under development. Does this mean a new family of Quickdraw LaserWriter printers that support Apple Outline fonts but does not include Postscript? With the future planned enhancements to Quickdraw, will such a family of printers end up being more powerful than todays Postscript printers?
The obvious difference that still remains is the fact that Quickdraw is not as good as Postscript at defining a graphic image on the page. No rotated text, for example. So what is Apple doing about that? Unofficially, Apple is saying that Quickdraw is being re-written to be an object-oriented imaging system superior (and certainly faster) than Postscript. However, only 32-bit color and outline fonts will be ready in time for System 7.0. A future system release, perhaps 8.0, will include an all new Quickdraw imaging engine that will remove the final reasons for having to have Postscript at all. It will include new drawing primitives, floating point, 3D, animation, and possible hardware acceleration. The problem for Apple is, how do you extend the capability of Quickdraw, which is the heart of the Macintosh design, and not break everybody in the process? What Apple is saying, is that they will definitely not move to Display Postscript and that they definitely will upgrade Quickdraw to be at least the functional equivalent.
One area Apple could quickly move ahead is in the area of halftones and color. Postscript does not do a good job of either. In releasing print driver 6.0, Apple included the ability to halftone a color image on the LaserWriter. If Apple can shape its almost fanatic interest in Multi-media presentations into the more mundane and practical problems of pre-press by improving on high-resolution typesetting, splines, halftones and color separation, they can continue to dominate an industry they created with the LaserWriter. Pre-press technology is a multi-billion dollar industry. By quickly adding halftones and color separation to low-cost imagesetters that dont include an Adobe license fee, technology that now costs $40,000 and up can be obtained for $20,000, providing another huge market for Macintosh computers. This is where Apple could get ahead of Postscript with its Quickdraw enhancements and create a justifiable reason for building cheaper Quickdraw based imagesetters. At the very least, they would be much faster, something that would not be lost on the growing service industry building up around Linotronic and other high-end imagesetters. Lets hope that in improving Quickdraw, Apple puts its energy into pre-press issues like arbitrary text on a path, rather than the more exotic but less important issues like fancy animation.
How Applications will Break
The most radical change in System 7.0 will be in the new Print Manager. All current printer drivers, including the LaserWriter, Linotronic, Compu-Graphic, Varityper and everything else out there, will be incompatible with System 7.0. Apple, will of course, have new printer drivers for Apple printer products, but what about all those expensive imagesetters out there? They will have to either be able to use Apples LaserWriter driver, or they will have to re-write their printer driver to work with System 7.0. And applications wanting to take advantage of System 7.0 printing features will also have to make revisions to their dialogs. This one aspect of System 7.0 alone will almost guarantee every major software package vendor will be coming out with new versions to support System 7.0.
The main feature of the new printing manager is that the silly thing was re-written! It was a hopeless mess of outdated code, exceeded only by MacInTalk in ugliness. The new manager offers a consistent, uniform interface for all Macintosh computers and all printing devices, and makes printer driver writing, a matter of weeks, instead of months or even years, as it has been in the past. The intent is to allow a single image of a document on the screen (based on Quickdraw!) to go to any print type device without special casing, including a printer, another raster device, a vector device or whatever. Apple will provide print engines for a Quickdraw to Postscript device, Quickdraw to Raster device and Quickdraw to Vector device. Under this approach, plotters, screen capture devices and Postscript Imagesetters will all work the same way without changes to the application code.
At least, that would be the promise if Quickdraw worked the way it should. You still have the problem that Quickdraw just cant do some things that need to be done, so how do you get around that? Apple is working on trying to figure out what to do about PicComments and imbedded Postscript that many applications use to extend Quickdraws limited imaging ability. Whatever they come up with certainly will be designed to make future system expansion easier as Quickdraw evolves. One thing is for sure; nearly every application will have to be modified to take advantage of the new system. PrOpenPage, for example, has been changed to PrStartPage. The format of PicComments to indicate the start and end of postscript has also been changed. PrEndPage is used instead of PrClosePage. In short, everything is different. Of all the parts of System 7.0, this is the one that scares me the most. It impacts everything, and is intimately connected with Quickdraw, the new outline fonts and the Layout Manager in its implementation. Lets hope they do it right. One advantage of the new attitude is that Apple will actually encourage vendors to license the new printing driver toolkit to create new print drivers, even if the product competes with an Apple product. This should open up the creation of new peripherals for the Mac considerably.
New Finder Stuff
The Finder has been improved greatly under System 7.0. As was mentioned, there will only be MultiFinder, on all the time. So plan on always using WaitNextEvent! The file organization on the Mac has been changed. It now uses an HFS B-Tree mechanism for improved performance. New toolbox calls are provided for applications to access this B-Tree capability. Searching an 80 meg hard disk can be done quickly in 3 seconds.
Files now have a unique FileID reference that is insensitive to either a folder move, or name change. This is designed to eliminate the infamous lost dictionary dialogs. A toolbox call resolves the FileID into the customary directory ID and File name.
The Desktop file has been re-designed. It now has an entire Desktop Manager to manage it! This is supposed to improve performance on large hard disks with many files. A new File System Manager has been created that allows an application to use a foreign file system; i.e., MS/DOS. This should make it easy to write Mac applications that read and manage MS/DOS disks directly. Database access has been improved by providing a built-in query language called CL/1. This allows any application to become data base aware for accessing information on mainframe networks.
The sound manager has been re-written to support multiple channels, sequencing, a new MIDI manager, and audio compression and expansion. Kirk Austin is trying desperately to get some software out of Apple to give us a full report on how to plan on making use of all the new sound features.
Cant Talk Yet
One area that Apple did not improve on is MacInTalk. It seems that MacInTalk was a one shot deal that Steve Jobs had done just before the grand Mac opening in 1984. He wanted Mac to introduce itself with speech. The guys who wrote it offered to sell the source code to Apple, but the price was too high and Apple refused. The result is that Apple doesnt have MacInTalk and never did! The fixes in version 1.31 were done by hacking the disassembled code to get it to run on a Mac II! One of the clear messages Apple got back from the conference was that people want an improved MacInTalk that is supported. Apple has promised to provide an interim solution of a new MacInTalk that is slightly better, supported and runs about 100K, in the short term; i.e., the next twelve months.
Tool Making Is Back!
Finally, there are several user interface enhancements. Desk accessories are still supported, but now, any application can be a desk accessory by simply dropping it into a special Apple folder. So there is no reason to write a DA any more. Just write a small, dedicated application instead. This should give birth to a new tool industry on the Mac. With virtual memory, IAC and arbitrary desk accessories, small, powerful, single function tools are now the way to go in Mac software. Forget the monolithic, three years late, 900K integrated mega-application! Develop four well-connected 200K tool applications instead and drop them in the desk accessory folder! You can do one every six months and eat during your development cycle!
Early Christmas Present
Apple has begun releasing some of the System 7.0 goodies early. These include 32-Bit Quickdraw and the new LaserWriter 6.0. The following list of files give the updated versions of the color quickdraw release that are different from those supplied with System Release 6.03, the current latest version:
General: 3.3.2 Monitors: 4.0
32-bit Quickdraw: 1.0 PrintMonitor: 1.3
LaserPrep: 6.0 LaserWriter: 6.0
If you have these versions of these files, then you have the new color quickdraw updates. They are further identified as coming from Apples Color Disk 1.0" in the GetInfo dialog box.
In addition to getting true color for the new 24-bit color video boards, you also get Color Quickdraw to color PostScript conversion and halftoning of color images on monochrome Postscript printers. And the new color quickdraw includes a BitmapToRegion function!
So what can we say about the future? Get into object-oriented programming and MacApp! The direction Apple is going clearly indicates that Mac system software is converging with object-oriented programming and it is only a matter of time before the toolbox is entirely object oriented. The fact that the new Finder was written in C++ should be indication enough of the change that has taken place within Apple. MacApp is now being supported at the highest levels inside Apple and very soon we should see MacApp object support at very nearly the same time we get MPW Pascal and C interface support for new system feature releases. The latest 3.0 final version of MPW and the 2.0 release of MacApp form the first fully functional, finished version of an object-oriented environment that MacTutor can encourage all developers, both Pascal and C, to get behind and support. For our part, we intend to devote a considerable portion of MacTutor editorial space to object Pascal, MacApp and C++ as the best way to develop Macintosh software that works with System 7.0 and beyond. Let us hear your comments!
Write me care of MacTutor and get yourself published.