TweetFollow Us on Twitter

May 94 - SFA Atlanta 1994

SFA Atlanta 1994

Adam Wildavsky, John MacVeign, and Mary Elaine Califf

Please note that this report was compiled from the efforts of more than one conference attendee. Opinions expressed herein are held by at least one, but not necessarily all of the authors.

Atlanta was the place to be during the first week in March of this year as the SFA held its fifth annual conference. The weather was not particularly good for most of the week, but, between the early sessions, the afternoon sessions, the get-togethers during meals, and the hack session, I didn't really notice the weather until Friday, when it turned warm and sunny. While much of the software development world wondered just how to start doing the "OOP" thing a group of both experienced practitioners and enthusiastic newcomers gathered to exchange theoretical knowledge and practical experience. The variety of object-related subjects this year shows that the pervasive use of object technologies is gaining momentum. While last year's conference was primarily focused on design and basic tools, this year's conference shifted the emphasis towards the destination of all those tools: frameworks. This was a true cross platform and cross framework conference (not one MacApp session!) but most of the attendees had experience with MacApp and C++. This shared background provided a context for more meaningful discussion and more facile communication than I've seen at other conferences.


The weather was awful; it rained for days on end. It's just as well the hotel was comfortable!


Joe Firmage of Novell gave the opening keynote address. Joe started out by explaining Novell's business strategy past and present. I was surprised when this turned out to be interesting. His point was that Novell has succeeded mainly by "Redirection." Initially this redirection consisted of redirecting DOS File API calls so that they accessed Netware file servers. Now one of Novell's plans is to redirect entire sets of native APIs using something they call the "AppWare Foundation."

Joe is the VP of the AppWare systems group and his talk turned to (surprise) AppWare. AppWare seems to aim to be a cross-platform everything development environment. Its main building block is something called an ALM, an AppWare Loadable Module. Today these are written in C and put together with Novell's "Visual AppBuilder." There are two kinds of ALMs, functions and objects. Why are the functions separate from the objects? Let's just say that AppWare is not as Object Oriented as some might wish.

All ALMS communicate with one another via an "AppWare Bus." Later this year a "Distributed AppWare Bus" is supposed to be available.

Novell sees the computing environment partitioned between GUI, Business Logic, and Data Management. With the network portion of data management firmly in hand they are trying to flesh out the rest of the partition by supporting data base access through SQL and ODBC ALMs. The business logic partition is handled by providing not just ALMs but an environment in which they can be quickly linked together. They have left the GUI partition to the existing players by defining services which map to the native GUI. Given the big push for OpenDoc throughout the rest of the week, it may seem odd that Firmage did not spend any time discussing it. By concentrating their efforts on the sweet spot in the middle of the graph between flexibility and ease of development, Novell is concentrating on the problems their customers are most interested in solving. While a founding member of CILabs, they are probably happy to leave the more complicated "big picture" designs, like OpenDoc, to Apple and application developers like WordPerfect. [Oh no! Five minutes after writing that sentence I heard that Novell went and bought WordPerfect. Talk about dynamic linking!]

One of Joe's slides would later show up repeatedly, in similar guises from other vendors. It showed a row of ALMs on the top, each with a connection to the AppWare Bus in the middle, and the AppWare Bus lying on top of the AppWare Foundation below. Presumably the native OS lies below the AppWare Foundation.

Apple's Tools Strategy

Ike Nassi, Vice President of Development Products at Apple stopped by to give a fairly standard "Here's where Apple is headed this year" presentation. It is important to point out that this was being given at SFACon, and not at Apple's own WWDC. Among the information Ike gave us was that Apple is concentrating on increasing the market for learning, publishing, and collaboration products. He also gave some details on two major kinds of products that his group produces: core tools and frameworks. He wanted to tell us that contrary to rumor Apple continues to invest in developer tools. MPW, ToolServer, and Dylan were listed as core tools. IBM's SOM and DSOM are being invested in as a dynamic linking solution. PowerPC development will, of course, be emphasized and MPW will be available in a native PowerPC version. For the future Apple intends to establish OODLs as a mainstream programming paradigm. In particular, Dylan was described as "in use at Apple today". In the frameworks department, MacApp has been reinstated as an Apple product. A new version of MacApp is planned which will support AppleScript and AOCE. Future versions will support OSA, OpenDoc containers, and will allow the embedding of OpenDoc parts. Meanwhile, Bedrock, now in Apple's hands, has been renamed the "OpenDoc Parts Framework". It retains its cross-platform abilities and will be seeded at the WWDC (yes, 1994). Obviously OpenDoc was the big item being discussed this year. Ignore it at your peril: Apple stated that it will be switching to OpenDoc parts for future delivery of OS services to developers. Ike also told us we could AppleLink OPENDOC for a copy of the OpenDoc Alpha CD.

While Mr. Nassi was a bit defensive he did not get quite the barrage of complaints that many people expected to hear. During the Q&A period several people asked why various new technologies were not part of ETO, but I didn't detect the level of discontent I had expected. (Has it really been three years since any features were added to MacApp?) No doubt this was partly due to the old "we're new here and we're going to fix things right up" line. Perhaps, but after a few years of hearing that, people tend to just walk away. Hopefully all the Apple people realized that their harshest critics are those who most want Apple to succeed; the rest have already taken that walk.

One possible problem with Apple's developer relations is that they seem unsure as to who is driving the Macintosh market. On the one had, Apple may be thinking that if they sell a lot of machines we developers will be willing to pay a lot for their tools, since we'd know there's a market for the resulting software. On the other hand, Apple could decide that cheap tools will encourage the development of software which would then drive the sale of more machines. Exactly which model Apple is following (if any) is still not clear.

