TweetFollow Us on Twitter

November 92 - Pointer-Counterpointer

Pointer-Counterpointer

Eric Berdhal and Jeff Alger

Eric,

    For eight years now, MacApp has been the only game in town. Sure, there's been Smalltalk V/Mac and the Think Class Library, but neither is a serious product for large-scale applications. Suddenly, we're going to have new, high-quality offerings from companies like Symantec, Taligent, Component Software, Visix, Electron Mining (see elsewhere in this issue), and not least Apple. There will be lots of cross-pollenation from technologies like X, Windows, Common Lisp and its bouncing new baby, Dylan, and other AI-derivatives. Where before we had strict parochialism, we will now have routine cross-platform development.

    What we're seeing is the emergence at long last of a competitive market economy in class libraries for the Macintosh. Ironically, it will come about roughly three years after the fall of central planning in eastern Europe, but hey, better late than never. Those of us who have lived with MacApp over the years (and no mistress could have been more loyal or more fickle!) are the keepers of the lore and should pass that lore along to the new generation. So, here goes.

    Apple has invested too little to do the job right but just enough to screw up the third-party market. One has to wonder whether a Taligent-sized effort within Apple years ago wouldn't have obviated the need for Taligent as a separate company. By changing compilers to suit MacApp Apple kept others constantly off-balance in language tools. By providing simplistic tools like ViewEdit, SourceBug, MPW, and MacBrowse free on ETO, but never really finishing them, Apple has hampered third-party vendors and products - Jasik's Debugger, AppMaker, Ad Lib, Object Master, to name just a few - that have consistently been better products, but lacked one critical attribute in the market: the Apple logo. Lurches in direction from version to version and even beta to beta have made it impossible for independent companies to recapture engineering costs. It has also discouraged people from writing books, developing training courses, or providing complementary class libraries. On reflection, I think Apple's resources would have been better used to set standards, enable technologies through technical assistance and seed funding, and provide a marketing umbrella for third-party products.

    As far as technology is concerned, I agree with you that versions 1.x and 2.x were quite well done, but that 3.x is basically a collection of features masquerading as an application framework.

    There were the expected number of misguesses for anything this complex. Compatibility with Object Pascal, in hindsight, was more harmful than helpful and looks a little silly now. Not using C++ version 3.x, pointer-based objects or multiple inheritance also looks increasingly like a big mistake. Backward compatibility with 2.x resulted in lots of redundancy but little benefit.

    There were good concepts backed by poor implementations. Behaviors, adorners, and certain aspects of event dispatch missed the more general (and simpler) principles of delegation and aggregation; they are also unevenly applied. Dependency management never quite settled into a coherent architecture and has been used in some positively bizarre ways. The 2.x view architecture was due for an overhaul and didn't get it. I can't agree with your praise of the dialog architecture, Eric. I'd like to see these areas rethought in future frameworks.

    There are glaring omissions: memory management, including garbage collection; data structures; object persistence and distribution; automated segmentation; data communications; and database support.

    MacApp 3.x suffers from a lack of architectural coherence. Learning MacApp is like walking into a house of mirrors. Eventually you learn your way around, but it's disorienting and you can't trust your senses. Even within MacApp there isn't a great deal of consistency, especially in the use of new features like behaviors, adorners and dependency management. One gets the impression that there just wasn't time to think things through.

    On the other hand, there are some things done very well in 3.x: exception handling, the overall approach to commands and events (though the implementation is not well-factored), instantiate-by-name and other uses of metainformation, support of System 7 features, printing (my favorite!), streams, the menu architecture, and the mechanics of windoids and tear-off menus. These should be studied seriously by any newcomer to the field.

    Despite the problems, I don't blame the MacApp team itself, for they accomplished a remarkable amount with limited resources. On balance, I'd grant an A+ for effort but only C++ for the outcome and a generous D for Apple management. The new kids on the block would be well-advised to study the reasons.

Jeff

