esme-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Pollak" <feeder.of.the.be...@gmail.com>
Subject Re: Pretty scathing critique of our REST API
Date Mon, 22 Dec 2008 13:43:20 GMT
On Sun, Dec 21, 2008 at 11:25 PM, Vassil Dichev <vdichev@gmail.com> wrote:

> > But that does not mean purity for purity's sake.  It means practicality
> for
> > our customers and consumers and end user's sake.
>
> And before anyone accuses us, let me admit that we're probably not
> using a MVC framework, either :-)
>
> http://www.pointy-stick.com/blog/2008/11/30/removing-model-view-controller-straitjacket/
>

Lift is most assuredly not an MVC framework in the pure Smalltalk MVC sense.
First, there's no way to do true MVC over the web because MVC requires
server-push.  MVC specifies that if there's a change in the model state, it
is reflected in the view because the view sends a message to a listening
controller.  In fact, Struts and Rails calling themselves MVC is just dead
wrong.  FWIW, I don't think it should mean that Struts shouldn't be part of
the ASF, but I do think it's over-reaching for Struts to call itself MVC.

Second, MVC calls for multiple controllers per view.  A view can be attached
to many different controllers and back-end views.  Rails with a single
controller tied to the URL of the request violates this part of MVC.  Struts
with Tiles works around it.

What MVC has come to mean on the web is a total distortion of the design
pattern.

Just for the record, Lift's CometActors are closer to MVC because the
component in the browser is kept current with the component state on the
server.  And like Apple's XCode, there's no need to write a controller that
simply marshals data between them.  Also, Lift's View-First rendering means
that you define all the components that appear on the page in the view
rather than having a "special" controller based on the URL.  See
http://liftweb.net/index.php/Lift_View_First

My "first think on Monday morning" rant.

Thanks,

David


-- 
Lift, the simply functional web framework http://liftweb.net
Collaborative Task Management http://much4.us
Follow me: http://twitter.com/dpp
Git some: http://github.com/dpp

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message