June 91 - BAMADA Notes
It was Debugger Night in Cupertino at the May BAMADA meeting. The meeting started
with Mike Lockwood of Savitar, who demonstrated SourceBug, Apple's new source-level
SourceBug has special features for debugging MacApp programs, but can be used with
non-MacApp programs as well. It requires MPW 3.2 and System 7, or 6.0x with the
SADE version of MultiFinder. It looks like a cross between MacBrowse and THINK
Pascal's debugger. Its windows contain the source at the bottom, with a class list in the
upper left and a method list (for the selected class) in the upper right. There is no fields
(aka members) list. Alternatively, a stack crawl can replace the class and method list
across the top of the window.
To set a breakpoint, drop a stop sign on the statement where you want to stop
execution. A pointing finger indicates the current PC, with similar but dimmed fingers
indicating each step in the current call chain.
SourceBug supports both source and assembly-level debugging, side by side in
different windows, each updated as you step through your code. You can step by source
statement or assembly statement, depending on whether a source or assembly window is
All in all, SourceBug looks great, with its simplicity, elegance, and ease of use. It's
still missing some features, but that's not surprising in a pre-1.0 version. Give it a
year or two to mature, and it will be a serious contender.
Steve Jasik of Jasik Designs presented The Debugger, which is both a high-level
debugger, like SourceBug, and a low-level debugger, like MacsBug. The Debugger is not
limited to debugging MacApp programs; it can debug anything-DAs, INITs, non-MacApp
applications, and XCMDs or other code resources. It uses a hypertext metaphor, allowing
the user to select a function name to display its source, a variable name to display its
value, or a type name to display its structure.
The Debugger contains a complete evaluation language, allowing the user to set
breakpoints on arbitrarily complex conditions. Its assembly-language display
juxtaposes the assembly and the source that produced it. One can step by source
statement or assembly statement, depending on whether the window is displaying a
source or assembly listing.
INCREMENTAL BUILD SYSTEM
Having impressed the audience with The Debugger, Jasik went on to wow 'em with the
Incremental Build System (IBS). IBS allows you to edit, recompile, and relink portions
of your program's source while it is running. To use it, you must break into The
Debugger, and take a "side door" into MPW. Once in MPW you can edit the
implementation of a number of routines; you can't edit interfaces, however. Then,
execute a single menu command and bingo-within 30 seconds you're back in The
Debugger, ready to re-enter the application, with the changes linked into the running
code. The improvement is dramatic, considering that the alternative is often a five-
minute wait for the MPW linker to build a sym file.
Everyone was impressed with The Debugger's power and flexibility. The Incremental
Build System was a hit. Now, if only Jasik could get his user interface under control, and
produce some usable documentation.
Before yielding the floor, Jasik also demonstrated Acius' new syntax-directed source
code editor, Object Master, which is still in development. Object Master communicates
with MPW, ToolServer, and IBS via AppleEvent hooks. Object Master's source code
editor is full-featured and syntax-aware; you can select which of a half-dozen language
editors to use on any given file (such as Object Pascal, C, C++, or Rez). The code is
displayed in color, with different colors highlighting comments, keywords, etc.
The system works very well with IBS-the editor can automatically tell IBS what
routines have been changed, so that only they are recompiled and linked. In MPW, you
have to remember to keep track of this yourself, manually.
ObjectMaster is an excellent example of the way a tool should work under System
7.0-it does one thing, and does it well, using AppleEvent hooks to other tools that do the
tasks it leaves undone. It also works under System 6.0.x. Of course, it was written in
MacApp. It should be released later this year.
Our final speaker, Chris Arbogast of Exis, demonstrated Ice Pick-a great view editor. It
can do a lot of things ViewEdit can't do: multiple selection, derezzing, displaying views in
a hierarchical outline, and "running" a window-in which buttons flash, radio button
clusters work right, popups pop up, and so forth. Ice Pick, like Object Master, is still
under development, but Arbogast was handing out beta versions and non-disclosure
agreements right and left after the meeting adjourned.
JUNE BAMADA AGENDA
The June meeting of BAMADA will be held Wednesday, June 26, from 7 to 9 p.m. in the
Mountain View Room at Apple's City Center Four, 20450 Stevens Creek Boulevard (on
the southwest corner of Stevens Creek and De Anza Boulevards).
The meeting will feature demonstrations of Object Master and AppMaker. Both
applications will be presented by their authors: Loic Vandereyken of Acius will
demonstrate Object Master, and Spec Bowers of Bowers Development will demonstrate
the latest version of AppMaker. AppMaker is an interface building tool and code
generator that has the ability to generate code not just for MacApp, but also for XVT,
Windows, and other platforms. Everything you've ever wanted ViewEdit to do, AppMaker
does, plus a whole lot more.
A representative of the MacApp Team will be on hand to discuss MacApp 3.0a2, which
should hit the streets about that time on Apple's ETO#4 CD. Don't miss this opportunity
to hear about, and help define, the future directions of MacApp.
TENTATIVE JULY BAMADA AGENDA
July's BAMADA meeting topic will be "Object Application Frameworks (OAFs) Other
Than MacApp." It will feature demonstrations and discussion of up to four OAFs:
Borland's Object Windows Library (OWL), CNS' C++/Views, Microsoft's AFX, and
Zinc's Zinc Interface Library (ZIL). So far, I have tentative agreement from three of the
invited participants, and a firm commitment from the fourth. We'll use the meeting to
compare and contrast these OAFs with MacApp.
This special meeting will have special hours-6 pm to 10 pm-to make sure we have
enough time to get good demos of the OAFs, plus have time for a lively panel discussion at
the end. It may also be held in a special location, not yet determined, in order to hold the
larger than usual crowd I expect this meeting to attract. All of the OAFs being
demonstrated target Microsoft Windows 3.0; two also target the Mac; one also targets
DOS in both text and graphics modes.
If you're thinking of porting your MacApp application to any of these other platforms,
and you don't want to give up the application framework approach, or if you just want to
see how other OAFs compare to MacApp-this is your best chance to get down into the
nitty-gritty details of all your alternatives at once.