Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re^4: Catalyst : Observations After Week 1

by nothingmuch (Priest)
on Nov 17, 2005 at 08:27 UTC ( #509335=note: print w/ replies, xml ) Need Help??


in reply to Re^3: Catalyst : Observations After Week 1
in thread Catalyst : Observations After Week 1

I think this is because GUI frameworks allow controllers and views much more tightly coupled and complex - UI kits are bigger, more flexible, and much more "manual" than the web, where browsers take away a big piece of the job (reducing your options, ofcourse). There's another issue in "real" UI applications - the chronology is more easily intertwined. With web apps the interaction is much more spaced out and separated (i'm not really sure how to say this).

Because we have to deal with far less technical complexity in web applications, we can take the lesson learned from MVC - that most applications can be easily broken into 3 layers that relate to taking care of data, getting stuff done, and showing data, and that furthermore breaking an app down like that will probably help the design and maintainability of the application.

Since the parameters involved have all changed applying this lesson to web applications merits reinterpretation, or at least that's how I see it...

What's your opinion on MVC in the webapp scene? How do you write your apps? What's your opinion on the meditation above?

I think it's interesting to understand how MVC evolved so much in this scene... I have not written UI programs (only maintained them - and they were badly designed), so I actually had no idea MVC in that world is so different.

Lastly - I disagree with the model being the "dumb part". I usually try to make the model slightly more than just a mapping layer - it gets some application specific features, and many times it's not even database related. This is where the quote that got me into the thread makes sense to me - the model should take the technical load off the controller, as long as it doesn't over-abstract things (wasting time).

Thanks for the interesting comment =)

-nuffin
zz zZ Z Z #!perl


Comment on Re^4: Catalyst : Observations After Week 1
Re^5: Catalyst : Observations After Week 1
by Aristotle (Chancellor) on Nov 18, 2005 at 07:43 UTC

    Well, MVC on the web is severly limited anyway.

    In real MVC apps, the view can listen to changes in the model, and has to, because there are often multiple views and controllers interacting with the model at once.

    On the web, once you’ve rendered the view, it sits there dumbly in the user’s browser. (XMLHttpRequest does not significantly change this.) That makes the distinction between the model and the controller blurry and somewhat artificial.

    Makeshifts last the longest.

Re^5: Catalyst : Observations After Week 1
by perrin (Chancellor) on Nov 22, 2005 at 01:51 UTC
    I don't think your split of "taking care of data, getting stuff done, and showing data" actually reflects the intent of MVC. It does reflect how most people use Catalyst though. I would expect an MVC app to have a controller that does nothing but map input to methods in the model. It would know nothing about the application itself, but plenty about the web, i.e. the point of the controller is to separate things that are web-specific about user input from the model. That is all it should do. If you want to run your model from a Tk GUI, you just make a new controller and view that understand Tk.

    We do have a bit of a problem at this point, since no other useful name has evolved for the style of development you are talking about. Calling it MVC isn't accurate, but calling it "a templated web app with an O/R mapper" is not succinct enough.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://509335]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (6)
As of 2014-08-30 06:46 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (291 votes), past polls