Morphic is a DirectManipulation UserInterface
) which was originally developed by the SelfLanguage
team at SunMicrosystems
. It is currently also used in SqueakSmalltalk
and in the LivelyKernel?
From the SqueakSwiki
- Morphic is a direct-manipulation User Interface (UI) construction kit based on display trees. It is an alternative to ModelViewController (MVC). It will likely replace and obsolete MVC, as DanIngalls says in Place in the Universe.
(link updated 8/22/02), (marked This category needs an editor 2002-11-24)
Squeak's SWiki page has extensive information on the Squeak's implementation of the MorphicInterface
For more on Morphic, the following papers should help (available from the ACM digital library):
Maloney, J. and R. Smith. Directness and Liveness in the Morphic User Interface Construction Environment. in UIST. 1995. Pittsburgh: ACM.
Smith, R., J. Maloney, and D. Ungar. The Self-4.0 User Interface: Manifesting a System-wide Vision of Concreteness, Uniformity, and Flexibility. in OOPSLA '95. 1995: Association of Computing Machinery.
How does it relate to SceneGraph
in the collection of GraphicsPatterns
Each Morphic object (Morph) is a node in a SceneGraph
. The Morphic framework manages the rendering of the SceneGraph
. The application constructs a SceneGraph
by composing Morphs. The application modifies Morphs in response to changes in domain objects that the Morphs represent. The framework then updates the display by rendering the modified Morphs and any other Morphs that also need to be redrawn such as those overlapping the modified Morphs.
Graphic programmers, especially those used to programming 3D graphics, will recognize this as a RetainedModeGraphicsApi?
There is no direct relationship between Morphic and NakedObjects
, though a number of people have observed that there is at least some overlap between the ideas e.g.:
Morphics is an attempt to do CollapseHierarchy
for the original ModelViewController
framework, and from what I know, it is suffering badly from LargeClass?
code smell even though it presents the user with both controlling and displaying in one hierarchy.
Once upon a time, I played with Squeak ... for about 20 minutes. That's how long it took me to conceive an intense loathing for its UI. Is Squeak's UI direct-manipulation? Sure it is. It's direct manipulation done wrong!
Squeak's UI is the ANTI-AlternateRealityUserInterface
. Squeak's UI doesn't attempt to make interfaces disappear, oh no. No, Squeak's UI creates interfaces FOR its interfaces, controls FOR its controls. And the same goes for AlanKay
's latest retarded project OpenCroquet
Squeak made me hate Morphic. But then what do I know? I'm not a programmer, just an InteractionDesigner
. -- RK
I agree. It didn't take a lot of messing around with Squeak to see what it was about before I actually began to feel
claustrophobic and simply couldn't take anymore.
Just reading the NakedObjects
book. What's most interesting so far is how it makes the argument that Squeak's UI isn't OO at all because it displays commands as icons (the halo around each object). Which of course is the #1 complaint I have about it.
the former comment is wrong, please remove it
(from http://www.nakedobjects.org/section6.html )
- Squeak provides the user with a very strong sense of direct interaction with the application objects themselves. The user can select any object and invoke display-related as well as business-specific behaviours directly - even when the objects are moving around the screen. Hence Squeak has blurred the line between programming and using a system. However, although Squeak clearly has general-purpose potential (in the words of the Squeak central team, Squeak is 'Smalltalk as it was meant to be'), most of the emphasis to date has been on educational applications, animated graphics, and multi-media authoring tools
I couldn't care less about interacting with "application objects". In fact, I don't WANT to interact with application objects. The less interaction with those wastes of visual space the better! I want to interact with business objects. Only with business objects.
What Squeak does is it shoves interaction with "application objects" down your throat. It clutters up the screen until the UI chokes on them. Squeak's UI makes it impossible to have any meaningful
interaction because it forces you to pay attention to and concern yourself with totally useless, pointless and wasteful interaction. -- RK
What kind of interactions did you find wasteful? My understanding of the Morphic paradigm is that the objects on the screen are intended to be your business objects, though as far as I can tell from the Self Movie, Randy Smith and John Maloney did not have business very much in mind. In other words, the visible object has all the slots (properties and scripts) that it needs to be some part of the computer model that you are working with. In a similar way, a spreadsheet cell has slots for a formula and a value, but you can't usually manipulate it to add some scripts (behaviours), animations, extra data, or change its location in the grid.