Microsoft's Object Strategy

Microsoft's James Plamondon was the third speaker, a last minute replacement for Mark Ryland. As usual of late James tried to persuade us how wonderful our lives would be if we would only develop for Windows. His main point regarding OLE was that "It's shipping now" and that products that take advantage of it "Are shipping now." He said this more than once.

James made some compelling points about Microsoft's developer support. To help illustrate Microsoft's "developer friendliness" he brought CDs for everyone. Each CD contained an OLE developer kit for Windows and an OLE beta for the Mac. Unfortunately for his point James didn't actually bring enough for everyone. He promised more by Thursday, and a newer version besides.

I spoke to several people who thought that it was unfortunate that Ike spoke before James; Ike might have been hard-pressed to show how Apple intends to treat developers as well as Microsoft seems to.

Novell AppWare

We broke into four separate session in the afternoon. I dropped in on Novell's AppWare overview and picked up a copy of their Visual AppBuilder white paper. I'd like to tell you how to get a copy but for some reason no e-mail contact was listed. Perhaps their Sales headquarters can help; their number is +1 (408) 434-8684.

My strongest impression of Visual AppBuilder was that the user interface needs work. The ALMs are listed as icons in two scrolling windows at the bottom of the screen. Unfortunately only a half dozen are visible out of hundreds. Do they offer an alternative? Well, there's a popup menu which also seems to contain hundreds of items. At any rate there was more than a screen full! No one I spoke with would defend this interface, but I hear that Novell plans to improve it.

Symantec C++ and TCL

David Neal and Bob Foster of Symantec gave an afternoon presentation on Symantec C++ 7.0, TCL version 2, Visual Architect, and future Symantec developments. This was one of the more informative sessions of the week, with lots of basic facts provided by the engineers who worked on the projects. Most of the news about 7.0 will probably by out by the time this report is printed. The key statement made here was that by April all C++ compilers from Symantec can be at the same version level; either through the purchase of 7.0 or a free patch for owners of 6.0. MacApp segmentation remains a problem with C++ 7.0. Think Pascal and Think C have slipped into the "no major changes" phase of their product lives.

Version 2 of TCL was introduced as a C++ rewrite of the original TCL framework. While not as dense as MacApp, TCL 2 provides AppleEvent support, uses template classes, stream classes, mixin classes, exception handling and RTTI (run-time type information) support. Some of the features are descended from Bedrock, including typed exception handling, the RTTI system, and the memory management structure (though we were told this last item may change). The AppleEvent support provides recordability and allows you to write a "fully factored" application (that is, commands can be executed by sending Apple Events to yourself).

Visual Architect is derived from Bob Foster's Classy. It is an application generator that allows you to graphically construct views. It can automatically add generated source to the Project Manager, and provides menu and menubar editing, along with support for balloon help. Also available with TCL is an object browser. Described as an automatic version of MacApp's Inspector, it allows you to inspect existing objects during program execution.

Symantec trails Metrowerks in support for the PowerPC. Symantec's short term solution will be to provide a cross compiler and bundle some of Apple's tools (Linker, Debugger). In the long term they are working with Apple to re-architect TCL to provide features similar to MPW. About the only other statement on this project was that the "largest team ever" was working on this project. I'll take that as a good sign, at least for the moment.


Taligent Overview

Mike Potel, Taligent's VP of Technology, had the job of speaking to those of us who made it downstairs by 8:30 A.M. Despite rumors to the contrary, Taligent is alive and well and actually starting to ship code to its investors. Mike Potel, Taligent's Chief Technical Officer described their work as consisting of three parts: the Taligent Application Environment (TAE), Taligent Object Services (TOS), and the Taligent Development System (TDS). The TAE is the farthest along. It provides application level frameworks, such as 2D and 3D imaging, multimedia support, and international text services. It can be hosted by any operating system which provides such services as memory protection, threads, and multitasking. Candidate OSs for the TAE include OS/2, HP-UX, and AIX (which Taligent is currently working on). Some parts of the TAE have already shipped to developers. Expect a release of OS/2 later this year which uses Taligent device driver frameworks.

The Taligent Object Services is essentially Taligent's own operating system. It is based on a version of the Mach microkernel. The TOS will probably not appear until sometime in 1995. Lagging a little behind the OS is Taligent's own development system. The development system is browser oriented and supports various kinds of direct manipulation and hyperlinks. It sports incremental compiling and linking. The browsers understand the structure of the code and the system tracks dependencies automatically. This means that there are no make files and doing things like editing comments will not cause recompilation. Mike told us that Larry Rosenstein (he said "The Rosenstein") had worked on the on-line documentation system and that we could therefore assume that it would be wonderful. That was good enough for me!

Given the rather vague pronouncements of the past, Taligent seems to be pretty much on schedule. IBM looks to be the earliest user of their work. It is too early to tell if the newest Taligent investor, HP, will move quickly to adopt the TAE, or if they are just covering themselves with a side bet. In a bit of irony, Apple seems to be the farthest from adopting Taligent's work. This seems primarily due to the delay in switching System 7 to a microkernel which can support the TAE. That switch over may take so long that Apple could actually end up competing against its own creation. Whether Apple competes with, or against, Taligent, the use of some sort of microkernel in System 7 looks to be the next necessary change to the Macintosh architecture.

