January 92 - Dinker: the Dynamic Linker
Dinker: the Dynamic Linker
Kurt Schmucker
Many application domains naturally possess an unbounded set of desired features. A
signals processing application, for example, needs an unlimited number of filters. A
symbolic math package, an unlimited number of mathematical operators. A graphics
package, an unlimited number of sketching tools.
Of course, no real application can present an unlimited number of anything to any
given user. However, the market as a whole does appear to want an unlimited number
of features. What's a developer to do?
Some developers have met this challenge by building in a capability to extend their
applications. Using this feature, end users can configure a graphics package, for
example, with a set of sketching tools tailored to their needs, or even modify the set of
available sketching tools while the application is running.
This enables users to get the maximum use of limited RAM and disk space. Instead of
running in a six megabyte MultiFinder partition, for example, an extensible
application, with only the needed tools loaded, could run in, say, four megabytes. In
fact, one of the best selling MacApp applications, Adobe PhotoShop, uses an
extensibility approach with their plug-ins to add new image manipulation algorithms
and data access procedures to the application.
Up until now, MacApp has provided no support to those wanting to add extensibility to
an application. To make matters worse, the most natural way to add functionality to a
MacApp application-by adding new classes to the running application- was something
no one had ever done. Some people even thought this was impossible to do on the Mac.
Dinker, the results of recent work by Apple's Advanced Technology Group, adds exactly
this capability to MacApp. This article describes what Dinker does and how you can use
it in your application. Other articles planned for later issues of FrameWorks will
cover Dinker internals and case studies of adding Dinker-based extensibility to
commercial MacApp applications.
Dinker is included on the next Essentials, Tools, and Objects CD (ETO 6) as a currently
unsupported MacApp experiment. It will be demonstrated at the Orlando '92 MADA
Conference in February.
What is Dinker?
Dinker is a dynamic linking mechanism for the Macintosh OS. It lets you write