August 91 - BAMADA Notes
BAMADA Notes
James Plamondon
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.
Object Master
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.
AppMaker
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.
Networking
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.
Microsoft's AFX
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.
Panel Discussion
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