Mike also discussed Taligent's goal of providing collections of loosely coupled OO frameworks. In particular he mentioned undoing the split between application software and OS software. If frameworks are provided for both kinds of functionality then it should be as easy to extend OS functionality as it is now to extend an OO application. Mike mentioned several Frameworks Taligent is working on including

  • Multimedia
  • User Interface
  • Document
  • Network
  • System
  • Distributed Computing
  • Data Access
  • Graphics (3D & 2D)
  • International Text

Tom Chavez took the floor for the world's first public showing of Taligent technology, in this case their graphics system. He showed us an application running on a Mac IIci with five windows showing off five different graphics threads. Unfortunately one of the windows crashed. This turned out to be fortunate as well since we were able to see that the other windows continued to function. Things were amazingly fast. Tom's theory is that for the past few years our hardware has become very fast and that it's traditional OS's that have been slowing us down.

The specs for the graphics system seemed impressive enough. It uses a 64 bit floating point coordinate space and represents curves as Non-Uniform Rational B-Splines, or NURBS. The basic graphics framework is 3D; 2D graphics are implemented as a specialization of the 3D graphics!

Can you think of a machine that just shipped with screaming fast 64 bit floating point? I hope so! In fact Mike mentioned that Taligent's internal development platform is the IBM RS-6000 model 250, a machine that uses the PowerPC 601 chip.

Questions? Please ask Tom; I haven't gotten past the first hour of the day yet! Everything in Taligent's presentation sounded wonderful, but naturally I had some reservations.

Mike told us Taligent will not provide source code as a rule, but that some customers might be able to get a hold of it given sufficient economic incentive. He pointed out that we survive without source code to the Mac toolbox. I seem to remember that in the early days of the Mac not having the source to the toolbox was a big impediment. Steve Jasik's MacNosy not only helped diagnose bugs in the ROM, it also gave definitive information about a trap when documentation might be spotty, missing, or just plain wrong.

Mike asserted that the initial target market for Taligent was in-house corporate developers. Do they need 3D graphics? Well, I guess they're not obliged to use them.

My biggest concern about Taligent concerns platform. Initially Taligent will not support the best selling platform, MS-Windows. That's the same problem I have with MacApp! It means I need another solution if I want to develop for clients who have standardized on Windows.

Metrowerks CodeWarrior

Next up were Greg Galanos and Greg Dow from Metrowerks.

Greg G. told us about the March DR/2 release of Code Warrior . The CD will include the Plum Hall and Plauger C++ libraries, object files for the NeoPersist object persistence library, and a demo version of Object Master. It will also include pre-built Object Master projects for PowerPlant as well as encrypted versions of NeoAccess and NeoShare, the "big brothers" of NeoPersist.

Mr. G described several features which will not be in the March release. Still to come, in approximate order of priority, are:

  • Total object code size > 16MB
  • Exception handling
  • Full C++ precompiled header support
  • OpenDoc Parts
  • Templates (targeted for WWDC or shortly thereafter)
  • Plum Hall Suite++ validation

Next Greg D. described a number of features of PowerPlant and made it sound quite attractive. The classes seem to have low cohesion. In particular Greg said that none of the component classes refer to the application, document, or window classes. PowerPlant provides several application descendants. One supports a traditional 1 file per document model. Another, described by Mr. D. as a dashboard application, supports utilities which have no documents. Another supports database applications.

A visual editor for PowerPlant is still in development; its interface is based on ResEdit's dialog editor. The resource format has been changed so as to support Rez and DeRez. Greg D. professed amazement at just how useful these tools are! Perhaps line oriented environments are not dead after all.

Greg Dow discussed PowerPlant in more depth in the afternoon. PowerPlant is not intended to be cross-platform. In fact, it, like CodeWarrior, is primarily designed with the PowerPC in mind. For example, it will be a shared library on PowerMacs. PowerPlant is designed to be a loosely coupled framework which allows you to use parts of it without committing yourself to the entire framework. It will be interesting to see if Symantec's new announcements slow their loss of developers to Metrowerks. TCL's switch to C++ may actually encourage developers to look at Metrowerks which is shipping now (to coin a phrase). Between Metrowerks, Symantec, and Apple (well, people keep expecting them to do something) we may actually get some constant competition going in the Apple tools market.


A number of small but important remarks were made about Dylan. Ike Nassi used to run Apple's Advanced Technology group in Cambridge, Massachusetts, where Dylan originated. Now vice president of Apple's Development Products group, Nassi has made one of his goals the establishment of OODLs (object oriented dynamic languages) as a mainstream programming paradigm. He also stated that Dylan was "in use at Apple today". Andrew Shalitt stated that Dylan has moved into product development. It was hinted that third parties were at work on development environments; nothing specific was said about what such an environment might look like.

As you may have heard, Dylan has a new infix syntax. Syntax surveys were distributed at the conference to help the language designers finalize their decisions. Andrew's presentation included a number of examples of Dylan code (see the conference CD for copies of the slides).

Prograph CPX

Tuesday afternoon presented several attractive alternatives; I chose to see Prograph CPX presented by Apple's Kurt Schmucker. I had heard good things about Prograph and I was not disappointed. Kurt described Prograph CPX as his development platform of choice and after his presentation I could see why.

Prograph CPX is buzzword compliant, combining four key trends

  • Visual Programming
  • Object Orientation
  • Data Flow
  • OO Frameworks

