Squeak
  links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide

Morphic (Difference)

Morphic

Morphic is a direct-manipulation User Interface (UI) construction kit based on display trees. It is an alternative to Model View Controller (*MVC*). It will likely replace and obsolete *MVC*, as *Dan Ingalls* says in *Squeak's Place in the Universe*.
<em>Please post any information you have to describe and help others learn how to use Morphic.</em>
!Basics
- A sample <a href="http://minnow.cc.gatech.edu/squeak/uploads/morphic_squeak.gif">Morphic Screenshot</a>
- *Morphic architecture*
- *What are Morphs?*
- *Morph - common messages*
- *How to lay out submorphs*
- *How to save and load a Morph*
- *How to color a systemWindow and its panes*
- *Forms, Views, and Windows*
- *Flaps>Flaps*
- *Morphic Event Handling*
- *783*
- *How to save and load a Morph*
- *How to color a systemWindow and its panes*
- *Forms, Views, and Windows*
!Morphic Tutorials
Morphic is primarily intended to be an interface for direct manipulation using scripting tiles for programming. However you can use it as well to build user interfaces with plain Smalltalk code. As Morphic is still work in progress the distinction in the tutorials is often somewhat blurred. Sometimes the code doen't work in a newer version (unfortunately).
-*Morphic Tutorial Suite for Beginners* - One person's recommended ordered list of tutorials for learning Morphic.
-The *LearningMorphic>http://209.143.91.36/super.332* project on *Bob's SuperSwiki* - a tutorial on Morphic, written in Morphic itself
-*BankAccountTutorial* - an introduction to general programming within the Morphic environment
-*Fun with Morphic>http://www.squeak.org/tutorials/morphic-tutorial-1.html* -- short, insightful, and to the point
-*Miniaturas, Introducción a Squeak y a Morphic>http://sugar.swiki.net/10*
-*http://www.sinectis.com.ar/u/jmvuletich/MorphicTutorial/Morphic.html*: a short Morphic tutorial that includes a description, some historic background and the programming styles it supports at
-*Counter Tutorial*: A Morphic Fascination. How to build a simple project using only direct-manipulation Morphic techniques
-*Morphic Tutorial: Build a 4 digit LED counter*. Programming a counter using Smalltalk code, instead of the direct-manipulationinterface. Daniel McBrearty added some notes tracking his own exploration, as well as a few questions he couldn't answer for himself
- *Rolodex Tutorial* by John Hinsley
-<A HREF="http://pbl.cc.gatech.edu/cs2390/227">Morphic for Dummies</A> by Mark Guzdial (applies to an earlier version of Squeak, see *WorldMorph*)
____
!Morphic - Application notes
-*Drag and Drop* by David N. Smith
!*Morphic Examples and Applications*
!Wrapping any Smalltalk object with a Morph
- Read *Morphic Wrappers*, a very good starting point to move to Morphic.
!*History of Morphic*
!*Page 2138 - recycle me*
_
!Possible areas for Morphic enhancement
From time to time there is a discussion about the pros and cons of Morphic. Ned Konz sent the following topic list to the email list which may serve as a guide for separating issues and organizing the further development.
Mon, 10 Feb 2003
# Morphic itself: composition, liveness, event handling, stepping, uniformity of interface, properties
# Standard user and programmer interactions with Morphs (halos, hand, etc.)
# Things built with Morphic: widgets, other Morphs
# Using Morphic to build "standard" UIs (consistent widget sets, UI builders)
# Support code for eToys and other environments like Wonderland and Croquet (players, vocabularies, etc.)
# The programmer experience (how easy is it to build things)
# The learning curve (how easy is it to figure out how to build things)(my preference is for steep (that is, quickly learned given enough focus) learning curves)
# Morphic's documentation and tutorials
All of these are to be found in what we've been broadly discussing as
Morphic. I'd argue that these are separate problems which should be
discussed dealt with separately.
Some of the problems I've heard discussed here relate to widgets and
their use. These problems are at a different (and more trivial) level
than Morphic itself.
That is: if Morphic (the infrastructure) itself is adequate, then it's
a SMOP to rewrite or replace the existing widgets.
Other complaints are primarily code esthetics: Morph has lots of
methods; there's impenetrable code in HandMorph and event handling,
etc.
Still others relate to the ease of learning. As Andreas notes, part of
this problem is due to the use of inheritance for behavioral reuse
(which forces lots of methods into Morph). And our standard tools
don't really reduce the evident level of complexity far enough to
prevent the all too frequent effect of new learners being overwhelmed
by the sheer size of the interface. New tools like Traits and scoped
browsers may help somewhat by scoping the available vocabulary.
Some complaints have been about performance (speed of constructing
complex morphs like browsers and menus, damage calculation and extra
redrawing, event handling, etc.).
Some other complaints (like part of the quoted one) have to do with
the appearance or behavior of "standard" widgets. Many people believe
that Squeak should provide widgets that are at least as competent and
attractive as the Windows ones (some also feel that these widgets
should <i>look like</i> the Windows ones).
Rather than saying "Morphic needs a rewrite" (which isn't likely to
spur anyone into action), if you feel there's a problem somewhere in
a <i>specific area</i>, then please describe the problem in
its proper scope and offer suggestions (better, volunteer to lead an
effort to come up with concrete solutions).