Live data from Hacker News

MVC is dead, it's time to MOVE on

cirw.in

31–40 of 233 posts

Re: MVC is dead, it's time to MOVE on

#31
post #6

So you renamed "controllers" to "operations".

Yah, this reminds me of Ember.js "MVC". It's kind of like "MOVE" + a StateMachine.

http://emberjs.com/images/ember_mvc/embermvc.png

Operations are similar to controllers for sure. But where's routing or state? We don't have a full picture here.

After trying out that new meta-pattern, things get overly coupled, too many bi-directional relationships between state, views, models, and controllers/operations.

Re: MVC is dead, it's time to MOVE on

#33
MVC is not dead. It has its warts, but there still is a strong developer community who build applications using MVC - through MVC based frameworks, and also by handrolling implementations that are an approximation of MVC. As long as there are enough people using it, MVC can't be pronounced 'dead'.

As to MOVE, the issue that the author points as the problem with Controllers in MVC is that'controllers are nice self-contained bits of.. what?'. At some point people will start asking these questions about 'Operations' and 'Events'. What would you classify as an 'event' vs an 'operation'. Some mature Rails projects that I've seen already uses this paradigm - there is an internal synchronous pub/sub event listener to which messages can be pushed by both the controller and the model. Even then, there is always a question of where to put what. Some answers are very clear - like an audit log which is only a side effect. But it is not the case always.

The author is trying to solve this 'classification' problem by giving us a more granular model. This can help to a certain degree - but there will be some point where even this wont help us. At that point we can choose go to a finer granularity, or ask the question whether all this extra organization is worth the hassle?

Abstractions are not without a cost. Some abstractions are too essential for any project. Some abstractions are nice to have. But all of them have a cost. In the case of MVC, the cost of the extra organization is paid many times over by the increased maintainability of the application. But given the number of components the MOVE paradigm advocates, I'm doubtful whether the added organization will be worth the cost.

I agree with what DHH said on a recent podcast - it is easy to talk about concepts in abstract and they can look really good. But what changes the game is a real implementation and being able to contrast the code 'before' the change and 'after' the change. This is not feasible all the time - some things have to go through the ideation and a slow testing phase. But at the least, I'm looking forward to see a non-trivial application that uses this paradigm. I'm ready to try imagining how it would have looked in MVC and decide whether the extra organization is worth it.

Re: MVC is dead, it's time to MOVE on

#34

Are there any MOVE frameworks yet? I very much like the idea, but one of my favorite tests for "correctness" in a program is to use it to build something. Although it could be (and probably is) a reflection on my lack of knowledge, I find myself "fighting" with MVC frameworks like backbone whenever I try to use them. I would love to see if MOVE would be any better.

MVC may not be a solid pattern for a client side framework. It makes sense to contain some semblance of state with in the presentation layer on the client side, rather than working with a stateless MVC pattern. http://www.martinfowler.com/eaaDev/uiArchs.html MVP via M. Fowler seems a little closer to what client side should feel like (imho). http://en.wikipedia.org/wiki/Model_View_ViewModel MVVM also makes sense for…

I agree with this. I'm not particularly interested in client-side MVC frameworks because it wrongly trivializes the server component, and technically speaking any javascript running on the client is part of the view.

I'm not sure what the right answer is, but I certainly feel like the race for rich client-side apps had too many frameworks settle on MVC without thinking about the bigger picture.

Re: MVC is dead, it's time to MOVE on

#35

Does anyone else not really get "MVC"? It seems like every person has their own idea of what it is and no two frameworks can agree on what the necessary parts are. I get the feeling MVC is mostly a bunch of handwaving about separation of concerns, motherhood, and apple pie.

MVC is just a design pattern, a way to organize code, it's not a religion.

Re: MVC is dead, it's time to MOVE on

#37
I don't know. This is essentially saying that the way to solve problems is to add additional layers of abstraction. If you want to see a bunch of examples of why that's a bad idea, take a look at any J2EE application.

RAPHT (https://github.com/DanielWaterworth/Raphters/blob/master/RAP...) attempts to something similar (adding more layers of abstraction to MVC) but I have the same problem with that.

If we were really understood the problem we'd have come up with a way to make things simpler, not more complicated.

I think the real problem is that MVC is understood by different people to mean different things but they think they're talking about the SAME thing. Back end developers tend to think of the view layer as a trivial thing ("It's just HTML and Javascript! How hard can that be?") and front end developers tend to think of the model layer as trivial. ("Look, my backbone.js code is handing out and consuming JSON, how hard can it be to persist that?")

Re: MVC is dead, it's time to MOVE on

#40
post #13

This is certainly interesting. I like the event based model. Here are my thoughts: If your controllers are getting fat and spaghetti like, I wouldn't blame MVC. There are many patterns one can use that are compatible with MVC without going to a completely different architecture. For instance, if you need to encapsulate multi-model interaction you can create a presenter abstraction that the controller simply calls int…

[deleted]
Post reply on HN