Friend Jeff,

    I've been thinking over the conversations we've had about MacApp over the years, and we have had some barn burners, haven't we? Now that Apple is moving beyond MacApp, we have something new to consider: What can we learn from MacApp and take with us to the future?

    One thing I've always admired about MacApp is its vision and philosophy. I think the first thing I liked about MacApp was that is was a decent factoring of a Macintosh application. Even back in the days of MacApp 1.x, there were interesting features aimed at being factors of a Mac App: a rudimentary document structure, an encapsulation of a display, and some basic support for utility objects like lists.

    When MacApp turned 2.x, there was yet another factoring of a Mac App, one that was significantly different and better. The document structure was still not fantastic, but it did exist and allowed basic default functionality to be easily accessed. The hierarchical view system modeled the way developers want to display information fairly well. In many ways, the 2.x cycle brought MacApp close to a quantum leap in technology, where software development could truly leverage object technology.

    Then came 3.x. Unfortunately, I think 3.x consists of a variety of features that were grafted onto 2.x technology. MacApp deserved better and could have easily been the unarguably superior development environment. As it is it's still head and shoulders above the crowd, but the question remains: What can we learn from MacApp? More importantly, what is MacApp? Once we have the answer to that question, I think the rest will come easily.

    I see MacApp as a collection of interesting features, a few frameworks, and a couple architectures all thrown together in a package. In short order, here's the way I view the MacApp world.

    One of the oldest and most interesting architectures I see in MacApp is the View architecture. Although it is essentially unchanged since 2.x, it is still a fine piece of work. Views allow developers to display information to the user in a rather rich format. Look at this, now I'm spewing Apple marketing information at you.

    Built on this architecture is what is possibly one of the best ideas to come around, MacApp dialogs. After doing dialogs with MacApp, I can't see going back to using the toolbox. MacApp actually makes it rather pleasant to deal with this score. Well, I like it anyway.

    Then there are adorners. These objects, really lightweight views, look like an interesting experiment, but I'm not sure it was a success. I've always thought that they were too light to be true lightweight views and too heavy to just adorn a view. I'm also not thrilled that they require so much direct support from the view system, almost like they were shoe horned into place. Behaviors, yet another MacApp feature, have many of the same problems, but I feel less strongly about them.

    The other framework that is really cool is the command structure. How else do you encapsulate the Macintosh undo metaphor? This is a textbook example of how simple, obvious classes can solve what would otherwise be exceedingly difficult problems. What MacApp has done is even more impressive, setting the commands as the basic unit of work in an application.

    Then there are systems and architectures that are expected to be found in a mature object system. MacApp implements very nice access to the metainformation available from Object Pascal. Dependency management and a stream architecture is another one of those features you get used to seeing in object based systems. MacApp's implementation of these isn't entirely world class, but they are very usable even though they're not completely integrated into the underlying MacApp frameworks.

    Finally, MacApp has a lot of debugging and antibugging code. Another thing that MacApp dealt with mostly head on is the admission that exception handling has to be a part of the mainstream code of an application. The consequence is that debugging code and failure handling permeates MacApp and MacApp based applications, something noticeably absent elsewhere.

    So, with all these pieces, we should be able to find something that we can take with us, either in code, analysis, or lessons.

Stirring regards,
Eric

 
AAPL
$475.33
Apple Inc.
+7.97
MSFT
$32.51
Microsoft Corpora
-0.36
GOOG
$884.10
Google Inc.
-1.41

MacTech Search:
Community Search:

Software Updates via MacUpdate