Because Prograph is based on a Data Flow language it can in theory support parallel processing at a fine grained level. Kurt announced that this potential is about to be demonstrated. Apple provided Prograph International with research funding for this and PI is scheduled to demonstrate it in April. Yes, April 1994! PI apparently does not yet intend to make the parallel version into a product, but I'd be surprised if there is not enough demand to ensure that it becomes one.

One of the first questions was how easy it is to build shrink-wrapped applications. Kurt put on his best Plamondon voice and showed us a painting application which is "Shipping Now!" and a late beta of a CD-ROM application, "Xpand Xpo", billed as a "virtual Macintosh trade show." I'm quite certain of the name because we all received complimentary copies.

Kurt has undertaken to port several of the MacApp examples to Prograph CPX. This led to some interesting comparisons. We timed one of the examples and found that the compiled Prograph code executed about twice as fast as the interpreted Prograph code, and about ten times faster than the MacApp 3.0.1 code! No, no one has investigated just why MacApp fared so poorly in the comparison. One shouldn't expect that this discrepancy will be so extreme in every instance; your mileage may vary!

One of my concerns with visual languages and other non-traditional development environments is their relative lack of maturity. 40 odd years or experience means that we have a large number of tools for text based code, tools that become vital as projects grow. Prograph CPX has added the notion of separate compilation modules to help support large projects, but there is still no equivalent of Projector or diff. So far as I know their editor does not even respect Projector's 'ckid' resource.

I did start to wonder how easy it would be to maintain complex routines in a visual language. Kurt mentioned that PI has added support for an "Evaluate" tile to handle mathematical expressions, but I wondered about algorithms where this wouldn't help. Then I remembered that my personal style guidelines for traditional code call for routines of no more than five or ten lines. I decided that if a visual language in effect forces routines to be short that it might be all to the good.

OpenDoc vs. OLE

Tuesday evening saw the OpenDoc versus OLE face-off. While most developers are still examining tools for moving to PowerPC, or trying to pick a framework that best supports their favorite platform, a whole new paradigm has appeared on the horizon: the compound document. More than a way to give everyone a page layout package in the OS, compound documents are intended to change the way you work with your computer. The present application-oriented approach will be replaced by a document-oriented approach. You build your document out of parts which are edited by parts editors. The concept is that the part editors are smaller and more specialized than current applications. The user can replace one editor with another and, in effect, build a custom application for himself by combining many different editors.

For this to work a number of things must change. The present tyranny of application-specific files must be replaced by a finer grained storage mechanism. The editors must be scriptable in some way. The parts and editors must work over a network as well as they do on a single machine. And new architectural and interface concepts must be created to give the user a way to manage all these little parts in some coherent fashion.

Microsoft is currently leading the industry in the attempt to define how these new concepts are implemented. They are presently shipping "Object Linking and Embedding" (OLE), an API which essentially allows one application to use another's services. A data gathering program, for example, can insert its results into an Excel window which, as far as the user is concerned, exists as a window within the collection program, but retains all of the functionality of Excel when activated. Obviously this does not address all of the concerns listed above, but is, as they say in the south: "shipp'n now". The rest is left as an exercise for the authors of "Cairo", Microsoft's follow-on to Windows, and a subject that was rarely, if ever, discussed at the conference.

Apple, along with IBM, Novell, and, well, everyone who isn't Microsoft, has proposed a second architecture named OpenDoc. The "open" is intended to show that this will be an industry-wide standard which is available to all and is backed up by a certification process run by Component Integration Laboratories (CILabs). CILabs is a consortium of the "Not Microsoft" companies. CILabs intends to provide source code for OpenDoc, and its members plan to implement OpenDoc on multiple platforms. The requirements listed above will be satisfied by combining some existing technologies from CILabs members. The storage and scripting mechanisms are Apple's Bento and Open Scripting Architecture, respectively. The networking and dynamic linking will be courtesy of IBM's System Object Model (which Taligent seems to get some credit for working on). Other companies, such as WordPerfect Novell, will be working on porting OpenDoc to Windows and other platforms.

At the conference the argument between OLE and OpenDoc often boiled down to "It's shipping now" vs. "It's going to be really cool, just you wait". ("Less waiting!", "Links great!") Of course, to an audience filled with engineers, marketing can easily take a back seat to cool and elegant features. OpenDoc's use of SOM promises a single programming model for all objects, large or small, local or networked. OLE's "aggregation" concept of inheritance offends the C++ purists. OpenDoc works with non-rectangular and overlapping parts, while OLE does not. And the use, even if optional, of DOS pathnames to link one object to another tends to raise red flags for non-DOS programmers.

Most attendees are probably still thinking over how compound documents will affect their products and markets. The push by Apple to convince its developers that OpenDoc is better than OLE could go a long way in igniting interest in this new architecture. But if those developers, once convinced, begin to look for a way to implement this new idea they may find Microsoft and OLE the fastest way to do so. Once again, Apple seems in danger of competing with its own ideas.


Tools and Environments

Wednesday morning Dave Simmons of QKS spoke on Tools and Environments. Dave's presentation was heavy on buzzwords but he seemed to use them in appropriate contexts. When he talked about "empowerment for domain-specific authors" and then a "Framework Meta-Architecture" I was sure he was going to bring out the "AppWare" Diagram but if he did I missed it.

Prototyping with AppleScript

Dave Moffat, of Software Designs Unlimited, gave one of the conference's most entertaining demonstrations when he presented Frontmost, an interface processor for AppleScript. Frontmost is an extensive, and extensible, interface creation tool which uses AppleScript events to tie together all of the windows, fields, and controls that you build. According to Dave's outline: "The original purpose of Frontmost was to put user-friendly interfaces on otherwise faceless scripts. Our attempt to be thorough led us to support complete, standard application interfaces, rather than mere customizable dialogs."

