|Column Tag:||From the Field
MADA Conference Report
The whos, wheres, and whats of the MacApp Developers Association Conference
By James Plamondon, Hayward, California
About the author
James Plamondon works for Microsoft in Northern California. He is very active in the Bay Area MacApp Developers Association (BAMADA) and is single handedly responsible for keeping MacTutor, MacApp Developers Association, and AppleLink MacApp Technical Discussions up to date on activities going on in BAMADA.
By every conceivable standard, the Third Annual MADA Conference at the Marriott Orlando World Center was a smashing success. With well over 200 attendees, it was MADAs biggest annual conference so far. It demonstrated yet again that MacApp has moved into the mainstream of Macintosh programming.
That was Apples official message throughout the Conference: that MacApp was here to stay, as the best possible vehicle for implementing Macintosh software in an ever-changing system software environment. Steve Weyl, Apples Manager of Developer Tools, emphasized that MacApps budget was being greatly increased.
Further, he and Ameet Zaveri of the MacApp Team both stressed that a multi-platform application framework was in the works, and that wed be seeing versions of it for Windows, Taligent, and other systems soon - possibly within the year. So, if portability across platforms is your game, you need to look at MacApp.
All of this portability is made possible by the release of MacApp 3.0. Completely re-written in C++, MacApp 3.0 is far more general and complete than was MacApp 2.0, released in final form last year. C++ is the de facto standard of object-oriented computing, and now that MacApp is written in this highly-portable language, it has a good shot at becoming the industry standard application framework.
Monday, the Conference got off to a rousing start - except for Steve Jasiks 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, of whom 5 bore shiny new PowerBooks (ooh, sexy).
Jesse Feilers 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.
But the big winner of the day was Jeff Alger and Neal Goldsteins 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 FedExed in. Copies became status symbols, almost as cool as PowerBooks.
Jeff and Neals 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 Taylors session on Tools for MacApp Programmers. Unfortunately, since there were both held at the same time, you could only attend one of them (unless youd overridden self.Clone(), of course). I couldnt 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 his session knowing how to make C++ memory management sing, and wishing it just had built-in garbage collection, so I could forget the whole problem. Are you listening, Bjarne?
David Taylors 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 clearly have killed to have such powerful tools available to him on Windows. Well, too bad, buddy; just buy 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 Im addicted to SBM). They were all pretty enthusiastic about it; but then, would they have been up there if they werent?
The final tallys 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. Its too late for you to see Jeff and Neals presentation, but not too late to buy the book - just bill it to your boss, eh?
Tuesdays sessions were also marred by a late arrival. Curtis Faith arrived thirty minutes late for his Third Annual Seminar on Databases and MacApp. (The audience is supposed to sleep through your presentation, Curtis, not you.) It was not exactly an all-day advertisement for his firms database product (Inside Out) - but it was close. That would be unforgivable, if Inside Out were not such a good product. As it is, if you want to use a database with MacApp, Inside Out really is your best bet. Even so, Curtis late arrival trimmed his audience down to only 20 souls.
All of Tuesdays sessions were all-day affairs. Neal Goldsteins session, Introduction to MacApp 3.0, was really, really good. Before attending his session, I was intimidated by the changes made between MacApp 2.0 and 3.0. Afterwards, I can see that they were, for the most part, good, clean, well-implemented solutions that make MacApp better and more powerful. (But its still a little intimidating.) Over 80 people attended this bang-up session.
But the really Big Bang of the conference was Eric Berdahls 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 Erics session in force, so maybe well see some of his ideas incorporated into MacApp sometime soon.
Tuesday night, it rained like hell. That ruined everyones 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 to go instead to the Software Development 92 Conference in Santa Clara, I had to change the topic of the presentation to A MacApp Programmers Journey into WindowsLand.
The presentation concentrated on three basic topics: an explanation of what Windows was, a discussion of why and how to become a Windows programmer, and, finally, a detailed discussion of the Microsoft Foundation Classes (MFC), Microsofts low-level application framework for Windows. MFC is my pick for the best application framework for Windows. Its small, fast, and clean; its from Microsoft, so itll 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.0, coming soon to a mail-order house near you. Try it - youll 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, Apples Manager of Developer Tools, Tony Meadow, the outgoing MADA President, and Eric Berdahl, the incoming MADA President. I cant tell you what the video was about, because it wasnt 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 Microsofts home turf.
The afternoon was not a total loss, however. Ameet Zaveri of Apples 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 Apples new Dinker (which Ill describe below), and - gasp! - producing a Windows version of MacApp (or at least a multi-platform application framework; the details still seem to be a little sketchy).
Ameet said that development of a Windows-compatible framework was undergoing urgent technology evaluation. I like that phrase, dont 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 cant imagine that the ladies in the audience were that impressed. I was certainly impressed; those guys had the loudest drums Id ever heard. We must have really angered the group that was meeting in the adjacent salon; they got even by blasting their Golden Oldies at top volume over Larry Teslers keynote address. Imagine an energetic, thought-provoking discussion of Dynamic Interactive Object Programming, sung to the tunes of Johnny, Dont Be a Hero, Im Special, and Only the Good Die Young. It was a oodles of fun.
The General Sessions were held Thursday and Friday. Basically, the presentations were a series of vignettes: heres something cool I did in my MacApp application, and heres how you can do it, too. The first of these demo/discussions, on FlightStar by Steven Splonskowski of MentorPlus Software, was a model of how such presentations should be made. The Splonz didnt 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 was really slick (although it was), but because he used MacroMind Director for his presentation. Wow! I thought MORE II was good; if Id ever doubted the punch animation could bring to a presentation, my doubts were dispelled by Joosts 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 Apples Advanced Technology Group (ATG), proving once again that with a name like Schmucker, he had to be good. He showed off Dinker, Apples first try at a dynamic linker. It works pretty darn well, too. Since it was aimed specifically at allowing developers to add subclasses to a MacApp application at runtime, it does that job quite 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 applications folder makes them available to the app at run-time. Nothing could be simpler. Dinker is available on ETO. Just remember: too much Dinking can make you go blind.
Im afraid I havent had the space to describe all of the presentations. Fortunately, youll 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 Developers Association (MADA) at 206-252-6946, or via AppleLink at MADA.
There were a number of themes running through the Conference. First, there was MacApp 3.0: Taming the Feral Beast. Somewhere between MacApp 2.0 and 3.0, 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, theyve changed - just enough to throw you off. Its not a deceitful plot on Apples part or anything; MacApp 3.0 just does a lot more than 2.0 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 actually 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.
Just think - well be able to tell our grandkids, You guys have it so easy - why, I remember when we had to walk ten miles through the snow just to get to work, and even when we got there, we used Object Pascal! (Actually, given my Bay Area commute, walking ten miles through the snow doesnt seem so bad.)
The final theme that wove its way through the Conference was - dare I say it? - Windows, Windows, Windows. My Tuesday evening session on A Programmers Journey Into WindowsLand drew the largest crowd of the Conference (many with ripe fruit, Ill admit). Steve Weyls reiteration of Apples 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 licence agreement for porting MacApp to other platforms (specifically Windows). There was a lot of interest in the clandestine MacApp Porters Meeting, held at a secret location on Monday night, at which a number of revisions to Apples proposed licence were drawn up (and later passed along to Steve Weyl).
Everyone at the Conference seemed to be having a great time. Jeff Algers Third Annual Dutch-Treat Pizza Feast was a smashing success Monday night. The feasters decided that Taligent ought to adopt the dumming EverReady Bunny as its mascot, since a) it was Pink, and b) it kept developing, and developing, and
Some clever lad defaced a conference sign, which said MacApp Developers Conference Coffee Break with the addendum (compile and link in progress). The long link times for MacApp 3.0 were derided by everyone, at every opportunity. (Of course, if the linker were instantaneous, everyone would just complain about how slow everything else was.)
The most popular activity at the Conference, aside from deriding the linker, was recruiting. By the end of the Conference, everyone there had either received or given at least three job offers. In a hotel bar, a gorgeous babe would sit down next to a nerdy-looking MacApp guy, and offer him all kinds of immoral and illegal services - if only hed consider joining a new startup. Two guys almost came to blows, arguing over whod seen a potential recruit first. It got pretty hairy. In the MacApp community, the unemployment rate seems to be negative. Recession? What recession?
All in all, the conference was a great success. It would not have been so, had it not been for the heroic efforts 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 and Chuck and Charlotte Sohnly, Arvid and Bev Jedlicka, Eric Berdahl, Leslie Jeffries, Bob Hablutzel. The hero of the Conference may well have been Fred from Apple Florida, who stripped his Tampa office of Macs, and loaned them all to us, without even erasing their hard drives first. Fred, how can we thank you? We particularly appreciated your un-erased database of Central Floridas five-star babes. Of course, they may never talk to you again