



More than anything else, Object Master struck me as a tour de force in the use of AppleEvents: it had excellent hooks to MPW, ResEdit, Jasik's Incremental Build System and Debugger, and (soon) AppMaker, for example. These AppleEvent connections allow Object Master to be focused on source code browsing and editing, while leaving related tasks, such as compilation, to the tools that do them best. If you love the integrated THINK environments, you owe it to yourself to look into using the suite of products described above. It's amazing.
The Object Master demo proceeded in near silence, punctuated only by the occasional shocked gasp or awed expletive. The first question from the audience was "When, and how much?," which seemed to sum up the audience's reaction concisely and completely.
Acius, in response to overwhelming demand for prerelease versions, is now taking orders for beta versions. Contact Acius at 10351 Bubb Road, Cupertino, CA 95014, (408) 252-4444 or fax (408) 252-0831, or via AppleLink at D4444.
AppMaker is a system for producing professional, commercial applications-it's not just a prototyper. But still, it shines when used for prototyping: its use of direct manipulation to modify visual elements is outstanding, for example. Its ability to generate the source for a given prototype application can be used as in introduction to MacApp programming. This is undoubtedly the fastest way to get into MacApp programming I've ever seen.
AppMaker has some great tools for creating palettes, which can otherwise be a rather cumbersome programming task. Its code generation is based on templates, which can be modified by the user of AppMaker to ensure that the generated code conforms to whatever style guidelines the user desires.
Bowers' laid-back presentation style was enjoyable in itself. He was just sitting back, having a good time, showing off his cool tool-kind of like a jazz musician lost in the rhythm. If you really want to get into the swing of MacApp programming, look into AppMaker.
To hold the record-breaking crowd of 115 attendees, the meeting was held in Apple's De Anza Three Auditorium, rather than its usual place in the Mountain View Room of Apple's City Center Four.
C++/Views is a Smalltalk-like single rooted hierarchy. It encourages, but does not require, a Model-View-Controller (MVC) application structure. Metaclass information is maintained at run time to allow operations such as class membership testing or "to each subclass of Foo, do this."
More than just a framework, C++/Views comes with a browser and other tools to make application development a breeze. New members and methods can be easily added from the browser, which keeps each class' header and implementation files in synch at all times, eliminating a large source of programmer errors.
C++/Views is driven more by its Windows roots than by the Mac, as is made clear by the fact that its support for Windows features such as Dynamic Data Exchange (DDE) and Multiple Document Interface (MDI) will precede implementation of System 7 features such as AppleEvents and the Edition Manager. But, given the relative sizes of the Windows and Mac markets, this is not entirely without reason.
While nearly as broad as MacApp 2, it is not as deep, nor as mature-its classes have fewer methods, and it generally does not aspire to do as much as does MacApp. Apparently used mostly for corporate in-house and VAR development, Schwarz could not name a single shrink-wrapped commercial product developed using C++/Views. CNS has big plans for C+/Views, however, and seems to be committed to its further development. This is a serious tool, which will be getting even better with time. Keep an eye on it.
The goals of OWL are, primarily, to encapsulate Windows in an object programming application framework, to make this framework work as fast as possible, and to avoid restricting direct access to Windows.
To achieve these ends, Borland has cut a number of corners. First, it has extended Object Pascal and C++ in nonstandard ways, to simplify and accelerate the handling of Windows messages. When a method is intended to act as a handler for a specific Windows message, that message is indicated in the declaration of the method. This allows the Windows message dispatching code to bypass the normal method selection mechanism and go straight to the message handling routine.
While the development, runtime, and even code documentation advantages of this scheme are self-evident, the audience voiced concern about the use of any nonstandard language extensions that might reduce the portability of the code. Still, the Borland library looks like a good tool, if one wants to develop a Windows application quickly, and never expects to move that code to another compiler or platform.
Rumor has it that Borland C++ 3 looks extremely hot, with the Integrated Development Environment (IDE) running entirely under Windows. So if your boss is breathing down your neck about Windows, and you're concerned more with meeting your schedule than anything else, watch for its debut.
Begun as an internal project in Microsoft's Application group, AFX was first incarnated as an abstract, general, multi-platform framework that was so complicated, even its designers couldn't figure out how to use it. So, they redesigned it to be a little bit closer to the operating system, and a lot easier to use. They still consider multi-platform, single-source development to be a major goal of the project, however.
Understandably, the audience was concerned that portability to the Macintosh might have been sacrificed in moving AFX "closer to the operating system," since that operating system was Windows 3. Rowe gave his assurances that Microsoft was as concerned about this issue as was the audience. After all, Microsoft had to worry about keeping the Windows and Mac versions of Excel and Word in sync; they'd benefit from multi-platform code reuse as much as, or more than, anyone else.
Rowe could not give a demonstration of AFX, since it had not yet been formally announced. But its vaporware status did not prevent him from hyping "the great and powerful AFX" in the subsequent panel discussion. Given Microsoft's resources and experience in multi-platform development, it has the potential to be awesome. We'll just have to wait patiently to see the man behind the curtain.
AFX will ship in source form with Microsoft C(++) version 7. That also has not yet been officially announced.
The best part of the demonstration was when Christensen switched an application, while it was running, from text mode to graphics mode. Very impressive. This kind of flexibility is made possible by the level to which Zinc has abstracted event management. It doesn't quite carry over to the Windows version, though. A recompile and relink are required for that.
Christensen ran an example program that displayed a person's biorhythms, which shows just how long these guys have been working on this stuff. The demo showed that I was coming off of an emotional high, but that my cognitive abilities were very low. I got excited by the demonstration, but I have to admit that at the time, I didn't fully understand it.
As ZIL is not an application framework, a feature-by-feature comparison of it with the other frameworks (or with MacApp) would be inappropriate. It is clearly suited for the writing of applications for which DOS text or graphics mode might be required. It was the only framework demonstrated that supports those "platforms."
No Mac version is planned, although Christensen said that he was open to the idea, should enough people clamor for it (or threaten to throw money at him). For a marketing guy, Christensen did an excellent job presenting ZIL. Don't hesitate to contact him if you think it might suit your needs.
Having gotten that awkward moment out of the way at the beginning of the discussion, however, the panel answered subsequent questions from the audience pretty freely. The discussion ranged from the possibility of making their various frameworks more interoperable ("We agree!" they chorused in reply, "Have the other vendors adopt mine!"), to the request by the Microsoft representative for beta testers for AFX/Windows ("Where do I sign?" replied a significant portion of the audience).