From what I saw they succeeded nicely. The ultimate in "factored" applications, Frontmost can build applications that use AppleScript events to communicate both internally and externally. As an example, Dave built an application which used one of Frontmost's interface elements (a color palette). When run, it could communicate back to Frontmost which color to apply to a selected element (since Frontmost is itself scriptable). Think for a second about the work it would take to use MacApp to add a color palette to ViewEdit. Dave's example took about a minute to build and demonstrate. Other examples included a few games; one like Tetris, another a computer version of Whack-A-Mole. Both games are shareware; the Tetris-like Linear-B game was implemented by Dave and designed by his 13 year old daughter. I liked Linear-B enough that I downloaded a copy that day. Both games require AppleScript and are available on AppleLink in

    Developer Support
    AppleScript Talk
    Interface Builder Discussion

AppleEvents may be too slow for a real-time embedded operating system, but you'd have a hard time clicking fast enough to beat those little gophers every time they pop up. And all without templates, exceptions, or overloaded operators. Frontmost is currently provided with the AppleScript Scripter's Toolkit, and good thing too. It takes a technology and turns it into a solution, something Apple needs to start selling more of.

I wish I could do justice to the wit of Dave's presentation. He was dry and upbeat, contained and enthusiastic. He brought up key phrases from previous presentations and used them to advantage. He mentioned that the Linear-B game was based on an ancient script related to Ugaritic, and that this script had been inscribed into blocks the size of Newton Message Pads. He managed to make this seem extraordinarily amusing; I suggest you catch him in person if you have the opportunity.

Dylan Frameworks

Apple's Mike Lockwood had a hard act to follow; he showed a Dylan application framework. Mike Lockwood, now at Cambridge himself, discussed an application framework that he is developing in Dylan. While he used many of MacApp's ideas, his framework is not a port of MacApp, but a new work. In particular he has included support for the object model, scripting, and recording. One of Mike's objectives was to support new system software features, and QDGX and Drag Manager support have already been added. He started this work last fall and described it's current state as "pretty far along". At the end of his presentation, to show an example of Dylan in action, Mike revealed that his slide show package was in fact a simple Dylan program. A copy of the source was handed out to attendees. Mike was clearly happy about leaving C++ behind. It would be nice to have a language to compare to C++; after all, how can you have a language war with only one language? Watch for a future FrameWorks article by Mike on his Dylan framework.

Microsoft Foundation Classes

Wednesday afternoon I chose to hear Jeff Alger discuss the Microsoft Foundation Classes. Jeff introduced himself and explained that contrary to the listing in the conference program he does not work for Microsoft. To a standing room only crowd Jeff explained how he had been enticed to "the dark side" (not his term). He allowed that in his opinion Microsoft has taken the lead in desktop OO technology and that he now prefers Windows over the Mac as a development platform.

Realizing that many of us were unfamiliar with the MS-Windows interface Jeff started with a quick summary. I was surprised to learn that the trend in Windows applications is towards applications which open a single document (SDI) rather than those we are used to on the Mac which routinely open multiple documents at once (MDI). Jeff said there are two related reasons for this. The first is that it is easier to open two copies of an application in Windows - double clicking the icon of a running application launches a copy instead of activating it. The second is that OLE makes it easy to transfer data between the documents in the two separate copies of an application.

Jeff then went into detail on the use of MFC and showed what he was allowed to of Wings, Microsoft's cross-platform development system. Look for an article covering his presentation in an upcoming issue of Frameworks.

While we were still reeling we learned how to join Microsoft's developer program. Most support is via Compuserve and is free. The program has three levels the first of which is free. To join call (800) 227-4679 x11771. I don't have an international number but I'm sure James Plamondon will be happy to provide one if you contact him at

Jeff concluded by asserting that while MacApp is not dead it has run its course, and that it's time for other frameworks to borrow from it while using cleaner architectures. This conclusion is becoming difficult to dispute; I don't know that anyone from Apple would disagree


The sun came out! Unfortunately I had by this time developed the habit of staying in the hotel. Perhaps I'll see Atlanta another time.

Larry Tesler

Even the preponderance those of us who were up until the wee hours at Wednesday's hack session made sure not to miss Larry Tesler's presentation on Thursday morning. As usual he did not disappoint. Larry started by wondering out loud what the next decade will be called. If we're living in the nineties will the next decade be the zeros? Then perhaps it will be the OO decade! Larry also wondered, prophetically but a little unkindly I thought, what the SFA will rename itself in ten years.

This was Larry's lead-in to a discussion of programming at a higher level. He didn't mean 4th or 5th generation languages or OO Frameworks but rather more help from the machine with routine chores. After all, that's what they're supposed to be good at!

After a digression into the principles of Genetic Programming (I'm fascinated but unwilling/unable to describe it!) Larry wondered what the role of the programmer of the future will be. He speculated that as software is written at a higher level and becomes more autonomous our role will become more akin to that of Coach than anything else. That would let SFA become SCA. An audience member pointed out that this acronym has been taken by the Society for Creative Anachronism. Another audience member (surely they weren't plants!) suggested a merger, to much applause.

Microsoft Tools

Next up was Microsoft's Scott Randall who described Microsoft's developer tools and the Microsoft Foundation Classes. This talk would have been more valuable before Jeff Alger's presentation the previous afternoon; I imagine scheduling difficulties resulted in the actual order.

