Article View: comp.sys.mac
Article #3829Re: Real Multifinder
From: Larry Rosenstein
Date: Thu, 31 Aug 1989 17:58
Date: Thu, 31 Aug 1989 17:58
45 lines
2695 bytes
2695 bytes
In article <1989Aug16.175351.24310@sj.ate.slb.com> enk@corona (Edan
Kabatchnik) writes:
> Granted, (parts of) UNIX should be done away with. But, there is a
> superior form to the main event loop: callbacks (found in X and Xerox
I agree in general with your approach. A cleaner way to get the same
affect, however, is to use an object-oriented language, and develop an
application framework such as MacApp. Callbacks are just a hack to
implement the same thing without special language constructs.
The advantage of using an OO language, however, is that is much more
natural to define methods than to specify call backs. It is easy to
override a method and still execute the original version, which is not as
straightforward using call backs.
I also think that because defining new call backs is more tedious (in
terms of bookkeeping and initialization) that there would be a tendency to
define only high-level call backs (eg, menu-item-chosen). In MacApp, for
example, there are several menu handling methods, which gives the
developer more flexibility.
> So much code has been written for the Macintosh which works without
> callbacks, making it unlikely that future versions of the system will
take
> advantage of callbacks. But, if Apple could figure out a way of making
both
> systems work, then future programmers would be spared a great deal of
pain.
It probably wouldn't be hard to add some kind of call backs (there are
some already for dialogs, for example). If a call back is installed then
the system would take action otherwise it would do the current thing.
Since Apple is already using OO languages, I doubt that you would see
wide-scale use of call backs.
On the other hand, there are packages built on top of the existing ROM
which achieve the same results. MacApp is one that uses an OO language,
but MacExpress is one that works with standard languages and uses call
backs as you suggested.
Larry Rosenstein, Apple Computer, Inc.
Object Specialist
Internet: lsr@Apple.com UUCP: {nsc, sun}!apple!lsr
AppleLink: Rosenstein1
Technical Details
Message-ID:
<3995@internal.Apple.COM>Path:
arc1-ca.pugleaf.net!utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.csd.uwm.edu!wuarchive!brutus.cs.uiuc.edu!apple!Apple.COM!lsrReferences:
<46100321@uxe.cso.uiuc.edu> <1989Aug15.001507.14552@sj.ate.slb.com> <24626@iuvax.cs.indiana.edu> <3576@internal.Apple.COM> <1989Aug16.175351.24310@sj.ate.slb.com>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.csd.uwm.edu!wuarchive!brutus.cs.uiuc.edu!apple!Apple.COM!lsr From: lsr@Apple.COM (Larry Rosenstein) Newsgroups: comp.sys.mac Subject: Re: Real Multifinder Message-ID: <3995@internal.Apple.COM> Date: 31 Aug 89 17:58:40 GMT Sender: usenet@Apple.COM Organization: Objects-R-Us, Apple Computer, Inc. Lines: 45 References: <46100321@uxe.cso.uiuc.edu> <1989Aug15.001507.14552@sj.ate.slb.com> <24626@iuvax.cs.indiana.edu> <3576@internal.Apple.COM> <1989Aug16.175351.24310@sj.ate.slb.com>