<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Lisp50 Notes part II: Model-View-Controller Considered Harmful</title>
	<atom:link href="http://lispy.wordpress.com/2008/10/22/lisp50-notes-part-ii-model-view-controller-considered-harmful/feed/" rel="self" type="application/rss+xml" />
	<link>http://lispy.wordpress.com/2008/10/22/lisp50-notes-part-ii-model-view-controller-considered-harmful/</link>
	<description>(notes from an average programmer studying the hard stuff)</description>
	<lastBuildDate>Thu, 21 May 2009 01:17:58 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Dan Weinreb</title>
		<link>http://lispy.wordpress.com/2008/10/22/lisp50-notes-part-ii-model-view-controller-considered-harmful/#comment-2510</link>
		<dc:creator>Dan Weinreb</dc:creator>
		<pubDate>Sat, 20 Dec 2008 22:34:54 +0000</pubDate>
		<guid isPermaLink="false">http://lispy.wordpress.com/?p=383#comment-2510</guid>
		<description>Sorry, I mean &quot;two analogous paths&quot;.  And my comments about Pascal and Gregor, both friends of mine whom I very highly respect, are just my own opinions.</description>
		<content:encoded><![CDATA[<p>Sorry, I mean &#8220;two analogous paths&#8221;.  And my comments about Pascal and Gregor, both friends of mine whom I very highly respect, are just my own opinions.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan Weinreb</title>
		<link>http://lispy.wordpress.com/2008/10/22/lisp50-notes-part-ii-model-view-controller-considered-harmful/#comment-2509</link>
		<dc:creator>Dan Weinreb</dc:creator>
		<pubDate>Sat, 20 Dec 2008 22:34:03 +0000</pubDate>
		<guid isPermaLink="false">http://lispy.wordpress.com/?p=383#comment-2509</guid>
		<description>It&#039;s not surprising that people talked about history, rather than &quot;how
to finally win the language wars&quot;.  The Lisp50 event was intended to
be about the history of Lisp.


There are people who are purely academic, who create and understand big ideas but have little or no idea how things work in the real world.  At the other end of the spectrum, there are practitioners who are unaware of big ideas and don&#039;t think in terms of elegance and abstractions.

Neither Pascal Costanza nor Gregor Kiczales is at either of those ends.

Gregor is currently a computer science professor, and he has done brilliant work on deep concepts such as CLOS, the CLOS MOP, and Aspect-Oriented Programming.  When he worked for me at Symbolics, he was an excellent software developer doing very practical work.  After inventing and developing the concepts of Aspect-Oriented Programming, Gregor spent years making it real and practical.  AspectJ can really be used with Java.  He helped lobby for the introduction of metadata features in Java that would make AOP work more elegantly.  He and his team made practical programming tools and IDE extensions for AspectJ, and he went around giving tutorials and workshops to teach people how to use AOP and benefit from it.  I went to such a two-day workshop at MIT, and ended up very impressed.

Pascal has spent his career in academia.  In my opinion, he is one of the deepest thinkers about real issue of Common Lisp these days, particularly about CLOS and the CLOS MOP.  (The last time I asked Gregor a hard question about those topics, he said that it had been so long since he&#039;d been thinking about those things that he didn&#039;t remember.)  However, Pascal&#039;s work tends strongly towards real, usable tools, as opposed to the kind of theoretical work that&#039;s irrelevant to a practitioner.

I suspect that his remark about not wanting to get into politics reflects his position as an academic: he does not want his field of research to be overly constrained by outside &quot;political&quot; issues (as opposed to outside practical issues).

Lisp itself has been torn between two analogous polls.  On one hand, Lisp has been treated as an environment for language exploration.  On the other hand, there are a significant number of people making very real applications written in Lisp.  So, for example, having a (pretty) well-defined standard like COmmon Lisp that emphasizes upward-compatibility and stability is good for the latter purpose, but not so good for the former.  The way for Lisp to move ahead is not obvious.  There will be a lot of discussion of this at the next International Lisp Conference.  Full disclosure: I&#039;m general chair of the conference, so I&#039;m trying to encourage people to come.  Please come!  See ilc09.org.</description>
		<content:encoded><![CDATA[<p>It&#8217;s not surprising that people talked about history, rather than &#8220;how<br />
to finally win the language wars&#8221;.  The Lisp50 event was intended to<br />
be about the history of Lisp.</p>
<p>There are people who are purely academic, who create and understand big ideas but have little or no idea how things work in the real world.  At the other end of the spectrum, there are practitioners who are unaware of big ideas and don&#8217;t think in terms of elegance and abstractions.</p>
<p>Neither Pascal Costanza nor Gregor Kiczales is at either of those ends.</p>
<p>Gregor is currently a computer science professor, and he has done brilliant work on deep concepts such as CLOS, the CLOS MOP, and Aspect-Oriented Programming.  When he worked for me at Symbolics, he was an excellent software developer doing very practical work.  After inventing and developing the concepts of Aspect-Oriented Programming, Gregor spent years making it real and practical.  AspectJ can really be used with Java.  He helped lobby for the introduction of metadata features in Java that would make AOP work more elegantly.  He and his team made practical programming tools and IDE extensions for AspectJ, and he went around giving tutorials and workshops to teach people how to use AOP and benefit from it.  I went to such a two-day workshop at MIT, and ended up very impressed.</p>
<p>Pascal has spent his career in academia.  In my opinion, he is one of the deepest thinkers about real issue of Common Lisp these days, particularly about CLOS and the CLOS MOP.  (The last time I asked Gregor a hard question about those topics, he said that it had been so long since he&#8217;d been thinking about those things that he didn&#8217;t remember.)  However, Pascal&#8217;s work tends strongly towards real, usable tools, as opposed to the kind of theoretical work that&#8217;s irrelevant to a practitioner.</p>
<p>I suspect that his remark about not wanting to get into politics reflects his position as an academic: he does not want his field of research to be overly constrained by outside &#8220;political&#8221; issues (as opposed to outside practical issues).</p>
<p>Lisp itself has been torn between two analogous polls.  On one hand, Lisp has been treated as an environment for language exploration.  On the other hand, there are a significant number of people making very real applications written in Lisp.  So, for example, having a (pretty) well-defined standard like COmmon Lisp that emphasizes upward-compatibility and stability is good for the latter purpose, but not so good for the former.  The way for Lisp to move ahead is not obvious.  There will be a lot of discussion of this at the next International Lisp Conference.  Full disclosure: I&#8217;m general chair of the conference, so I&#8217;m trying to encourage people to come.  Please come!  See ilc09.org.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Miller</title>
		<link>http://lispy.wordpress.com/2008/10/22/lisp50-notes-part-ii-model-view-controller-considered-harmful/#comment-2372</link>
		<dc:creator>Mark Miller</dc:creator>
		<pubDate>Mon, 27 Oct 2008 03:02:01 +0000</pubDate>
		<guid isPermaLink="false">http://lispy.wordpress.com/?p=383#comment-2372</guid>
		<description>I remember the reason why Dave Thomas called the original MVC a &quot;hack&quot;. He said it went outside the OO notion of message passing, by introducing the concept of events. He said it was this concept (in addition to method calls) that got copied everwhere MVC was reimplemented. He said there are platforms now where this &quot;hack&quot; isn&#039;t even necessary yet it still gets replicated.</description>
		<content:encoded><![CDATA[<p>I remember the reason why Dave Thomas called the original MVC a &#8220;hack&#8221;. He said it went outside the OO notion of message passing, by introducing the concept of events. He said it was this concept (in addition to method calls) that got copied everwhere MVC was reimplemented. He said there are platforms now where this &#8220;hack&#8221; isn&#8217;t even necessary yet it still gets replicated.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: lispy</title>
		<link>http://lispy.wordpress.com/2008/10/22/lisp50-notes-part-ii-model-view-controller-considered-harmful/#comment-2367</link>
		<dc:creator>lispy</dc:creator>
		<pubDate>Sun, 26 Oct 2008 13:40:32 +0000</pubDate>
		<guid isPermaLink="false">http://lispy.wordpress.com/?p=383#comment-2367</guid>
		<description>I&#039;ve edited the post accordingly.  However, be aware that when I make references above to someone called &quot;Ruby Guy&quot;, it was in fact *not* Yukihiro Matsumoto.  I&#039;m pretty sure of it.  ;)</description>
		<content:encoded><![CDATA[<p>I&#8217;ve edited the post accordingly.  However, be aware that when I make references above to someone called &#8220;Ruby Guy&#8221;, it was in fact *not* Yukihiro Matsumoto.  I&#8217;m pretty sure of it.  <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Diogo Lisboa</title>
		<link>http://lispy.wordpress.com/2008/10/22/lisp50-notes-part-ii-model-view-controller-considered-harmful/#comment-2366</link>
		<dc:creator>Diogo Lisboa</dc:creator>
		<pubDate>Sun, 26 Oct 2008 13:05:09 +0000</pubDate>
		<guid isPermaLink="false">http://lispy.wordpress.com/?p=383#comment-2366</guid>
		<description>Kiczales is one of the very first researches in Aspect Oriented Programming. And, as said before, he also co-wrote AMOP. &quot;The AspectJ guy&quot; is a bit of an understatement. One of his papers explain AOP using Common Lisp.</description>
		<content:encoded><![CDATA[<p>Kiczales is one of the very first researches in Aspect Oriented Programming. And, as said before, he also co-wrote AMOP. &#8220;The AspectJ guy&#8221; is a bit of an understatement. One of his papers explain AOP using Common Lisp.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: lispy</title>
		<link>http://lispy.wordpress.com/2008/10/22/lisp50-notes-part-ii-model-view-controller-considered-harmful/#comment-2364</link>
		<dc:creator>lispy</dc:creator>
		<pubDate>Sat, 25 Oct 2008 22:25:44 +0000</pubDate>
		<guid isPermaLink="false">http://lispy.wordpress.com/?p=383#comment-2364</guid>
		<description>Yeah, people kept talking about his &quot;AspectJ&quot; work, but he was never formally introduced.</description>
		<content:encoded><![CDATA[<p>Yeah, people kept talking about his &#8220;AspectJ&#8221; work, but he was never formally introduced.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andy Wingo</title>
		<link>http://lispy.wordpress.com/2008/10/22/lisp50-notes-part-ii-model-view-controller-considered-harmful/#comment-2360</link>
		<dc:creator>Andy Wingo</dc:creator>
		<pubDate>Sat, 25 Oct 2008 19:41:14 +0000</pubDate>
		<guid isPermaLink="false">http://lispy.wordpress.com/?p=383#comment-2360</guid>
		<description>If I am reading this correctly, the &quot;AspectJ guy&quot; (an amusing term) is Kiczales, whose work is incredibly beautiful and perceptive IMO.</description>
		<content:encoded><![CDATA[<p>If I am reading this correctly, the &#8220;AspectJ guy&#8221; (an amusing term) is Kiczales, whose work is incredibly beautiful and perceptive IMO.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Miller</title>
		<link>http://lispy.wordpress.com/2008/10/22/lisp50-notes-part-ii-model-view-controller-considered-harmful/#comment-2358</link>
		<dc:creator>Mark Miller</dc:creator>
		<pubDate>Sat, 25 Oct 2008 06:04:23 +0000</pubDate>
		<guid isPermaLink="false">http://lispy.wordpress.com/?p=383#comment-2358</guid>
		<description>@Lispy:

If you know he&#039;s one of the co-authors, I guess you know his name? You seemed unsure. I&#039;ve heard AMOP is an excellent book. I don&#039;t know what to say. All I know is what you described. The &quot;AspectJ guy&quot;, from your description, made the same arguments I&#039;ve heard many times by practitioners against computer scientists: They care about esoteric structures, but care nothing for efficiency. And so they cast aside just about anything the scientist says as &quot;impractical&quot;. Practitioners have a great faith in &quot;premature optimization&quot; which Hoare said is &quot;the root of all evil in programming&quot;. It just struck me that the &quot;AspectJ guy&quot; was so worried about speed. I understand that concern in IT operations. I used to deal with it. What I was saying was &quot;you can keep the elegant expression of the idea, but optimize its execution in the VM.&quot; It seemed like he didn&#039;t consider that. Here&#039;s another dead giveaway for what I&#039;m talking about:

&lt;i&gt;He wanted to know what we could do to actually win the &lt;b&gt;“political” argument&lt;/b&gt;. Pascal responded, “I don’t care about the political discussions. I think we should be focused on science.” (In an informal discussion out in the hall, someone noted that the AspectJ guy &lt;b&gt;didn’t think ideas in the lab actually proved anything&lt;/b&gt;– in order to really demonstrate the validity of an idea, &lt;b&gt;you have to have a base of users that are actually applying it in a real situation.)&lt;/b&gt;&lt;/i&gt;

These kinds of arguments are classic hallmarks of someone who&#039;s worked out in the field building commercial systems rather than working on real CS. As Alan Kay has emphasized, it&#039;s about the culture. If the culture doesn&#039;t understand what computing means then yes, you&#039;re going to have to resort to political arguments and trying to establish installed bases to legitimize a new architecture. This is rather like saying that in order for people to believe in the concept of gravity as curved space you have to make political arguments in favor of it and establish a &quot;base&quot; of support for it. That isn&#039;t science. It puts marketing and PR in the drivers seat, which brings everything into the industry&#039;s current framework which has very little to do with CS. I understand the impulse the &quot;AspectJ guy&quot; had, but Pascal was right. He wasn&#039;t talking like a scientist. He was talking like a vendor.

Now, ultimately when you build a system that real people are going to use you do need to worry about performance, but again, if you address this from a scientific standpoint, the idea should be to optimize the execution of the existing expression, not compromise the expression so that the system runs faster.

I think JonL was right as well. CS needs to look at the &quot;why&quot; and not make benchmarks the end-all, be-all of what&#039;s valid.</description>
		<content:encoded><![CDATA[<p>@Lispy:</p>
<p>If you know he&#8217;s one of the co-authors, I guess you know his name? You seemed unsure. I&#8217;ve heard AMOP is an excellent book. I don&#8217;t know what to say. All I know is what you described. The &#8220;AspectJ guy&#8221;, from your description, made the same arguments I&#8217;ve heard many times by practitioners against computer scientists: They care about esoteric structures, but care nothing for efficiency. And so they cast aside just about anything the scientist says as &#8220;impractical&#8221;. Practitioners have a great faith in &#8220;premature optimization&#8221; which Hoare said is &#8220;the root of all evil in programming&#8221;. It just struck me that the &#8220;AspectJ guy&#8221; was so worried about speed. I understand that concern in IT operations. I used to deal with it. What I was saying was &#8220;you can keep the elegant expression of the idea, but optimize its execution in the VM.&#8221; It seemed like he didn&#8217;t consider that. Here&#8217;s another dead giveaway for what I&#8217;m talking about:</p>
<p><i>He wanted to know what we could do to actually win the <b>“political” argument</b>. Pascal responded, “I don’t care about the political discussions. I think we should be focused on science.” (In an informal discussion out in the hall, someone noted that the AspectJ guy <b>didn’t think ideas in the lab actually proved anything</b>– in order to really demonstrate the validity of an idea, <b>you have to have a base of users that are actually applying it in a real situation.)</b></i></p>
<p>These kinds of arguments are classic hallmarks of someone who&#8217;s worked out in the field building commercial systems rather than working on real CS. As Alan Kay has emphasized, it&#8217;s about the culture. If the culture doesn&#8217;t understand what computing means then yes, you&#8217;re going to have to resort to political arguments and trying to establish installed bases to legitimize a new architecture. This is rather like saying that in order for people to believe in the concept of gravity as curved space you have to make political arguments in favor of it and establish a &#8220;base&#8221; of support for it. That isn&#8217;t science. It puts marketing and PR in the drivers seat, which brings everything into the industry&#8217;s current framework which has very little to do with CS. I understand the impulse the &#8220;AspectJ guy&#8221; had, but Pascal was right. He wasn&#8217;t talking like a scientist. He was talking like a vendor.</p>
<p>Now, ultimately when you build a system that real people are going to use you do need to worry about performance, but again, if you address this from a scientific standpoint, the idea should be to optimize the execution of the existing expression, not compromise the expression so that the system runs faster.</p>
<p>I think JonL was right as well. CS needs to look at the &#8220;why&#8221; and not make benchmarks the end-all, be-all of what&#8217;s valid.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jack9</title>
		<link>http://lispy.wordpress.com/2008/10/22/lisp50-notes-part-ii-model-view-controller-considered-harmful/#comment-2356</link>
		<dc:creator>Jack9</dc:creator>
		<pubDate>Sat, 25 Oct 2008 02:15:32 +0000</pubDate>
		<guid isPermaLink="false">http://lispy.wordpress.com/?p=383#comment-2356</guid>
		<description>The big problem with why MVC is done so badly is mentioned by every person criticizing others&#039; MVC implementation. Presentation in the Model. MVC is deceivingly named as there should always be an intermediate layer for binding and conditional View controls. Model is pure domain. View is pure presentation (The state of being presented) or &quot;visible view&quot;. Controller is delegation and (model) logic.

MVpC
This intermediate layer I call a &quot;presentation layer&quot; (The process of offering for consideration or display). Presentation unfortunately has multiple meanings in English. This does not lessen the need for the abstraction and has done wonders to streamline the mangled MVC frameworks I have had to use.</description>
		<content:encoded><![CDATA[<p>The big problem with why MVC is done so badly is mentioned by every person criticizing others&#8217; MVC implementation. Presentation in the Model. MVC is deceivingly named as there should always be an intermediate layer for binding and conditional View controls. Model is pure domain. View is pure presentation (The state of being presented) or &#8220;visible view&#8221;. Controller is delegation and (model) logic.</p>
<p>MVpC<br />
This intermediate layer I call a &#8220;presentation layer&#8221; (The process of offering for consideration or display). Presentation unfortunately has multiple meanings in English. This does not lessen the need for the abstraction and has done wonders to streamline the mangled MVC frameworks I have had to use.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mat</title>
		<link>http://lispy.wordpress.com/2008/10/22/lisp50-notes-part-ii-model-view-controller-considered-harmful/#comment-2351</link>
		<dc:creator>mat</dc:creator>
		<pubDate>Sat, 25 Oct 2008 00:23:38 +0000</pubDate>
		<guid isPermaLink="false">http://lispy.wordpress.com/?p=383#comment-2351</guid>
		<description>The solution from Costanza was basically stated in 2 sentences, but unfortunately not being a lisper I didn&#039;t really get it. Some use of a layered object, but I&#039;m not sure to what end. Could you explain this in more generic terms, and how it might be applied to a language like C++, Ruby, etc.?</description>
		<content:encoded><![CDATA[<p>The solution from Costanza was basically stated in 2 sentences, but unfortunately not being a lisper I didn&#8217;t really get it. Some use of a layered object, but I&#8217;m not sure to what end. Could you explain this in more generic terms, and how it might be applied to a language like C++, Ruby, etc.?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