Scott tried to walk us through the array of versions of development products and APIs, including some of the history behind them. He told us that Microsoft has over 100,000 developers; I didn't ask but I presume that's the number who have signed up for "level zero" of their developer plan. He showed a new version of Visual C++ for the first time in public. The AppStudio piece is integrated; for some reason Microsoft didn't use OLE!

Scott told us about some features without seeming to realize which ones might impress us. He mentioned "dead code stripping" as if it were a big deal, but also pointed out that with all the applications around the compiler in effect has over 1 billion lines of test code. Scott also mentioned that the MFC make extensive use of assertions; that's something I'd like to see in every framework.

Taligent Frameworks

Taligent's Brett Halle was next, teasing us with glimpses of Taligent's frameworks. I say teasing because it seems as though the only way to use this technology today is to go to work for Taligent. I don't meant to malign Taligent; I'm glad they're letting us know what they can!

Apparently the Taligent Object Services use a Microkernel from IBM optimized for objects. Brett listed some impressive features provided by the Microkernel and told us how Taligent is trying to solve some of the problems involved in porting Operating Systems. He referred to I/O as a "huge problem space" and suggested that it can be combated though the use of OO device drivers.

I'm ready to be a big Taligent fan, but I doubt I'll be enthusiastic until I have something I can use to solve a problem.

The Benefits of Smalltalk

Among the choices Thursday afternoon was a presentation SmalltalkAgents by QKS. I understand that it was fairly similar to the presentations they have given at various local affiliate meetings, but one interesting incident occurred. At the session a number of Apple employees, both former and present, sat in the back of the room, laughing a bit, as David Simmons ran through the extensive feature set of SmalltalkAgents. Some of their questions at the end were rather revealing, such as: "When do you guys sleep?", "Where do you keep the 2000 programmers who must have worked on this?", and "So you started this when MPW 3.2 came out, have rewritten parts of it three times, and now you have this and we have MPW 3.3 !?". I guess the choice of Smalltalk has paid off for at least one developer!

Bertrand Meyer

For me one of the highlights of the conference was Thursday's after-dinner speech by Bertrand Meyer. I suggest hearing him in person if possible! His books are supposed to be pretty good too; I've resolved to pick one up real soon now. I wasn't quite persuaded to switch to his language, Eiffel, but I know it has some attractive features.

Dr. Meyer began with a question: What is OO technology? He answered it and then discussed what he sees as the obstacles to successful adoption of OOT and his proposed remedies. Yes, he considers C++ an obstacle! He also sees non-technical managers as an obstacle.

Dr. Meyer moved on to ask for better arguments. He sees some obstacles as being thrown down by some supporters of OOT, who phrase them in the form of prescriptions such as

  • Do not use Multiple Inheritance (?)
  • Prototype (?)
  • Do not use inheritance for implementation (?)
  • Underline the nouns (?)
  • Teach analysis first (?)

Before attacking these prescriptions Dr. Meyer treated us to a discussion of the scientific method, how it has fallen out of favor, and why that is a bad thing. He showed us a page from Descartes' "Discourse on the Method" and translated it from the French. His point I think was that arbitrary prescriptions are pointless or worse; if a prescription is to influence us its author must provide the reasoning behind it. As an advocate of the importance of philosophy I appreciated all this, though I can't speak for the rest of the audience. I do have evidence that the speech held the audience's interest; I didn't notice anyone leave at 9 to go watch "Seinfeld"!

I don't recall whether he quoted Pogo ("We have met the enemy, and he is us") but Dr. Meyer did manage to quote Pascal ("Worse than ignorance is semi-science") and Stendhal (a passage from The Life of Henri Brulard.)

Dr. Meyer's argument against those who think it wise to concentrate strictly on analysis really hit home; "Bubbles don't crash!" So long as one remains in the analytic realm one has not been tested.

His argument against prototypes (specifically throw-away prototypes) I found less convincing. Dr. Meyer argued that quality decreases when developers know their work will be discarded. I thought that begged the question of the purpose of the prototype, which I view as a device to help discover what a system's users really want. In my (certainly more limited!) experience development is easy in comparison with determining and documenting user requirements.

Meyer's most vociferous argument against prescriptions which violate the scientific method dealt with Multiple Inheritance. He claimed that the most prevalent Software Engineering textbook in use in colleges today dismisses MI by showing and criticizing the following bad example:

Suppose one were building a motor vehicle application and needed to store information about owners of automobiles. A "Car_Owner" class could inherit from, that's right, "Car" and "Person."

We were rolling in the aisles, or would have been had there been any aisles in the ballroom.

Apparently anxious to make journalist's lives easier, Dr. Meyer used a second overhead projector to display a running critique of his own presentation. I reproduce it here in its entirety:

    "The banquet speaker couldn't figure out what he was talking about. Next year please invite someone else."

    "Whatever happened to good old American quotations? Why can't he quote Walt Whitman, or Thomas Edison, or Wayne Gretsky?"

    "The speaker had handwritten slides."

    "Why can't he stick to his slides?"

    "Next year please invite Ed Yourdon."

Apple Feedback Forum

Late Thursday evening a large crowd gathered to heckle or otherwise communicate with a brave group from Apple led by Pat Harding. I'm afraid I was more of a participant in this session than a journalist. I can say that the crowd was more assertive than on Monday morning! I suspect this is usual for these kinds of "Bash Apple" sessions.

I brought up a technical issue that had been troubling me for a while. According to the MPW release notes:

