September 93 - MADA at MacWorld
MADA at MacWorld
The MADA meeting had a small turnout of around forty people in the CityView Ballroom at Boston's World Trade Center (apparently we were competing with a Newton developer meeting). Those present were treated to a display of useful tools and frameworks. The meeting time was kept to a little over two and a half hours in hopes that the audience could remain awake from begining to end. QKS and Component Software also raffled off free copies of their products.
Howard Rosenfield gave a short talk on the status of Bedrock and MacApp. Contrary to popular rumor, Rosenfield said that Apple is still involved with Bedrock and has not waivered in its support. Apple will additionally be providing an updated version of MacApp (version 3.1) for compatibility with the PowerPC. The new version will be pointer-based, thus introducing true C++ compliancy (no more HandleObjects). An alpha version will be included on E.T.O. 12, with final shipment due by December. Conversion utilities for upgrading from MacApp 3.0.1 will be provided with the final version. According to Rosenfield, upgrading to MacApp 3.1 will be much easier than it was from MacApp 2 to MacApp 3.
Dave Wilson, Emergent Behavior, presented an overview of QuickApp, a lean and mean application framework designed to get the job done fast. It's not intended as a feature-for-feature MacApp replacement, but rather as a tool to use when MacApp is just too much. For instance, using only four instructions, you can create a simple PICT viewer or a text editor.
Wilson showed a sample Calculator program that was recently published in FrameWorks (July/August '93). One nice feature of QuickApp is that scroll bars come along for free. Since most windows include the scrollers, why not make them the rule, rather than the exception? Non-scrolling windows are, of course, available, if you really want them.
Nancy Benovich, Component Software, displayed the latest version of their dynamic development environment, Component Workshop (CW) 1.1. This new version includes an Extruder to remove completed applications from their development environment. Prior to this release, applications had to be executed within the CW environment. Additionally, version 1.1 contains support for Mac toolbox calls, a much-requested enhacement to version 1.0.
Benovich also announced a prerelease version of Vista, a stand-alone tool for creating views and menus. The WYSIWYG interface includes a "Try It" feature for end-user testing of the user interface before actually building the application.
Can we (Small)talk?
My first memories of Smalltalk are as a hot-air balloon on the cover of BYTE magazine, circa 1980. It seemed to lie dormant for awhile, but now, in the nineties, Smalltalk is seeing a resurgence, and with good reason.
David Simmons, Quasar Knowledge Systems, Inc. (QKS), demonstrated SmalltalkAgents, a recently shipped superset of the Smalltalk language. The extensions are patterned after C and LISP, and include support for Mac toolbox traps and callback routines. Dynamic linking, pre-emptive interrupt driven threads and transparent memory management also come along with the package.
It seems that SmalltalkAgents is up-to-date with just about every System 7.1 feature that's available, and has prepared in advance for some features yet to come. For instance, QKS uses a 24-bit international character set to support Unicode (used currently on Newton) and WorldScript.
To demonstrate the power of this development environment, Simmons set up duplicate background tasks, each in its own window, to compute the value of 500 factorial. After starting both tasks, he showed that he could still edit code in another window without noticable delay. A short time later, one, and then the other, of the background windows spat out the answer to their problem, down to the last digit. No exponentials here, this was the real McCoy!
As noted by Steve Mann (FrameWorks, Jan/Feb 1993), the benefits of dynamic language environments, such as Smalltalk-Agents and Component Workshop, far outweigh the disadvantages, and are in good position to become the development tools of the future.
Bachrach Does Dylan
One of the events that caught everyone's attention was the presentation of the first public domain Dylan compiler. Dylan (short for "Dynamic Language") is a new object-oriented language being developed at Apple's Cambridge R&D group (ATG East as it's affectionately known).
Jonathan Bachrach, IRCAM/Harlequin, was given the task of designing a digital production studio for musicians. Since expense was not a primary concern, the IRCAM workstation was built around a high-end NeXT cube with a sticker price of $55,000. With the hardware in line, the next step was to produce the software. Since none of the existing programming languages seemed suited to his task, Jonathan chose the next logical path: he wrote his own.
To be more precise, he looked at Dylan, saw that it was good, and decided that since no one had written a compiler yet, he'd just have to do it himself.
Bachrach started the project less than one year ago when he moved to his new job in France. After digesting the Dylan manual (available free of charge from Apple by sending a request to firstname.lastname@example.org
[also email@example.com]), learning French, and changing his hair from neon green to neon red, he built the first implementation as a set of macros for the Python LISP compiler. In the following months, the elements of his macro set were transformed from macros into LISP, and later into Dylan itself.
This version of Dylan runs on Unix workstations, and Bachrach stated that, rather than porting his work to the Macintosh, he wants to actually use his compiler for its original purpose, musical production. This creates an opportunity for any developer interested in creating a public domain version of Dylan for the Mac. If the thought intrigues you, contact MADA for further details (dying your hair is not required).