Live data from Hacker News

GUI Architectures

martinfowler.com

21–26 of 26 posts

Re: GUI Architectures

#21
post #13

Earlier quoted context omitted.

I think there is a contention in what MV* preaches and the reality of UI development now that it is disconnected from the server. Traditional MVC has followed a struts like architecture where the C is a procedural workflow that starts at A and end at Z. This encouraged a dumb V where say the header of a site was an HTML template and that the C would then populate with the M. This benefited the service oriented nature…

I think you forget that MVC is a pattern and not a specific method or an implementation. MVC could care less whether something is procedural, evented, client or serverside.

The article I posted goes over this and I remember it very well, MVC used to have a very specific definition.

(From the article: One of the central ideas of the Smalltalk-80 system was the ModelViewController (MVC) UserInterfaceParadigm?. Within that paradigm, the term "controller" had a well-defined, limited meaning.)

MVC today does not have a specific method or implementation and that was my point MVC has come to be known as a fuzzy definition for separations of concerns, as such I believe just saying separation of concerns is a better definition of what is desired. Because at some point people look at what was modeled in Smalltalk or Struts 1.0 which adhere to that concrete definition and become confused with the more nebulous definition that MVC has morphed into.

Re: GUI Architectures

#22
post #16
post #13

Earlier quoted context omitted.

I think there is a contention in what MV* preaches and the reality of UI development now that it is disconnected from the server. Traditional MVC has followed a struts like architecture where the C is a procedural workflow that starts at A and end at Z. This encouraged a dumb V where say the header of a site was an HTML template and that the C would then populate with the M. This benefited the service oriented nature…

I'm confused. MVC wasn't created for web 1.0 page/post programming. It was created for Desktop applications which are very similar to todays front-end heavy applications. I think the pattern you're referring to is more like a Model2 (JSP/Rails) style pattern.

MVC, to my knowledge, was created for Desktop Application but the original scoped was limited to one widget.

For example: There is one widget (let's call it a Table) that displays data. The breakdown is as follow:

Model => Data View => Table Controller => Something that updates view based on changes in model (undefined originally)

Even if it wasn't limited to one widget, it was limited to a one simple View of the app (the other popular example is to use the DocumentWidget and DocumentModel "real-life" sample).

The original MVC was definitely not well-thought for rich desktop application PLUS automated testing with limited dependency to the Presentation layer (or view).

I believe Java SWING library utilizes MVC model at the widget levels.

Re: GUI Architectures

#23
post #5
post #3

Earlier quoted context omitted.

This seems to be a recurring phenomenon on HN. Why is the timestamp given so much importance?

Because things change fast in the industry.

Too fast to get it right. We're back to square one a few years ago: high rate of crappy code.

Re: GUI Architectures

#25
post #19
post #16

Earlier quoted context omitted.

I'm confused. MVC wasn't created for web 1.0 page/post programming. It was created for Desktop applications which are very similar to todays front-end heavy applications. I think the pattern you're referring to is more like a Model2 (JSP/Rails) style pattern.

Yes I understand that MVC predates the web, but it's surge in popularity was definitely from it's adoption as a best practice for web development and the web for the most part took the traditional view of MVC. That being said it did see some popularity in many imperative languages for desktop application but nowhere near it's popularity after the web. But I would say it and Event/Widget style UI's where neck and neck…

but yet widgets where tightly coupled to the view they control by being the intelligent manipulators of a discreet view, but proper separation is observed in that all view elements exist in a HTML (or other UI) files

Sorry to reply to my comment but it is too late to edit it, on the above quote, I realized that I jumped around and it reads like I am implying that swing uses HTML, that was not my intent, I jumped to HTML in my mind because I was thinking about a pure view technology which HTML is probably the best example, I mixed thoughts there but it was not my intent it would have been more proper to say like HTML not HTML as it reads like swing utilizes HTML as it's view technology which was not the concept I was trying to convey.

Re: GUI Architectures

#26
post #7
post #6

Earlier quoted context omitted.

The N in HN is supposed to mean "News". Imagine a news paper that reprints issues from six years ago.

The problem in the software industry isn't a lack of best practices, it's a lack of practitioners fully aware of the best practices. News isn't so much a function of when something happened as when someone heard about it first.

There is unfortunately also the problem of too many "best practices", that gets popularized, dogmatized and horribly misused.
Post reply on HN