"The linker prints a warning when the CVTE count rolls over 64K. Although the SYM file is technically incorrect in this situation, some debugging is possible and the executable file is correct."

Why should we have to put up with this? The problem is that the SYM file format is showing its age. It uses 16-bit references which are inadequate for large applications. One symptom of this problem, besides the warning message, is that a source level debugger cannot display all local variables. Apple produced a linker which generates a revised version of the SYM format over a year ago, but has chosen not to make it generally available.

I asked Apple's Manager of Developer Tools, Rick Fleischman, what he could do to help. After some give and take he promised to get back to me. Sure enough a month later Rick came through with an updated version of the Link tool which will create SYM files in this new format. The only debugger which can read the new format is Steve Jasik's "The Debugger." I don't know whether or how Apple will distribute this linker. If you need a copy I suggest writing to

For more information on Apple's debugging strategy and developers' reactions to it please check out the networks, in particular MacApp3Tech$ AKA comp.sys.mac.oop.macapp!


Component Integration Labs

Jed Harris, now an employee of Component Integration Labs, spoke about this new non-profit corporation. CILabs was formed jointly by Apple, IBM, WordPerfect (before they were purchased by Novell) and perhaps other companies to help make OpenDoc a cross platform standard.

Mr. Harris said all the right things about supporting IBM's SOM and being CORBA compliant. He received applause, however, when he mentioned that CILabs will make source code available, and that that source code will support various frameworks such as OPF (no bug surprise), OWL, and PowerPlant.

More information is available from


About 5 to 10% of the attendees were there to find out what frameworks and tools they should be starting with. The Windows programmers were often just re-affirming their choice of MFC. And Mac programmers were most often interested in finding out if their present tools and frameworks were still viable. What's that saying about pioneers and arrows?

I'm told that this year's conference was not as well attended as last year's. Some attributed this to poor advertising and to competition from Objex, a conference running simultaneously on the left coast.

To my mind there is no more useful conference I could have attended than this one. The agenda was heavy with content. The things I saw helped make me more productive with the tools I use today. The conference also gave me glimpses of a wide variety of tools I can use to advantage now and in the near future. Given the choice I would rather attend this than, say, Apple's WWDC.


Community Search:
MacTech Search:

Software Updates via MacUpdate