Dragon Dictate 3.0.3 - Premium voice rec...
With Dragon Dictate speech-recognition software, you can use your voice to create and edit text or interact with your favorite Mac applications. Far more than just speech-to-text, Dragon Dictate... Read more
TrailRunner 3.7.746 - Route planning for...
Note: While the software is classified as freeware, it is actually donationware. Please consider making a donation to help stimulate development. TrailRunner is the perfect companion for runners,... Read more
VueScan 9.2.23 - Scanner software with a...
VueScan is a scanning program that works with most high-quality flatbed and film scanners to produce scans that have excellent color fidelity and color balance. VueScan is easy to use, and has... Read more
Acorn 4.1 - Bitmap image editor. (Demo)
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
Mellel 3.2.3 - Powerful word processor w...
Mellel is the leading word processor for OS X, and has been widely considered the industry standard since its inception. Mellel focuses on writers and scholars for technical writing and multilingual... Read more
Iridient Developer 2.2 - Powerful image...
Iridient Developer (was RAW Developer) is a powerful image conversion application designed specifically for OS X. Iridient Developer gives advanced photographers total control over every aspect of... Read more
Delicious Library 3.1.2 - Import, browse...
Delicious Library allows you to import, browse, and share all your books, movies, music, and video games with Delicious Library. Run your very own library from your home or office using our... Read more
Epson Printer Drivers for OS X 2.15 - Fo...
Epson Printer Drivers includes the latest printing and scanning software for OS X 10.6, 10.7, and 10.8. Click here for a list of supported Epson printers and scanners.OS X 10.6 or laterDownload Now Read more
Freeway Pro 6.1.0 - Drag-and-drop Web de...
Freeway Pro lets you build websites with speed and precision... without writing a line of code! With it's user-oriented drag-and-drop interface, Freeway Pro helps you piece together the website of... Read more
Transmission 2.82 - Popular BitTorrent c...
Transmission is a fast, easy and free multi-platform BitTorrent client. Transmission sets initial preferences so things "Just Work", while advanced features like watch directories, bad peer blocking... Read more

Butterfly Sky Review
Butterfly Sky Review By Lee Hamlet on August 13th, 2013 Our Rating: :: BUTT-BOUNCING FUNUniversal App - Designed for iPhone and iPad Butterfly Sky combines the gameplay of Doodle Jump and Tiny Wings into a fun and quirky little... | Read more »
Guitar! by Smule Jams Out A Left-Handed...
Guitar! by Smule Jams Out A Left-Handed Mode, Unlocks All Guitars Posted by Andrew Stevens on August 13th, 2013 [ permalink ] | Read more »
KungFu Jumpu Review
KungFu Jumpu Review By Lee Hamlet on August 13th, 2013 Our Rating: :: FLYING KICKSUniversal App - Designed for iPhone and iPad Kungfu Jumpu is an innovative fighting game that uses slingshot mechanics rather than awkward on-screen... | Read more »
The D.E.C Provides Readers With An Inter...
The D.E.C Provides Readers With An Interactive Comic Book Platform Posted by Andrew Stevens on August 13th, 2013 [ permalink ] | Read more »
Choose ‘Toons: Choose Your Own Adventure...
As a huge fan of interactive fiction thanks to a childhood full of Fighting Fantasy and Choose Your Own Adventure books, it’s been a pretty exciting time on the App Store of late. Besides Tin Man Games’s steady conquering of all things Fighting... | Read more »
Terra Monsters Goes Monster Hunting, Off...
Terra Monsters Goes Monster Hunting, Offers 178 Monsters To Capture and Do Battle With Posted by Andrew Stevens on August 13th, 2013 [ permalink ] | Read more »
Blaster X HD Review
Blaster X HD Review By Jordan Minor on August 13th, 2013 Our Rating: :: OFF THE WALLiPad Only App - Designed for the iPad For a game set in a box, Blaster X HD does a lot of thinking outside of it.   | Read more »
Tube Map Live Lets You View Trains In Re...
Tube Map Live Lets You View Trains In Real-Time Posted by Andrew Stevens on August 13th, 2013 [ permalink ] Universal App - Designed for iPhone and iPad | Read more »
Premier League Kicks Off This Week; Watc...
Premier League Kicks Off This Week; Watch Every Single Match Live Via NBC Sports Live Extra and Your iPhone or iPad Posted by Jeff Scott on August 13th, 2013 [ permalink ] | Read more »
Meet Daniel Singer, the Thirteen-Year-Ol...
Ever had the idea for an app, but felt like the lack of programming and design ability was a bit of a non-starter? Well, 13-year-old Daniel Singer has made an app. He’s the designer of Backdoor, a chat app that lets users chat with their friends... | Read more »

