August 91 - BAMADA Notes
the june meeting-
Software Development Tools
A capacity crowd of 85 turned out for the June meeting of the Bay Area MacApp Developers Association (BAMADA). All were eager to hear of the latest advances in software development tools, and they got what they came for.
MacApp 3.0 status
Richard Rodseth of the MacApp Team treated us to a status report on MacApp 3. He described the work that was being done with the streaming of view resources, support for stationery documents, keyboard selection of views, and UDialog. He also mentioned that the new MacApp debugger is nearly working.
Loïc Vandereyken of Acius then took the floor with a demonstration of Object Master, his syntax-aware source code editor. It's hard to describe Object Master; it is so much more than an editor. For example, it can display a class tree of the classes in the project, expanding or collapsing subtrees on demand, and showing various parts (methods, data, what have you) of some or all of the various classes, on demand. This view can be used to navigate through the source in an incredibly powerful manner. It creates and uses 411 documentation with ease. It supports Object Pascal, C++, Modula, and Rez.
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.
Best of MacHack
Following the Object Master demo, Steve Jasik of Jasik Designs gave us a brief summary of the MacHack conference's best hacks. Of those few he had time to demo, the group's favorite was "99 Bottles of Beer," which sang the song in MacInTalk fashion, starting at a user-specified number. Not much, perhaps-but darn funny, when you start at 45 trillion, 375 million, 231 thousand and 96. Maybe you had to be there.
Spec Bowers of Bowers Development was up next, with a demonstration of the latest version of AppMaker. AppMaker is a fascinating development tool; it is both a resource editor and a source code generator. It supports not only the Mac and MacApp, but also a variety of other platforms and systems, including XVT (a non object-oriented multi-platform application programming interface).
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.
As usual, all people looking for work or looking for people to hire were given a chance to express their needs. Also as usual, there were a lot more people looking to hire than there were to be hired. Among those looking to hire were Mike Walsh of Tri Star Market Data, Inc., at (415) 627-2345, who wanted someone with MacApp and AppleTalk experience, and Kenneth Victor, at (415) 964-9870, who was hoping to find a MacApp entrepreneur.
the July meeting-
FrameWorks for Windows 3.0
At the July meeting of BAMADA, the cream of Silicon Valley's MacApp community turned out to hear about object programming application frameworks for Windows 3.
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.
CNS Software Product's C++/Views
Jim Schwarz of CNS Software Products Division started the meeting with a demonstration of C++/Views. A true object programming application framework, C++/Views is now in version 2, and will soon release its first Macintosh version.
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.
Borland's Object Windows Library
Next, Chuck Jazdzewski of Borland International gave a slick presentation on the Object Windows Library (OWL), Borland's object programming application framework for Windows. Currently available only in Object Pascal, it is an open secret that a C++ version will be forthcoming shortly.
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.
Keith Rowe of Microsoft's Languages group explained that AFX stands for "Application Framework something." (Experimental?) AFX, not yet officially announced, is the result of three years of research into object programming application framework design.
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.
Zinc Software's ZIL
Following a break, John Christensen of Zinc Software introduced the audience to the Zinc Interface Library (ZIL). Unlike the other frameworks discussed at the meeting, ZIL bills itself as being only an interface framework, rather than an application framework. It is currently available for DOS text mode, DOS graphics mode, and as of a month or two ago, for Windows 3.
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.
Finally, we brought all four spokesmen on stage for a panel discussion. I was hoping to see fur fly as they ripped each other to shreds, fighting for the heart, mind, and market share of the audience-but they were too darn polite. Being videotaped might have had something to do with it; I know that it affected their answers to the question "to what extent did your frameworks borrow from MacApp?." I think there would have been much less hemming and hawing and general unease had the little red light on the camera not been glowing.
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).
Get the video
This summary could not possibly give justice to the full three hours of demos, discussions, and debates that made up the July meeting. So, if you want to know the whole score, buy a copy of the videotape from MADA, and see it all yourself-courtesy of Tom Becker of Applied Biosystems and Tom Chavez, MacApp Product Manager, who together did a great job with the videotaping equipment. n