Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Programming

Model-View-Controller — Misunderstood and Misused 221

paradox1x writes "Malcolm Tredinnick shares a terrific rant against the misunderstanding and misuse of the Model-View-Controller design pattern. In particular he takes issue with the notion that Django should be considered an MVC framework. He says that 'It's as valid as saying it's a "circus support mechanism," since the statement is both true, in some contexts, and false in others (you can definitely use Django-based code to help run your circus; stop looking so skeptical).' I'm not sure I agree with the entire piece, but it is a very good read." We recently discussed another look at the bending and stretching of MVC patterns in the world of Web development.
This discussion has been archived. No new comments can be posted.

Model-View-Controller — Misunderstood and Misused

Comments Filter:
  • Pedantry (Score:5, Insightful)

    by Anonymous Coward on Tuesday December 02, 2008 @03:41PM (#25965345)
    So let me get this straight: you're upset because some developers are misusing a term and giving their product more credit than it should have?

    Well, that's never happened before!
    • I agree. This article was heavy on opinion and serves very little purpose. Who cares what this guy thinks about how certain, similar patterns are named?!
      • Re: (Score:3, Funny)

        by Tetsujin ( 103070 )

        I agree. This article was heavy on opinion and serves very little purpose. Who cares what this guy thinks about how certain, similar patterns are named?!

        Well, in any case I'm very excited about this new "Circus Support Mechanism" (CSM) pattern... What's it do? I don't know! But it's cool!

        • Re: (Score:3, Funny)

          by jvkjvk ( 102057 )

          Perhaps it's a new transport mechanism, designed to compress, transport and unpack data objects(we can call them "clowns"). The cool thing would be that you get more data out during the unpack stage than you'd ever think would fit in so small a transport (we could call that a "car"!).

          There you go.

          • That's been around for years. That's why I use a browser with a "close-the-door-before-more-clowns-get-out" feature. Also known as a pop-up blocker.
  • Web Frameworks (Score:5, Insightful)

    by truthsearch ( 249536 ) on Tuesday December 02, 2008 @03:44PM (#25965375) Homepage Journal

    The custom web framework my company uses helps program with the MVC pattern, but doesn't enforce it. Some developers are very consistent with separating the model, templating, and control structure. Some developers (not always the less experienced ones) often intermingle functionality and don't realize they're no longer within the MVC design. So our framework is nice that it's flexible, but it also will let you hang yourself. Most other frameworks, at least for PHP and Python, seem to be the same way.

    • Re:Web Frameworks (Score:4, Interesting)

      by CodeBuster ( 516420 ) on Tuesday December 02, 2008 @04:26PM (#25966167)

      Most other frameworks, at least for PHP and Python, seem to be the same way.

      In fact, the only one that I can think of that is purposefully NOT that way is the Ruby on Rails framework which takes the path of "punishment" in the form of "ugly code" for those who attempt to deviate from the orthodoxy of the framework. In my opinion "punishing" developers for deviations is NOT the best way to promote your framework, but the Ruby on Rails disciples will not be convinced otherwise so I have given up trying.

  • Author is Pedantic (Score:5, Insightful)

    by iluvcapra ( 782887 ) on Tuesday December 02, 2008 @03:48PM (#25965445)

    And does quite a bit of complaining about Django without completely demonstrating his point. I'm still foggy about his complete idea of what he believes the original interpretation of a "Controller" is, which is really the heart of the matter and where most people seem to disagree. His "model" of what MVC is is not explicated in his view, as represented by his blog post.

    MVC is a pattern, not a set of rules, a coding style, house style, development framework, or development process. If you have three modules, one doing presentation, one doing state, and one mediating, you're doing MVC. What specific functions go where (is sorting on the model? is validation of this field in the view?) is specific to the problem domain.

    IMHO

    • Re: (Score:2, Insightful)

      by Foofoobar ( 318279 )
      The view should do ZERO processing. That should settle it. Some templates allow for a minimal amount of if/else statements and some developers are just sloppy and stick in processing anyway when it should be moved to the controller.

      The model should handle all data, the controller should handle processing and the container should handle higher level functioning for gathering the model, the view and the container.

      See PHPulse [sourceforge.net] as a very simple example.
      • Re: (Score:3, Insightful)

        by plover ( 150551 ) *

        How do you reconcile view caching with this idea? I'm not arguing with you, mind you, but I'm wondering that if there's a cache involved does that immediately negate calling the pattern MVC? Another violation of this is AJAX. It has logic as client-side as you can get.

        I think what the TF author might be thinking is that MVC means exactly this pattern applied at this level, and not scaling the pattern up to web server / app server / database server. Or if that's it, then we shouldn't call it MVC but s

        • Re: (Score:3, Insightful)

          by KDR_11k ( 778916 )

          I think the idea is that the view is interchangeable and isn't expected to do anything in order to allow the system to function but it can of course have extra functionality that is not necessary but increases the userfriendliness. The view can validate the user inputs to spare the user some grief but the controller should never expect the view to behave in any way.

          • Re: (Score:3, Informative)

            Comment removed based on user account deletion
            • by Chabil Ha' ( 875116 ) on Tuesday December 02, 2008 @05:14PM (#25967047)

              ...the idea that the view should never contain logic at all is quite dogmatic and as such doesn't work well on the real world...

              I think that's what the OP is trying to say when he comments that 'MVC is a pattern'. Patterns help solve particular problems, but when following the pattern in the most purist of the sense doesn't solve the problem (or gasp! make it bigger!) then being 'pure' doesn't make sense.

              Take AlertBox [useit.com]. I think there some gems in his usability suggestions, but if you follow his guidance to the 't', you end up with a boring and un-user-friendly site like his.

        • View caching is done a variety of ways. You need to use the way that is best for your language and web server. As for AJAX breaking MVC, there is a solution. In PHPulse, the AJAX call is redirected back to the same page allowing the MVC framework to handle the AJAX call. This also allows all methods specific to the page to just be called thus not allowing the AJAX method to gain access to methods outside the range of the pages access (or outside the range of the users privilege access).

          Thus AJAX calls st
        • Oh I see what you are saying. Since Ajax has processing, data handling, and view, where does it fit in? Well some say it is it's own separate MVC for presentation specific to the client and separate from the server (yet maintaining a symbiotic relationship with it). Hard to say. The web is a unique model that MVC was never prepared for. I think the browser itself will eventually have its own xcode gui builder tool that we will just send simple xml to and interact with. AJAX is merely step one to that proces
      • The view should do ZERO processing.

        practicality beats purity.

        • Exactly. Reminds me of the old saying: "Dogmas are wrong, always.".

          Django is a good example for the drawbacks of this approach since it went to the extreme and allows almost no logic in the templates - beyond the usual iteration and conditional constructs.

          The result? It's a pain to develop with this part of django. Django constantly gets in the way here because you can't scribble even the smallest thing into a template to see if it works or "feels right", you have to fiddle with the controller or a custom

      • by mini me ( 132455 )

        What good is a view that doesn't do any processing?

        Let's look at this from a GUI application standpoint. Are you suggesting that drawing methods should live in the controller, or even the model? If so, what role does the view play?

        As far as HTML generation is concerned, the place that you create the HTML is the view. You have to have at least some logic in this area unless your application is no more complicated than "Hello, World!"

        • Depends on what kind of 'drawing' you are talking about. Drawing a picture via a backend class? Yes abso;utely via the controller and perhaps even th model should you need it. Interactive drawing? Well if done vie flash or java, again, you would separate the components again. Done via AJAX, you would separate this out again.

          AJAX needs to be treated as it's own MVC layer; as being separate but symbiotic with the server side. This is why jQuery is referred to as a framework... because it essentially is. Bu
          • by mini me ( 132455 )

            Since Cocoa pushes MVC, I will use it as an example. The drawing I am talking about is the stuff that happens in the drawRect method to be shown on the screen. This, as far as I am concerned, is the view.

            As I said, if you pushed that logic out into the controller as the grandparent suggests, why would MVC even need a V?

        • Again to classicly show my point, PHPulse has AJAX built in so that ALL AJAX calls get routed back through the MVC framework to use the same classes and methods that were used to build the page. That way the AJAX method cannot access any classes or methods that the user does not have access to. You can integrate it in and have the container/controller and model handle everything with AJAX being it's own separate (but integrated) layer.

          More frameworks need to follow the lead of PHPulse by doing it this wa
          • Re: (Score:3, Insightful)

            by mini me ( 132455 )

            Sounds exactly like how Rails does it, and has been doing since long before PHPulse was ever released.

            • Yeah but PHPulse scales. Seriously though, if you want to go down that road, you would see that PHPulse has the highest benchmarks for speed and scalability in a PHP framework. So while RAILS may have had that for years, PHPulse has scaled for years. Come talk to me in 5 years when Rails can do that and work in the enterprise.

              In fact, most Ruby sites use PHP still in order to scale [shiflett.org]. And yet, somehow, Ruby fanatics still deny this to this day... sad really.
              • by mini me ( 132455 )

                There is nothing about Rails that prevents it from scaling. Anyone who claims that Rails does not scale obviously does not understand what scaling means.

                Also, I am certain I can write PHPulse code that does not scale.

    • Re: (Score:3, Insightful)

      I'm still foggy about his complete idea of what he believes the original interpretation of a "Controller"

      It's always good to define one's terms before one begins to write about them. If you ask 10 different experienced developers what MVC is, you'll get 10 different answers. The problem with this article is that we never get what the author's interpretation of what MVC really is.

      But no matter what one's definition of MVC, its like OOP. With OOP, it has been said that any substantially complex system is actually going to require some sort of implementation of OOP, even if its hopelessly half-assed. The same can

      • by Shados ( 741919 )

        If you ask 10 different experienced developers what MVC is, you'll get 10 different answers

        And assuming at least one of them has it right, that means 9 people are wrong. MVC (original or model 2, thats about as far as defining it needs to go) is a documented software design pattern. By definition, software design patterns are meant to be standard, documented (thats the main part) ways of solving a recurring problem.

        You may have a Model, a View and a Controller without having MVC. MVC or MVC Model 2 mean som

    • Wrong. (Score:4, Insightful)

      by Qbertino ( 265505 ) <moiraNO@SPAMmodparlor.com> on Tuesday December 02, 2008 @04:08PM (#25965819)

      Author is Pedantic

      No he isn't. He critisizes the incorrect use and application of the term MVC and the misconception and the pointless enforcement of a wrong concept of MVC in places where it is often more than pointless to do so. Like in most modern web application scenarious.

      And does quite a bit of complaining about Django without completely demonstrating his point.

      No he doesn't. He uses Django as an example for all current hip Web FWs out there to emphasise the issue above. And he clearly states that before he even goes into Djangos documentation and concept of MVC.

      • Re:Wrong. (Score:5, Funny)

        by plover ( 150551 ) * on Tuesday December 02, 2008 @04:27PM (#25966197) Homepage Journal

        Author is Pedantic

        No he isn't. He critisizes the incorrect use and application of the term MVC and the misconception and the pointless enforcement of a wrong concept of MVC in places where it is often more than pointless to do so. Like in most modern web application scenarious.

        I think you just pretty much quoted the dictionary definition of a pedant [merriam-webster.com], specifically definition 2B.

        Rather a lot like I'm doing now. </pedantic>

      • by Lars512 ( 957723 )

        And he clearly states that before he even goes into Djangos documentation and concept of MVC.

        He ignores Django's own take [djangoproject.com] on their differences with traditional MVC, and prefers to just bash a straw man.

    • by vux984 ( 928602 )

      What specific functions go where (is sorting on the model? is validation of this field in the view?) is specific to the problem domain.

      I'd be hard pressed to envision a scenario where field validation is logically a -view- function.

      "If you have three modules, one doing presentation, one doing state, and one mediating, you're doing MVC."

      But if your presentation module is mediating with the state then you aren't.

      • Re: (Score:2, Insightful)

        by KDR_11k ( 778916 )

        I'd be hard pressed to envision a scenario where field validation is logically a -view- function.

        High latency or intermittent connection scenarios where you can't check back with the controller all the time and it's better to avoid unnecessary calls if you can tell the user that the input is invalid anyway? Sure, the controller would of course still do validation but that doesn't mean the view can't tell you what's wrong without needing to connect to the controller.

        • by vux984 ( 928602 )

          High latency or intermittent connection scenarios where you can't check back with the controller all the time and it's better to avoid unnecessary calls if you can tell the user that the input is invalid anyway?

          But that's funadmentally not doing MVC anymore. You've got the presentation (view) module is doing validation (controller function).

          Sure, the controller would of course still do validation but that doesn't mean the view can't tell you what's wrong without needing to connect to the controller.

          The 'cor

          • Seems to me that the confusion here is about what exactly is the controller part in a web-based application. Specifically, that the controller is entirely on the server. When you add Javascript code to do things like validation, you're really adding to the controller, even though the code is on the client. The different parts of MVC don't always map one-to-one with computers. Even though they might match up in many systems, MVC and client-server are somewhat orthogonal.
          • Or you accept that MVC doesn't work too well with high latency comms and come up with a different pattern - it's not dogma. Model/Client/Controller with Client doing view + some datascrubbing would work pretty well here. I'm not really comfortable with biz logic in the client, so let's not have that.
        • But now you're talking about the MVC Except pattern. In other words, it's MVC except for a few things we threw in there. So in the case you've cited, you've broken the MVC pattern.

          That's not to say that what you're doing is wrong. In this case being slavish to a pattern creates worse software.

      • I'd be hard pressed to envision a scenario where field validation is logically a -view- function.

        You've never programmed for a 3270 workstation, then. Basic field validation was part of it's firmware for the simple reason that users wanted fast, immediate feedback for basic errors (like trying to enter letters into a numeric field, or trying to put too many characters into a text field with a maximum size), and with block-mode communication between the workstation and the server that meant the workstation

        • Methodologies like MVC are fine when applied to the right problems. I work in air traffic control which is both distributed and real time. I see a lot of developers coming in from other fields and trying to match our application to one of another design pattern.

          Then they stuff up.
        • by vux984 ( 928602 )

          You've never programmed for a 3270 workstation, then. Basic field validation was part of it's firmware for the simple reason that users wanted fast, immediate feedback for basic errors (like trying to enter letters into a numeric field, or trying to put too many characters into a text field with a maximum size), and with block-mode communication between the workstation and the server that meant the workstation had to do that validation. You simply couldn't submit the entire form back to the server on each a

      • by ozphx ( 1061292 )

        Field validation is not a view function, agreed.

        The view is obviously allowed to understand what is being viewed. So the view can provide "friendly" services, like providing popup calendars on edit boxes, or even simple "pre-validation" on input fields. Hell, if you like the view can grab the correct service interface and lookup the damn 3D model of the widget being edited.

        The controller should not rely on the view to perform any validation. As long as the controller controls the view only via its interface

    • If you have three modules, one doing presentation, one doing state, and one mediating, you're doing MVC.

      Not really. MVC requires some very specific things from the layer that's doing the mediating. More often, you end up with something like MVP (Model-View-Presenter), or even something else entirely.

    • Re: (Score:3, Informative)

      by Vornzog ( 409419 )

      Author is Pedantic... And does quite a bit of complaining about Django without completely demonstrating his point.

      Malcolm's blog assumes that the reader has a *very* good understanding of the django codebase. That's understandable, given that he rewrote most of the ORM prior to the recent 1.0 release, and most of his readers know it.

      I'm still foggy about his complete idea of what he believes the original interpretation of a "Controller" is, which is really the heart of the matter and where most people seem to disagree.

      His basic point is that no one actually knows what the controller *is*. The term is so poorly applied that it loses all meaning.

      Really, this is a long standing point in the django community, and can be traced back to the original authors of the framework. Because django uses three primar

    • by Daimaou ( 97573 )

      I don't clearly understand the author's point of view either. Besides, everybody knows that Django is a Model-Template-View pattern and not a Model-View-Controller pattern anyway.

      Patterns shmatterns. Django is awesome either way.

  • by girlintraining ( 1395911 ) on Tuesday December 02, 2008 @03:48PM (#25965447)

    Wait a second, there's programmers that aren't using only pure algorithms, refined from the finest electrons, bred from the keyboard controller outputs of Bjarne Stroustroup himself? Well damn, standards are just slipping everywhere. What next, thinking of the web as a platform? Client-side security? Linux on the desktop?

  • huh? (Score:5, Funny)

    by larry bagina ( 561269 ) on Tuesday December 02, 2008 @03:50PM (#25965493) Journal

    Since when did they let long winded douchebags with nothing to say have blogs?

  • by mattdm ( 1931 ) on Tuesday December 02, 2008 @03:51PM (#25965513) Homepage

    As I started reading, I discovered I don't care enough to read the whole thing.

    But I thought the beginning was awesome: "You can disagree with me only if you are wrong."

  • Django (Score:5, Insightful)

    by styrotech ( 136124 ) on Tuesday December 02, 2008 @03:57PM (#25965629)

    I was under the impression that the Django team don't consider it to be MVC themselves, but they've just given up the losing battle of explaining the difference to the masses who think that MVC is the only good way you can arrange 3 different tiers of an application. So they've shrugged their shoulders and effectively said "Fine. If you want Django to be MVC, it is MVC. Now drop it and let us get back to developing it.".

    • Re:Django (Score:5, Informative)

      by Fallingcow ( 213461 ) on Tuesday December 02, 2008 @05:39PM (#25967405) Homepage

      There's some evidence for that in their naming of the application layers:

      Model
      Template
      View

    • Re: (Score:2, Informative)

      by xfour ( 1422499 )
      DjangoCon 2008 - this was made entirely clear.. it's not a MVC architecture.. since the view does the application handling. Seriously guys.. seriously...
    • Re: (Score:2, Informative)

      by Evdawg ( 872579 )
      This is correct. The issue is in fact addressed in Django's official FAQ [djangoproject.com].

      If you're hungry for acronyms, you might say that Django is a "MTV" framework - that is, "model", "template", and "view." That breakdown makes much more sense.

      At the end of the day, of course, it comes down to getting stuff done. And, regardless of how things are named, Django gets stuff done in a way that's most logical to us.
  • Meh (Score:2, Informative)

    by wezeldog ( 982156 )
    I don't think the people behind Django would hold it up as a paragon of pure MVC either.
    I'm assuming he pulled the uncited quote from the django book: http://www.djangobook.com/en/1.0/chapter05/ [djangobook.com]
    Here's another:

    Taken together, these pieces loosely follow the Model-View-Controller (MVC) design pattern.

    They don't seem to be too hung up on design pattern purity. Maybe it is different in IRC or the forums.

  • MVC is good (Score:4, Insightful)

    by bytesex ( 112972 ) on Tuesday December 02, 2008 @04:25PM (#25966151) Homepage

    MVC is good. When you understand it at its simplest. But it doesn't need a 'framework', which is where the confusion creeps in. Java is on the one hand so popular, yet so hopelessly constrained in its possibilities and libraries, that apparently this confusion seems to have become 'unrecognisable' as it were: people automatically postfix 'framework' behind 'MVC' because it's so difficult to build web-applications in java without one (well it's not, but they don't usually know that either).

    A framework is a meta-language in essence, it 'sits on top' of your project. Libraries OTOH are (usually) written in your own language and 'hang below' your project (i.e. you use them, instead of it using you). Both can provide MVC, but both can provide many other things as well.

    I prefer libraries me. I like to know where a request comes in, and be there when it happens. That said, libraries that model my data storage in nice structures and provide templating for output are yummy. But that's all - I feel the programming language should be *my* bitch, not the other way around. So yeah, I've had to write my own template rendering code since the existing ones all had unnecessary limitations rooted in the theory that the template shouldn't contain any code (so how are we supposed to go about iterations, theorists ?) or any complex variables (yet your data modelling library provides for those, thanks a lot !). Took all of a monday afternoon that.

    • > (so how are we supposed to go about iterations, theorists ?)

      Like you, I've written a number of template engines because I didn't like the limitations of existing ones (granted, this was in the mid to late 90s, so there weren't many to choose from).

      After including iterators and conditionals in two different templating engines, I decided to try to design one without these programming constructs. I had seen too many UI designers find 'clever' uses for loops and conditionals and I wanted to see if it was

      • by jrumney ( 197329 )
        I used to work for a company that made an MVC framework of sorts. We had conditionals fairly early on, but did without iterators in the view for a long time. Our own developers didn't miss them - there were better ways of dealing with sets of data than iterating through them - but the customers could not get out of the procedural programmer mindset and eventually we gave in and added iterators.
      • by bytesex ( 112972 )

        Sorry, but the thought of XSLT iterators and conditionals makes me shiver a bit. Nice if it works for you, though.

  • by Qbertino ( 265505 ) <moiraNO@SPAMmodparlor.com> on Tuesday December 02, 2008 @04:27PM (#25966181)

    This guy and his essay on the issue at hand is a breath of fresh air in a ongoing onslaught of web-developement misconceptions that increased tenfold ever since countless Java freaks joined the fray with the hype called Ruby on Rails.

    I beg all people to read it and read it well. Please.

    May I quote one part:
    In the MVC pattern, the Model is the application object. It contains all the presentation-agnostic, data-centric logic, which is often labelled "the business logic".

    Yes. Say it again. Halleluja!

  • I'm glad I'm not the only one. When I first came across the web-based use of MVC I kept scratching my head and alternating between "WTF?" and "You keep using that word; I do not think it means what you think it does." After a while I realized that the web framework community had just latched onto MVC in a sort of cargo-cult fashion, without regard for it's prior meaning.

    Not that it's the first time such a thing has happened. Think "structured" and "object oriented" or even "secure." For that matter, c

    • The issue I see MVC addressing is the transition from Model-View-Controller to Model-View (or Document-View) to just plain View, or widget, the MS Windows default state of affairs.

      The temptation is to place all of the functionality into one entity -- a widget, an ActiveX control. Model, GUI presentation logic, how it interacts with everything else, all this is packaged into a unitary entity. Great for lock-in to a vendor or OS or platform.

      In my thinking, controllers serve a useful purpose to break free of

      • Yes, but there is (or at least was) more to it than that.

        The model is/was supposed to house all of the details about how things interact, without regard to how you want to look at them (views) or mess with them (controllers).

        Nowadays, models are more times than not just a sort of glorified persistence layer, describing the data in static terms and lacking the juicy details of how the data dances.

        --MarkusQ

    • by Xest ( 935314 )

      They only harm themselves too. I find most PHP frameworks are much more difficult to learn than they really should be simply because they muddy the waters so much with regards to what is in and where each of the components of MVC sits in their particular implementation.

  • HWND Duck; (Score:2, Funny)

    by mikiN ( 75494 )

    If it walks like a duck, quacks like a duck, and runs on Windows, it must be an MVC application. --unattributed, possibly from Microsoftology, MCSE III

  • Bulshytt (Score:2, Insightful)

    by 0xdeadbeef ( 28836 )

    In web applications the generated HTML is the view. The template code and javascript are the controller. The model is anything and everything providing input to the template.

    Just because something is painful or stupid doesn't make it any less MVC.

    (What would break his precious pattern definition is putting data-mutating logic in the template, like every php application ever written. Which I guess is the only real value of MVC - it's a simple rule of thumb to prevent noobs from hurting themselves.)

  • This is the same rant that happens every time a good idea gets corrupted in IT by marketroids or half bright monkeys:

    OOP, relational databases, software libre (which isn't the same as open source BTW, and I prefer the term "libre" since the word "free" is overloaded and hence misunderstood in the English language), distributed computing, WWW, XML or whatever.

    One of the many reasons I have chosen a new career path.

  • what a whiner.

  • by Stiletto ( 12066 ) on Tuesday December 02, 2008 @08:02PM (#25969321)

    Can we have a glossary or something? I've been programming (C, Assembly, some C++) for 10+ years and I have no idea what the author is talking about or any of the commenters here. Patterns? Templates??

  • by marhar ( 66825 ) on Tuesday December 02, 2008 @08:14PM (#25969463) Homepage

    Here are some interesting notes from Trygve M. H. Reenskaug, who originated the term "Model/View/Controller" while at Xerox PARC in the 70's.

    http://heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.html [ifi.uio.no]

    He seems to be a pretty remarkable character... still hacking at the age of 78, with a note on his new project:

    "The new project could well be very large and take many years.... I will post intermediate and incomplete results as they appear. Just in case."

  • I don't really see why discussing MVC is as all that and a bag of chips as the author contends. I commonly use the concept of MVC with respect to Django and when I do I always reference this book:

    Using the definitions as described in this book Django easily fits in the MVC design pattern.

    People I work with "get it" and I've not encountered and confusion alluded too by the author when using the term as defined by the aforementioned book.

    Langu

  • by codepunk ( 167897 ) on Tuesday December 02, 2008 @11:45PM (#25971567)

    Have you ever noticed that guys that write subject matter such as this are the
    ones that could not code themselves out of a paper bag?

    mvc bla bla bla views bla bla bla models bla bla bla

  • by GrouchoMarx ( 153170 ) on Wednesday December 03, 2008 @01:45AM (#25972337) Homepage

    I argued much the same thing [garfieldtech.com] in much less space 2 years ago. :-) Most "MVC" web frameworks are anything but, and it is disingenous to claim that they are. It's a marketing gimmick for people that don't actually know what they're talking about.

"The vast majority of successful major crimes against property are perpetrated by individuals abusing positions of trust." -- Lawrence Dalzell

Working...