March 92 - Third Annual MADA Conference
Third Annual MADA Conference
By every conceivable standard, the conference in Orlando in late February was a smashing success. With well over 250 attendees, it was MADA's biggest annual conference so far. The memory of last year's Phoenix fiasco-the Holiday Inn's lousy audio-visual support, the "brown stuff" and "yellow stuff" for dessert-can now be safely put behind us.
Five days a week
I'd seen AdventureLand, and I'd seen FantasyLand, but until I saw the Marriott Orlando World Center, I'd never seen LuxuryLand. The place had hot and cold running servants, a pool the size of a lagoon, and so much room that they ought to have handed out bicycles to every guest so they could get around.
But such decadence is not without price; at $176 per night with tax, a room cost a little more than $7 per hour, 24 hours per day. If you were making $22 per hour, in a normal eight-hour day you'd earn just enough to pay your nightly bill-with nothing left over for food. And the hotel's restaurants were not cheap. A lot of guys saved money by eating nothing but take-out pizza the whole conference. But we are talking programmers, here; maybe that was their regular diet.
Monday, the conference got off to a rousing start-except for Steve Jasik's "Debugging MacApp Applications" session. Rousing Steve out of bed took a while; he was about forty-five minutes late to his session. But everyone seemed to take it in stride. Such things can happen to the best of us, after all. Despite the late start, Steve hung on to about 35 attendees, 5 of whom bore shiny new PowerBooks.
Jesse Feiler's "Solution Design Workshop," took its 64 attendees through an object-oriented design exercise. The exercise was intended to explore the feasibility of using behaviors whenever possible, instead of overriding TView methods. The reviews of this session were mixed, ranging from "really eye-opening" to "weird." Personally, I enjoyed the high degree of audience participation.
The big winner of the day was Jeff Alger and Neal Goldstein's session, "Introduction to Solution-Based Modeling." Neal and Jeff describe Solution-Based Modeling (SBM) in their brand-new book, "Object Oriented Software Development on the Macintosh" (instantly dubbed OOSDM, pronounced "Ooze-dumb," by the acronym-crazed). The book sold out at the conference, despite having two extra shipments brought in overnight. Copies became status symbols, almost as cool as PowerBooks.
Jeff and Neal's all-day presentation on SBM drew a huge crowd-110 people, or about half of the conference attendees. As the day wore on, the attendance at some of the other sessions declined, as people wandered over to the SBM session instead.
Two of Monday afternoon sessions were really great-Neil Rhodes' session on "Advanced C++," and David Taylor's session on "Tools for MacApp Programmers." Unfortunately, since they were both held at the same time, you could only attend one of them (unless you'd overridden self.Clone(), of course). I couldn't make up my mind which to attend, so I shuttled between them during the breaks.
Neil Rhodes has forgotten more about using C++ with MacApp than I may ever know. Copy constructors? Operator overloading? Memory management? If it was obscure, and it was in C++, Neil showed how it worked. I and the other 80 attendees came out of his session knowing how to make C++ memory management sing. I wish it had built-in garbage collection, so we could forget the whole problem. Are you listening, Bjarne?
David Taylor's session on "Tools for MacApp Programmers" gave its 50 attendees a fast-paced introduction to just about every tool a MacApp programmer might ever consider using. Starting with MPW, ViewEdit, and MacBrowse, David worked his way up to AppMaker, IcePick, and ObjectMaster. By the time he was done, one attendee-a known Microsoft spy (it said so on his badge)-was almost in tears with frustrated lust. He would have killed to have such powerful tools available to him on Windows. Well, too bad, buddy; get a Mac, OK?
Also on Monday afternoon, Jeff and Neal continued their all-day Solution-Based Modeling Marathon. Unfortunately, their slides had not improved; they were almost completely unreadable from halfway back in the room. Their talk ended with a series of testimonials from their users ("My name is Joe, and I'm addicted to SBM"). They were all pretty enthusiastic about it; but then, would they have been up there if they weren't?
The final tally's not yet in, but exit polls indicate that SBM is a software development methodology that actually seems to work. It is said to bring order to the chaos of specification changes, schedule slippages, and cost overruns. It's too late for you to see Jeff and Neal's presentation, but not too late to buy the book-just bill it to your boss, eh?
Getting off to a late start, Curtis Faith drew only 20 souls for his Third Annual Seminar on "Databases and MacApp." It wasn't exactly an all-day advertisement for his firm's database product (Inside Out)-but it was close.
All of Tuesday's sessions were all-day affairs. Neal Goldstein's session, "Introduction to MacApp 3," was really good. Before attending his session, I was intimidated by the changes made between MacApp 2 and 3. Afterwards, I can see that they were, for the most part, good, clean, well-implemented solutions that make MacApp better and more powerful. (But they're still a little intimidating.) Over 80 people attended this bang-up session.
But the real big bang of the conference was Eric Berdahl's session on the "Grand Unified Theory: AppleEvents, the Object Model, and MacApp." Over 100 people turned out to learn how to make MacApp hum in the increasingly object-oriented Mac OS. The combination of AppleEvents, the Object Support Library, and MacApp makes supporting the Edition Manager trivially easy-well, maybe not that easy, but a heck of a lot easier, anyway. The MacApp Team attended Eric's session in force, so maybe we'll see some of his ideas incorporated into MacApp sometime soon.
Tuesday night, it rained like hell. That ruined everyone's plans to go to DisneyWorld, so they came to my presentation on "OOP Tools for Windows" instead. Over 200 people attended, expecting to see demonstrations of OOP tools from Borland, Zortech, and others. But since those guys welshed on me, opting instead to go to the Software Development '92 Conference in Santa Clara, I had to change the topic of the presentation to "A MacApp Programmer's Journey into Windows Land."
The presentation concentrated on three basic topics: an explanation of what Windows is, a discussion of why and how to become a Windows programmer, and, finally, a detailed discussion of the Microsoft Foundation Classes (MFC), Microsoft's low-level application framework for Windows. MFC is my pick for the best application framework for Windows. It's small, fast, and clean; it's from Microsoft, so it'll be around for a while; and Microsoft is committed to it, so it is being well-funded and rapidly improved. MFC ships with Microsoft C/C++ 7, coming soon to a mail-order house near you. Try it-you'll like it.
Wednesday was Apple Day. Members of the MacApp Team made presentations on failure handling, memory management, object dependency, and a host of other improvements to MacApp. Many of these topics had already been covered in the earlier tutorials, but no one seemed to mind hearing it again, straight from the source.
In the afternoon, we were treated to an amazingly stilted, content-free video starring Steve Weyl, Apple's manager of developer tools, Tony Meadow, the outgoing MADA president, and Eric Berdahl, the incoming MADA president. I can't tell you what the video was about, because it wasn't really about anything. Steve talked as if in slow motion, with long… pregnant… pauses… between… each… and… every… word. Tony and Eric were playing tag-team straight men, feeding Steve leading questions that were obviously rehearsed. Despite its being almost totally devoid of content, the video had great production values-good lighting, editing, and so on. Style over substance-proof that Apple is taking the battle to Microsoft's home turf.
The afternoon was not a total loss, however. Ameet Zaveri of Apple's MacApp Group gave the audience a lot of insight into where we could expect MacApp to go over the next year or so. The primary goals for MacApp seem to be adoption of the Grand Unified stuff Eric Berdahl had talked about the day before (AppleEvents and the Object Support Library), supporting run-time framework extensions, possibly using Apple's new Dinker (which I'll describe below), and-gasp!-producing a Windows version of MacApp (or at least a multi-platform application framework; the details seem a little sketchy).
Ameet said that development of a Windows-compatible framework was undergoing "urgent technology evaluation." I like that phrase, don't you? It reminds me of the time my motorcycle broke down 500 miles from home. I sat by the side of the road for about three hours, doing "urgent technology evaluation," and managed to bungee-cord the cycle together well enough to get it to the nearest repair shop. (I still have that bungee cord, Ameet, if you need it.)
Wednesday night we had the Annual Banquet. A Polynesian band provided the music for a couple of hula dancers-perfect for a bunch of nerdy computer jocks, although I can't imagine that the ladies in the audience were that impressed. I was certainly impressed; those guys had the loudest drums I'd ever heard. We must have really pissed off the group that was meeting in the adjacent salon; they got even by blasting their Golden Oldies at top volume over Larry Tesler's keynote address. Imagine an energetic, thought-provoking discussion of "Dynamic Interactive Object Programming," sung to the tunes of "Johnny, Don't Be a Hero," "I'm Special," and "Only the Good Die Young." It was oodles of fun.
The General Sessions were held Thursday and Friday. Basically, the presentations were a series of vignettes: "here's something cool I did in my MacApp application, and here's how you can do it, too." The first of these demos and discussions, on FlightStar by Steven Splonskowski of MentorPlus Software, was a model of how such presentations should be made. "The Splonz" didn't dwell on how cool the app was (although it was pretty cool); he just just showed what it did, and described how he made MacApp do it. Good stuff.
Joost Kemink gave a great presentation on "A Faster Idle Mechanism for MacApp." It was great not because the idle mechanism he proposed is really slick (though it is), but because he used MacroMind Director for his presentation. Wow! I thought MORE II was good; if I'd ever doubted the punch animation could bring to a presentation, my doubts were dispelled by Joost's virtuoso presentation. Tricky little animations showed the flow of control through the system; little square list items moved from list to list on cue, changing color as they did so; it was impressive. Oh, and like I said, his idle mechanism was pretty neat, too.
Next up was Kurt Schmucker of Apple's Advanced Technology Group (ATG), proving once again that with a name like Schmucker, he has to be good. He showed off Dinker, Apple's first try at a dynamic linker. It works pretty darn well, too. Since it was aimed specifically at allowing developer's to add subclasses to a MacApp application at runtime, it does that job well.
Basically, anything you thought you might want to do with XCMDs, you can do better with Dinker. XTND? Forget it-use Dinked-in translator classes instead. You can ship your app today, and ship extensions later. Just dropping them into the application's folder makes them available to the app at run-time. Nothing could be simpler. Dinker is available on ETO.
I'm afraid I haven't had the space to describe all of the presentations. Fortunately, you'll be able to get them all on the Conference CD; the compressed audio and slides can all be found there. For details, call the MacApp Developer's Association (MADA) at 206-252-6946, or link MADA on AppleLink.
There were a number of themes running through the conference. First, there was MacApp 3: Taming the Feral Beast. Somewhere between MacApp 2 and 3, our nice domesticated application framework went wild. It seems to be a lot more complicated than it used to be.
Behaviors, adorners, dependencies; what is all this stuff? Commands, failure handling, view resources: just when you thought you understood 'em, they've changed-just enough to throw you off. It's not a deceitful plot on Apple's part; MacApp 3 just does a lot more than 2 did, and it had to change a lot to do it. But all the changes seemed to make a lot of attendees nervous.
Another theme that ran through the conference was evidence to either the fickle nature of programmers, the rapid rise of C++, or the absence of a good Mac Eiffel compiler (you decide): the theme of "Object Pascal Must Die." It was by no means universal, but given the outcry over porting MacApp to C++ just a year ago, it was amazing to hear the majority of the conference attendees calling for the death of Object Pascal support in MacApp. Most attendees just wanted a crisp, clean C++ implementation, and a solid tool to convert their existing Object Pascal source to C++. Score one more for Bjarne.
The final theme that wove its way through the conference was-dare I say it?-"Windows, Windows, Windows." My Tuesday evening session on "A Programmer's Journey Into WindowsLand" drew the largest crowd of the Conference (many with ripe fruit, I'll admit). Steve Weyl's reiteration of Apple's official commitment to bringing out a multi-platform application framework was further evidence of the growing importance of Windows to MacApp developers. And, last but not least, Apple had just issued a proposed license agreement for porting MacApp to other platforms (specifically Windows). There was a lot of interest in the clandestine MacApp Porter's Meeting, held at a secret location on Monday night, at which a number of revisions to Apple's proposed license were drawn up (and later passed along to Steve Weyl).
All in all, the conference was a great success. It would not have been so, had it not been for the heroic efforts of Bill Anderson of MADA, who spent six months on the phone setting the whole thing up. Hooray for Bill!
Equally important, when taken together, were the efforts of Chuck and Charlotte Sohnly, Arvid and Bev Jedlicka, Eric Berdahl, Leslie Jeffries, and Bob Hablutzel. The hero of the conference may well have been Fred Reitberger from Apple Florida in Tampa, who stripped his office of Macs, and loaned them all to us, without even erasing their hard drives first. n