Acorn 7.3.2 - Bitmap image editor.
Acorn is a new image editor built with one goal in mind - simplicity. Fast, easy, and fluid, Acorn provides the options you'll need without any overhead. Acorn feels right, and won't drain your bank... Read more
Google Chrome 109.0.5414.119 - Modern an...
Google Chrome is a Web browser by Google, created to be a modern platform for Web pages and applications. It utilizes very fast loading of Web pages and has a V8 engine, which is a custom built... Read more
ASPPPPP 1.3.99999999999 - Create cursor...
ASPPPPP brings Aperture Science's portal technology to your desktop. Avoid carpal canal syndrome and save millions of pixels of cursor moving. When launching the app, you first set the position of... Read more
beaTunes 5.2.31 - Organize your music co...
beaTunes is a full-featured music player and organizational tool for music collections. How well organized is your music library? Are your artists always spelled the same way? Any R.E.M. vs REM?... Read more
RoboForm 9.4.1 - Password manager; syncs...
RoboForm is a password manager that offers one-click login, mobile syncing, easy form filling, and reliable security. Password Manager. RoboForm remembers your passwords so you don't have to! Just... Read more
Paragon NTFS 15.10.559 - Provides full r...
Paragon NTFS breaks down the barriers between Windows and macOS. Paragon NTFS effectively solves the communication problems between the Mac system and NTFS. Write, edit, copy, move, delete files on... Read more
FileZilla 3.63.0 - Fast and reliable FTP...
FileZilla (ported from Windows) is a fast and reliable FTP client and server with lots of useful features and an intuitive interface. The FileZilla Client not only supports FTP, but also FTP over TLS... Read more
BusyCal 2023.1.1 - Powerful calendar app...
BusyCal is the powerful, flexible, reliable calendar app for macOS. It's packed with time-saving features and compatible with all leading cloud services including iCloud, Google, Exchange, and more.... Read more
HandBrake 1.6.1 - Versatile video encode...
HandBrake is a tool for converting video from nearly any format to a selection of modern, widely supported codecs. Features Supported Sources VIDEO_TS folder, DVD image or real DVD (unencrypted... Read more
Luminar AI 1.5.5 - Powerful, adaptive, c...
Luminar AI is the new full-featured image editor that adapts to the way you edit photos. Over 300 essential tools to fix, edit, and enhance your photos with comfort. The future of photo editing is... Read more

Latest Forum Discussions

See All

SwitchArcade Round-Up: ‘ATONE’, ‘Dance o...
Hello gentle readers, and welcome to the SwitchArcade Round-Up for January 27th, 2023. In today’s article, we mop up the remaining releases of the week. There are quite a few, thanks to some slipping out after I went home last night. There are... | Read more »
‘Prehistoric Isle 2 ACA NEOGEO’ Review –...
It’s somewhat surprising how clearly one can draw a line between SNK before NEOGEO’s launch and after. The likes of Psycho Soldier and Ikari were relegated to cameo appearances, and only a few lucky pre-NEOGEO IPs ever saw follow-ups on the multi-... | Read more »
Old School RuneScape announces landmark...
Jagex has announced some groundbreaking news for fans of its iconic MMORPG, Old School RuneScape. For the first time in the game's 15-year history, the player base has voted in favour of the implementation of a new skill to the retro masterpiece... | Read more »
Physics Puzzler ‘Squiggle Drop’ From Noo...
Noodlecake’s Squiggle Drop () featuring more than 100 puzzles is the final new Apple Arcade release of January 2023. When Apple revealed the games for the month, I was very curious to see how Squiggle Drop would turn out. It seemed like a game I’d... | Read more »
‘Of Two Minds’, a Psychoanalytical FMV G...
We are truly in the renaissance of full-motion video games since the genre first arrived in the late ’80s and early ’90s before dying an ugly death due to the poor quality of those gaming experiences as well as the poor quality of the actual video... | Read more »
SwitchArcade Round-Up: ‘Goldeneye’ Comin...
Hello gentle readers, and welcome to the SwitchArcade Round-Up for January 26th, 2023. The big news is that Goldeneye for Nintendo Switch Online finally has a release date, and it’s soon as it could be. We have a ton of new releases to go through... | Read more »
Previously Cancelled Co-Op City Builder...
Back in August of 2021 developer Supercell formally announced Everdale to the world, a cooperative city building game that had already been in a smaller form of beta testing under a different name for at least a year prior. That announcement kicked... | Read more »
Burgeon and Flourish are releasing an FM...
Game development can take a while, with bugs, reworks and good old-fashioned arguments delaying things. However, the upcoming FMV game Of Two Minds may have the longest source material to game delay of all time, being a huge 30 years in the making... | Read more »
‘Rocket League Sideswipe’ Season 7 Launc...
After the launch of Season 6 and Season 5, our our 2021 iPhone Game of the Year Rocket League Sideswipe saw a bit of a delay for its newest season. | Read more »
SteamWorld Quest and Heist Are Discounte...
Thunderful Games recently announced SteamWorld Build for PC and console platforms, as the newest entry in the long-running franchise. A demo for it is currently available on Steam. To celebrate the announcement, both SteamWorld Quest ($2.99) and... | Read more »

Price Scanner via

Apple Card special offers for January and Feb...
Apple Card is offering special offers for January & February, 2023 which include a $75 Daily Cash offer for customers who open a new Apple Card through February and a $55 Daily Cash offer for new... Read more
New low price: Clearance 14″ M1 Pro MacBook P...
B&H Photo has dropped prices on Apple’s previous-generation 14″ 8-Core M1 Pro MacBook Pros by $300 off original MSRP, now only $1699. Free 1-2 day shipping is available to most US addresses: – 14... Read more
Apple has clearance 27-inch 5K iMacs in stock...
Apple has a full line of Certified Refurbished 2020 27″ 5K iMacs available starting at only $1169 and ranging up to $810 off original MSRP. Apple’s one-year warranty is standard, shipping is free,... Read more
Price drop! Apple has M1 Mac mini in stock fo...
Apple has dropped prices on clearance M1-powered Mac minis in their Certified Refurbished section to a new low starting price of only $469. Each mini comes with Apple’s one-year warranty, and... Read more
The Latest Rumors and Potential Features of a...
The rumors are flying and speculation is running rampant around the possibility of a new Apple iMac Pro. It is expected to be a powerful computer in Apple’s lineup, and people are already asking what... Read more
New low price: Apple Studio Display for $1399...
Amazon has Apple Studio Displays on sale for $200-$150 off MSRP for a limited time. Shipping is free: – Studio Display (Standard glass): $1399.99 $200 off MSRP – Studio Display (Nano glass): $1749 $... Read more
Week’s Best Apple Deals: Clearance 14-inch M1...
With the introduction of new M2 Pro and M2 Max-powered 14″ MacBook Pros, Apple and its retailers have dropped prices on standard-configuration 14″ MacBook Pros with M1 Pro CPUs by as $570 off... Read more
$150 discounts on Apple 24-inch iMacs with 25...
Amazon has Apple’s 24″ M1 iMacs with 256GB of SSD storage on sale for $150 off MSRP. Their prices are currently the lowest available for new iMacs among the Apple retailers we track: – 24″ M1 iMacs (... Read more
Apple Education is offering $100 discounts on...
Need a new Apple MacBook for school? Whether you’re a student, teacher, or staff member, you can use your .edu email address when ordering at Apple Education to take $100 the price of a new 13-inch... Read more
Find the best deals on Apple gear using our a...
Our Apple award-winning price trackers are the best place to look for the lowest prices and latest sales on all the latest Apple gear. Scan our price trackers for the latest information on sales,... Read more

Jobs Board

Wireless Device Portfolio Manager - *Apple*...
…in our Retail Wireless journey. The successful Device Portfolio Manager - Apple will work cross-functionally to develop, oversee and execute a device roadmap Read more
Bilingual Level 1 *Apple* Support Specialis...
…generous employee benefits! Our client is currently seeking a qualified Bilingual Level 1 Apple Support Specialist to join their team. This role can be hybrid / Read more
Security Officer - *Apple* Store - NANA Reg...
…security is our \#1 priority\. This is a public environment at the Apple Store and surrounding areas with the corresponding levels of traffic \(employees, visitors, Read more
Device Portfolio Manager - *Apple* - DISH (...
…in our Retail Wireless journey. The successful Device Portfolio Manager - Apple will work cross-functionally to develop, oversee and execute a device roadmap Read more
Senior STE / *Apple* / OTT / Streaming Serv...
…and perform tests to validate large-scale content operations and releases. As an Apple STE, you'll partner with the content and streaming teams to ensure smooth Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.