View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

Sp00 Final Exam Review: MVC vs. Morphic

See Final Exam Review - Sp2000

a) anything that needs to be fast, but not so much pretty-looking.

b) A 3-D drawing program

c) 1. the VC part of MVC are combined in Morphic components
2. ?
3. ?

mark - any hints...??

Think about the strengths and weaknesses of each. Morphic for DOOM? MVC for DOOM? Morphic for a cellphone? MVC for a cellphone? Mark Guzdial

a) MVC is faster, yes. We were thinking anything that needs to be done in real-time. This is comparable to the "uber-MIDI" application that Mark was talking about in class. The guy used MVC since it was faster.

b) Morphic is good for pretty stuff. Also useful for rapid prototyping. In Morphic, you can just grab a Morph and poof! there it is. You can now do stuff to it directly.

c) The only thing I can think of is that all of Morhpic is the View. Mark, help! :)

Susi Rathmann, jeremy, Matt Flagg

Also, MVC can be used where maintainability is not an issue, i.e. when
you just want to get the job done.

So we were having trouble with this one as well...I decided to ask someone who knows more about it than I do...I asked Brian McNamara and he refered us to Lex Spoon. This is what Lex said (I hope he doesn't mind that I am posting this to try to help everyone!)

> What's the key difference between MVC and Morphic?

They're not much alike. Perhaps the key difference would be that in MVC, one controller is "active" at a time and all the others just sit there. Another big difference, is that MVC (which is really better named "ST-80") explicitly allows for views and controllers to be separate and pluggable, while in Morphic they are all combined.

You don't even have to have a model in Morphic, if you don't want. I like Morphic. I've actually tried twice in ST-80 to get programs working, only to get stuck with all the transformations that you have to deal with. Morphic has a quite traditional architecture, really. There are windows ("morphs"), which can have subwindows (submorphs). If you move a top-level window, all its submorphs move around with it. A morph knows how to draw itself; this is what drawOn: does. A morph can respond to mouse events, via such things like mouseDown: and mouseUp:, although managing to get the events sent to you can be tricky at times.

I'll stop blathering, but the objects in Morphic just really seem visible and easier to understand to me. The only downsides, are that it's a huge amount of code, and that it's kinda slow.

Link to this Page