<?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/"
		>
<channel>
	<title>Comments on: Informality sans Mysticism</title>
	<atom:link href="http://alarmingdevelopment.org/?feed=rss2&#038;p=85" rel="self" type="application/rss+xml" />
	<link>http://alarmingdevelopment.org/?p=85</link>
	<description>Dispatches from the Programmer Liberation Front</description>
	<lastBuildDate>Tue, 09 Feb 2010 03:48:33 -0800</lastBuildDate>
	
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Paul W. Homer</title>
		<link>http://alarmingdevelopment.org/?p=85&#038;cpage=1#comment-56600</link>
		<dc:creator>Paul W. Homer</dc:creator>
		<pubDate>Fri, 15 Feb 2008 19:58:01 +0000</pubDate>
		<guid isPermaLink="false">http://alarmingdevelopment.org/?p=85#comment-56600</guid>
		<description>Formalism vs. anti-formalism, seems to me to be a variation on strong vs. loose typing, which in a way is a variation on static vs. dynamic behavior.  These arguments are generally about which is right or best, but I tend to see it as a problem domain specific issue. Based on what you are trying to solve, you either need rigor to insure it does exactly what it is supposed to do, or you don&#039;t want rigor so that the solution is shorter or more flexible. The trick is not to pick one or the other, but to allow both.  

