How Do You Do Business Apps? (Morphic Design Philosophy)

Bob Arning arning at charm.net
Sat Feb 26 00:45:12 UTC 2000


Hi Paul,

On Fri, 25 Feb 2000 17:04:09 -0500 Paul Fernhout <pdfernhout at kurtz-fernhout.com> wrote:
>For example, just a couple hours ago ago, I started FreeCell, clicked
>"submorphs", pulled a card off the table and dropped it. Then I dragged
>the card over FreeCell and left it half on the table. Squeak/FreeCell
>started endlessly cycling with a weird black pattern striped in the path
>area I had dragged the card. I was unable to move or grab the card as it
>bounced around three locations. I was unable to get menus, or do
>anything, except terminate Squeak. About five clicks I guess, and a
>couple drags.

That sounds like a bug in FreeCell that has since been fixed - I was unable to duplicate it in a current 2.8 image. Generally speaking, an application that supports drag and drop bears the responsibility for ensuring that inappropriate drops are disallowed gracefully. It's not that hard to do and it looks like someone fixed FreeCell in that regard.

>Or, I can go to Tetris (way cool app) and again using submorphs, delete
>the control panel for rotating blocks. Can't play the game anymore.
>Three clicks I think.
>
>Or, I can run the SameBoard game, do an alt-click on a piece and hit the
>blue halo button, and I get an exception window in the left corner and
>Squeak is hung.  Two clicks I think.  
>
>The moral is stay away from the ALT and CTRL keys I guess? 

Great, I was hoping this was what you were referring to. For many application/user combinations, it would be a sin to distribute with these capabilities enabled. Fortunately, they are easily remedied. See Preferences class>>disableProgrammerFacilities for tips on doing this. Alternately, there are just a few places in the image where these thing can be eliminated or drastically curtailed.

>Nowhere in Morphic can I undo deleting a component of an app, or undo
>moving part of an app. MacApp had this kind of support (undoable
>commands) a decade ago. Yes, there is a save and revert in morphic, but
>this is equivalent to saving a file. There isn't the fine grained Undo
>one might expect to be pervasive throughout a design system.

Maybe someday, but I can't say the lack impedes my work. Your mileage may vary.

>My point is, if you create a beautiful system to do a task, you don't
>want the users (including yourself) unintentionally modifying that
>system. You may also intentionally want to make it difficult from users
>to change some things (the cards in the game), while leaving it easy to
>change others (the location of the cards within the table).

Agreed. Some of this is simply turning off the programmerish features before you ship and some is up to you to program correctly. Any programming language/environment I have ever heard of permitted you do write a program that didn't do what you wanted (i.e. they *all* do what you say, not what you mean). And the wider the variety of things you can do correctly in a langauage, the wider the variety of things you can do incorrectly. Such is life.

>OK, perhaps one can disable the submorphs menu in a shipped app (or
>selectively for development tools), and disable some other features. I'm
>not sure of everything one would need to do for this. But the issue
>perhaps is, can this be done in a systematic way to varying degrees? 
>This will take time to resolve, 

Not really. See my note above. And if you see one or two more features that would make a safer system for users, don't be shy.

>in the meanwhile it would be nice to
>have a conventional system like WindowBuilder/Pro that looks as good as
>Morphic and is widget based so I can ship today (ex-ObjectShare people
>-- would WBP be easy to put under Squeak?). Plus, I'd like a system that
>does not do unexpected things. I must be unusual, because just about
>every time I try to use Morphic seriously I end up generating debugger
>dialogs and usually eventually hang Squeak one way or another, usually
>after clicking somewhere odd or dragging something strangley.

Try turning off _some_ of the programmerish features and see if you are happier. Also, some of the walkbacks may be genuine bugs, so don't feel bashful about posting them to the list.

[snip]
>
>Yet, it is perhaps because of Morphic's very complexity, malleability,
>and richness that I find it unapproachable, both for app development and
>for systemic modification. Maybe this is somewhat like when the original
>ST-72 syntax was found too general (where you could write your own
>parser for each class) and the unary, binary, and keyword syntax was
>settled on for every class as a nice compromise. 

This sounds like a somewhat different problem. Did you take a look at BobsUI? You might find an approach like that a little more comfortable.

>Here's the typical situation I face right now with Squeak: I'd like to
>make a system that includes an HTML viewer I can give to other people,
>say, related to the Bootstrap Institute http://www.bootsrap.org Open
>Hyperdocument System project. The HTML viewer I see in Squeak looks
>great, but it is in Morphic. So I'm stuck -- because I know I can't give
>that to end users who don't know Squeak. So I can stare wistfully at
>Scamper in the store window, but I can't take it home to make that app.
>I need to duplicate something like Scamper under MVC which takes more
>time than I have. So, I'm more likely to turn to a system that has such
>support in a shippable way. So, all that great work done on Scamper is
>inaccessible to me, and conversely, I'm less likely to go out of my way
>to improve Scamper or make any changes Scamper could use. That's one
>problem with having only an old incomplete GUI and a new experimental
>GUI under Squeak.

Given the ability to disable halos and other funky programmer-isms takes are of much of this, do you still feel there are vulnerabilities here?

Cheers,
Bob





More information about the Squeak-dev mailing list