Price Scanner via MacPrices.net

Can Surface be Saved? – Another Microsoft Bra...
WinSuperSite’s Paul Thurrott predicts that industry watchers and technology enthusiasts will be debating Microsoft’s decision to enter the PC market for years to come, but in the wake of a disastrous... Read more
Apple refurbished iPads and iPad minis availa...
 Apple has Certified Refurbished iPad 4s and iPad minis available for up to $140 off the cost of new iPads. Apple’s one-year warranty is included with each model, and shipping is free: - 64GB Wi-Fi... Read more
Snag an 11-inch MacBook Air for as low as $74...
 The Apple Store has Apple Certified Refurbished 2012 11″ MacBook Airs available starting at $749. An Apple one-year warranty is included with each model, and shipping is free: - 11″ 1.7GHz/64GB... Read more
15″ 2.3GHz MacBook Pro (refurbished) availabl...
 The Apple Store has Apple Certified Refurbished 15″ 2.3GHz MacBook Pros available for $1449 or $350 off the cost of new models. Apple’s one-year warranty is standard, and shipping is free. Read more
15″ 2.7GHz Retina MacBook Pro available with...
 Adorama has the 15″ 2.7GHz Retina MacBook Pro in stock for $2799 including a free 3-year AppleCare Protection Plan ($349 value), free copy of Parallels Desktop ($80 value), free shipping, plus NY/NJ... Read more
13″ 2.5GHz MacBook Pro on sale for $150 off M...
B&H Photo has the 13″ 2.5GHz MacBook Pro on sale for $1049.95 including free shipping. Their price is $150 off MSRP plus NY sales tax only. B&H will include free copies of Parallels Desktop... Read more
iPod touch (refurbished) available for up to...
The Apple Store is now offering a full line of Apple Certified Refurbished 2012 iPod touches for up to $70 off MSRP. Apple’s one-year warranty is included with each model, and shipping is free: -... Read more
27″ Apple Display (refurbished) available for...
The Apple Store has Apple Certified Refurbished 27″ Thunderbolt Displays available for $799 including free shipping. That’s $200 off the cost of new models. Read more
Apple TV (refurbished) now available for only...
The Apple Store has Apple Certified Refurbished 2012 Apple TVs now available for $75 including free shipping. That’s $24 off the cost of new models. Apple’s one-year warranty is standard. Read more
AnandTech Reviews 2013 MacBook Air (11-inch)...
AnandTech is never the first out with Apple new product reviews, but I’m always interested in reading their detailed, in-depth analyses of Macs and iDevices. AnandTech’s Vivek Gowri bought and tried... Read more

Jobs Board

Sales Representative - *Apple* Honda - Appl...
APPLE HONDA AUTOMOTIVE CAREER FAIR! NOW HIRING AUTO SALES REPS, AUTO SERVICE BDC REPS & AUTOMOTIVE BILLER! NO EXPERIENCE NEEDED! Apple Honda is offering YOU a Read more
*Apple* Developer Support Advisor - Portugue...
Changing the world is all in a day's work at Apple . If you love innovation, here's your chance to make a career of it. You'll work hard. But the job comes with more than Read more
RBB - *Apple* OS X Platform Engineer - Barc...
RBB - Apple OS X Platform Engineer Ref 63198 Country USA…protected by law. Main Function | The engineering of Apple OS X based solutions, in line with customer and Read more
RBB - Core Software Engineer - Mac Platform (...
RBB - Core Software Engineer - Mac Platform ( Apple OS X) Ref 63199 Country USA City Dallas Business Area Global Technology Contract Type Permanent Estimated publish end Read more
*Apple* Desktop Analyst - Infinity Consultin...
Job Title: Apple Desktop Analyst Location: Yonkers, NY Job Type: Contract to hire Ref No: 13-02843 Date: 2013-07-30 Find other jobs in Yonkers Desktop Analyst The Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.