Paul.
http://theprogrammersparadox.blogspot.com</description>
		<content:encoded><![CDATA[<p>Formalism vs. anti-formalism, seems to me to be a variation on strong vs. loose typing, which in a way is a variation on static vs. dynamic behavior.  These arguments are generally about which is right or best, but I tend to see it as a problem domain specific issue. Based on what you are trying to solve, you either need rigor to insure it does exactly what it is supposed to do, or you don&#8217;t want rigor so that the solution is shorter or more flexible. The trick is not to pick one or the other, but to allow both.  </p>
<p>Paul.<br />
<a href="http://theprogrammersparadox.blogspot.com" rel="nofollow">http://theprogrammersparadox.blogspot.com</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Software design is chaotic &#171; Solarvoid</title>
		<link>http://alarmingdevelopment.org/?p=85&#038;cpage=1#comment-56596</link>
		<dc:creator>Software design is chaotic &#171; Solarvoid</dc:creator>
		<pubDate>Tue, 12 Feb 2008 17:05:30 +0000</pubDate>
		<guid isPermaLink="false">http://alarmingdevelopment.org/?p=85#comment-56596</guid>
		<description>[...] design is&#160;chaotic    From this article &#8220;Informality sans Mysticism&#8221;: I believe that it is actually worse – software design is not just subjective – it is chaotic. [...]</description>
		<content:encoded><![CDATA[<p>[...] design is&nbsp;chaotic    From this article &#8220;Informality sans Mysticism&#8221;: I believe that it is actually worse – software design is not just subjective – it is chaotic. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John "Z-Bo" Zabroski</title>
		<link>http://alarmingdevelopment.org/?p=85&#038;cpage=1#comment-56595</link>
		<dc:creator>John "Z-Bo" Zabroski</dc:creator>
		<pubDate>Mon, 11 Feb 2008 21:15:06 +0000</pubDate>
		<guid isPermaLink="false">http://alarmingdevelopment.org/?p=85#comment-56595</guid>
		<description>Brian Foote &lt;a href=&quot;http://www.laputan.org/catfish/archives/000104.html&quot; rel=&quot;nofollow&quot;&gt;contributed a question&lt;/a&gt; on pasting in his OOPSLA 2005 Breakthrough Ideas answer: What are the people who paste doing right?  However, he misses the opportunity to discuss what people are doing wrong:

Copy-and-paste is a form of duplication, and can therefore certainly help ease the pain of code duplication.  However, it cannot ease the pain of &quot;code triplication&quot;.  Many domain-specific languages seem to have code triplication problems.  For instance, if the domain-specific language does not have an implicit reference counting mechanism, then the language must have an explicit mechanism -- in fact, a &lt;em&gt;heuristic&lt;/em&gt; -- for knowing the reference count is zero and the resource has fallen out of use/scope.  Now, I know the objection: &quot;Z-Bo, you&#039;re silly, DSLs that don&#039;t garbage collect?!&quot;  They exist and are widely deployed.  Redhat Package Manager (rpm) is a good example!  rpm SPEC files are DSLs that provide rpm with it&#039;s intelligence.  rpm has a &quot;feature&quot; where you specify a &quot;%dir&quot; directive to note what directories are owned by a package.  When the package is un-installed, the directory can be removed IF it&#039;s empty.  This parameter is really just a work-around for not having some garbage collection mechanism.  What&#039;s more, package management is also really just an informal system.  It&#039;s an NP-complete problem that is managed through the use of heuristics.

My point is that even in programs that handle NP-complete problems you can have mysticism &lt;em&gt;aside from&lt;/em&gt; the basic heuristics that pare the problem space.

Brian Foote touches on another form of duplication in his OOPSLA 2005 Breakthrough Ideas answer: &lt;a href=&quot;http://www.laputan.org/catfish/archives/000102.html&quot; rel=&quot;nofollow&quot;&gt;temporal duplication&lt;/a&gt;.  Saltzer et al&#039;s paper on End-to-end Arguments in System Design addresses exactly that phrase.

The biggest obstacle I see for Programming as Experimental Philosophy (nice metaphor) is that it requires a complete change in the way academics think.  Academics always strike me as &lt;em&gt;too&lt;/em&gt; reactionary.  Even in a field like Computer Science where things seem remarkably fast-paced, most advances are in response to trends.  That&#039;s probably why people often cringe at the statements I make, like telling people they should disregard the notion of abstraction as &quot;central&quot; to Computer Science and regard abstraction as a malaise - I always try to improve a sentence about abstraction by seeing how I can remove the word from the sentence.  It&#039;s not that I&#039;m more right or more wrong than anyone else.  It&#039;s because I don&#039;t see the value in waiting to react to what other people are doing.</description>
		<content:encoded><![CDATA[<p>Brian Foote <a href="http://www.laputan.org/catfish/archives/000104.html" rel="nofollow">contributed a question</a> on pasting in his OOPSLA 2005 Breakthrough Ideas answer: What are the people who paste doing right?  However, he misses the opportunity to discuss what people are doing wrong:</p>
<p>Copy-and-paste is a form of duplication, and can therefore certainly help ease the pain of code duplication.  However, it cannot ease the pain of &#8220;code triplication&#8221;.  Many domain-specific languages seem to have code triplication problems.  For instance, if the domain-specific language does not have an implicit reference counting mechanism, then the language must have an explicit mechanism &#8212; in fact, a <em>heuristic</em> &#8212; for knowing the reference count is zero and the resource has fallen out of use/scope.  Now, I know the objection: &#8220;Z-Bo, you&#8217;re silly, DSLs that don&#8217;t garbage collect?!&#8221;  They exist and are widely deployed.  Redhat Package Manager (rpm) is a good example!  rpm SPEC files are DSLs that provide rpm with it&#8217;s intelligence.  rpm has a &#8220;feature&#8221; where you specify a &#8220;%dir&#8221; directive to note what directories are owned by a package.  When the package is un-installed, the directory can be removed IF it&#8217;s empty.  This parameter is really just a work-around for not having some garbage collection mechanism.  What&#8217;s more, package management is also really just an informal system.  It&#8217;s an NP-complete problem that is managed through the use of heuristics.</p>
<p>My point is that even in programs that handle NP-complete problems you can have mysticism <em>aside from</em> the basic heuristics that pare the problem space.</p>
<p>Brian Foote touches on another form of duplication in his OOPSLA 2005 Breakthrough Ideas answer: <a href="http://www.laputan.org/catfish/archives/000102.html" rel="nofollow">temporal duplication</a>.  Saltzer et al&#8217;s paper on End-to-end Arguments in System Design addresses exactly that phrase.</p>
<p>The biggest obstacle I see for Programming as Experimental Philosophy (nice metaphor) is that it requires a complete change in the way academics think.  Academics always strike me as <em>too</em> reactionary.  Even in a field like Computer Science where things seem remarkably fast-paced, most advances are in response to trends.  That&#8217;s probably why people often cringe at the statements I make, like telling people they should disregard the notion of abstraction as &#8220;central&#8221; to Computer Science and regard abstraction as a malaise &#8211; I always try to improve a sentence about abstraction by seeing how I can remove the word from the sentence.  It&#8217;s not that I&#8217;m more right or more wrong than anyone else.  It&#8217;s because I don&#8217;t see the value in waiting to react to what other people are doing.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew E</title>
		<link>http://alarmingdevelopment.org/?p=85&#038;cpage=1#comment-56594</link>
		<dc:creator>Andrew E</dc:creator>
		<pubDate>Mon, 11 Feb 2008 18:47:48 +0000</pubDate>
		<guid isPermaLink="false">http://alarmingdevelopment.org/?p=85#comment-56594</guid>
		<description>Nice commentary.  Most of what you say, I agree with and you&#039;ve made me understand his talk much better than the last time I heard it.

But, one thing that I think you miss is that programs and programming *can* be formal in the middle.  Although that is a compromise, it is still usefull.  E.g., if you accept an instantiation of some evolving, fuzzy requirements and an imperfect, changing data model then you can apply some useful formalisms to it (e.g., type checking, regression testing).

Actually, reading your post again, I think you may disagree with this statement.  &quot;I believe that it is actually worse – software design is not just subjective – it is chaotic.&quot;  Well, maybe...but type checking and regression testing seem to *work*.

The challenge with programming is to determine which formalisms work, which don&#039;t (and have the courage to throw them out), and then find new (potentially non-formal) techniques to fill the gap.  All the while we have to realize that some applications (e.g, device drivers) lend themselves better to formal verification than others (UI design).

[Andrew - I quite agree that formal methods are important and useful, at the right time and place. What I am against is totalitarian formality. - Jonathan]</description>
		<content:encoded><![CDATA[<p>Nice commentary.  Most of what you say, I agree with and you&#8217;ve made me understand his talk much better than the last time I heard it.</p>
<p>But, one thing that I think you miss is that programs and programming *can* be formal in the middle.  Although that is a compromise, it is still usefull.  E.g., if you accept an instantiation of some evolving, fuzzy requirements and an imperfect, changing data model then you can apply some useful formalisms to it (e.g., type checking, regression testing).</p>
<p>Actually, reading your post again, I think you may disagree with this statement.  &#8220;I believe that it is actually worse – software design is not just subjective – it is chaotic.&#8221;  Well, maybe&#8230;but type checking and regression testing seem to *work*.</p>
<p>The challenge with programming is to determine which formalisms work, which don&#8217;t (and have the courage to throw them out), and then find new (potentially non-formal) techniques to fill the gap.  All the while we have to realize that some applications (e.g, device drivers) lend themselves better to formal verification than others (UI design).</p>
<p>[Andrew - I quite agree that formal methods are important and useful, at the right time and place. What I am against is totalitarian formality. - Jonathan]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
