<?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: Perfect software? More on Cantrill and Dreaming</title>
	<atom:link href="http://www.wordyard.com/2007/11/13/perfect-software/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.wordyard.com/2007/11/13/perfect-software/</link>
	<description>Technology, politics, culture</description>
	<lastBuildDate>Tue, 16 Mar 2010 18:43:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Softwareudvikling &#124; Webmercial.dk</title>
		<link>http://www.wordyard.com/2007/11/13/perfect-software/comment-page-1/#comment-1450</link>
		<dc:creator>Softwareudvikling &#124; Webmercial.dk</dc:creator>
		<pubDate>Fri, 04 Jan 2008 20:22:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.wordyard.com/?p=1411#comment-1450</guid>
		<description></description>
		<content:encoded><![CDATA[<p>[...] software, så man kan trække flere penge ud af kunden, omgærde sit fag med en masse mystik osv. som denne diskussion handler om). Men det er ikke det der er Rosenbergs fokus: hans bog er fortællingen om dér hvor det går galt, [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ClÃ©o Saulnier</title>
		<link>http://www.wordyard.com/2007/11/13/perfect-software/comment-page-1/#comment-1134</link>
		<dc:creator>ClÃ©o Saulnier</dc:creator>
		<pubDate>Sat, 24 Nov 2007 16:49:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.wordyard.com/?p=1411#comment-1134</guid>
		<description>Bryan: Your software/software interaction is what&#039;s assigned to beginners (like rendering engines in 3D games, game engines, protocols, scripting languages and parsers).  You can specify constraints on data and be done with it.  Hand the spec over and let the programmer plug away.  All that&#039;s required is knowledge.  In the book, it talks about the server project handled by one person.  The reason it had less problems is exactly because it doesn&#039;t deal with the user.  But that would have been a really boring story.  That&#039;s not where the problems are.

Without software that interfaces with users (or real life events), the software/software interaction code that you&#039;re writing may be perfect, but ultimately useless.  If your code is used at all, it&#039;s because of those programmers that write the software that interacts with users.</description>
		<content:encoded><![CDATA[<p>Bryan: Your software/software interaction is what&#8217;s assigned to beginners (like rendering engines in 3D games, game engines, protocols, scripting languages and parsers).  You can specify constraints on data and be done with it.  Hand the spec over and let the programmer plug away.  All that&#8217;s required is knowledge.  In the book, it talks about the server project handled by one person.  The reason it had less problems is exactly because it doesn&#8217;t deal with the user.  But that would have been a really boring story.  That&#8217;s not where the problems are.</p>
<p>Without software that interfaces with users (or real life events), the software/software interaction code that you&#8217;re writing may be perfect, but ultimately useless.  If your code is used at all, it&#8217;s because of those programmers that write the software that interacts with users.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Amit Kulkarni</title>
		<link>http://www.wordyard.com/2007/11/13/perfect-software/comment-page-1/#comment-1143</link>
		<dc:creator>Amit Kulkarni</dc:creator>
		<pubDate>Wed, 21 Nov 2007 16:29:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.wordyard.com/?p=1411#comment-1143</guid>
		<description>I wouldn&#039;t put Joel Spolsky in the same sentence or chapter as the others. Granted, he does explain some concepts well, and is fortunate to have most of the Web 2.0 crowd as his fanboys. But I haven&#039;t read of any great software output or idea from him yet. Most of the other people on your list would find it insulting or amusing.</description>
		<content:encoded><![CDATA[<p>I wouldn&#8217;t put Joel Spolsky in the same sentence or chapter as the others. Granted, he does explain some concepts well, and is fortunate to have most of the Web 2.0 crowd as his fanboys. But I haven&#8217;t read of any great software output or idea from him yet. Most of the other people on your list would find it insulting or amusing.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Doug K</title>
		<link>http://www.wordyard.com/2007/11/13/perfect-software/comment-page-1/#comment-1146</link>
		<dc:creator>Doug K</dc:creator>
		<pubDate>Fri, 16 Nov 2007 17:40:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.wordyard.com/?p=1411#comment-1146</guid>
		<description>A previous discussion from 2004 on perfect software,
http://blogs.sun.com/bmc/entry/the_economics_of_software#comment-1093905190000

I haven&#039;t changed my mind yet..
Taking Euclid&#039;s theorems by way of example, certainly the GCD algorithm has an existence as a glorious immutable truth (given of course the usual Godelian caveats). But it also has many instantiations, expressions in mutable media, most of which are now defunct. The Alexandrian scroll itself may have had transcription errors or lacunae. The existence of the immutable truth doesn&#039;t help the scribe who is trying to compute something based on the scroll with its incomplete or imperfect expression of the truth.

When we deal with software, we&#039;re not usually at the &#039;immutable truth&#039; level. A few brilliant coders are, but, lackaday, most of us who toil at this particular coalface are not there. We&#039;re dealing with the Platonic shadows of their brilliance. From our perspective, calling software &#039;perfect&#039; looks like a category mistake: and giving databases as an example of the bedrock stability of software, verges on the ludicrous. Certainly there are thousands of installations of large databases processing billions of calls every day, which is pretty damn good software. There are also spectacular disasters in every database system known to man, at wholly unpredictable intervals. This is not perfection, nor do I expect to live to see it.</description>
		<content:encoded><![CDATA[<p>A previous discussion from 2004 on perfect software,<br />
<a href="http://blogs.sun.com/bmc/entry/the_economics_of_software#comment-1093905190000" rel="nofollow">http://blogs.sun.com/bmc/entry/the_economics_of_software#comment-1093905190000</a></p>
<p>I haven&#8217;t changed my mind yet..<br />
Taking Euclid&#8217;s theorems by way of example, certainly the GCD algorithm has an existence as a glorious immutable truth (given of course the usual Godelian caveats). But it also has many instantiations, expressions in mutable media, most of which are now defunct. The Alexandrian scroll itself may have had transcription errors or lacunae. The existence of the immutable truth doesn&#8217;t help the scribe who is trying to compute something based on the scroll with its incomplete or imperfect expression of the truth.</p>
<p>When we deal with software, we&#8217;re not usually at the &#8216;immutable truth&#8217; level. A few brilliant coders are, but, lackaday, most of us who toil at this particular coalface are not there. We&#8217;re dealing with the Platonic shadows of their brilliance. From our perspective, calling software &#8216;perfect&#8217; looks like a category mistake: and giving databases as an example of the bedrock stability of software, verges on the ludicrous. Certainly there are thousands of installations of large databases processing billions of calls every day, which is pretty damn good software. There are also spectacular disasters in every database system known to man, at wholly unpredictable intervals. This is not perfection, nor do I expect to live to see it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott Rosenberg</title>
		<link>http://www.wordyard.com/2007/11/13/perfect-software/comment-page-1/#comment-1138</link>
		<dc:creator>Scott Rosenberg</dc:creator>
		<pubDate>Thu, 15 Nov 2007 20:30:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.wordyard.com/?p=1411#comment-1138</guid>
		<description>Hi, Greg -- You&#039;d have to look at those chapters to see why I included who I included. I make no pretense to offering an exhaustive study or a reference work. Some of the people I chose to discuss not because they were the first or the most probing but because they articulated ideas in an accessible way. Joel and Jason fall into that camp, for me. I&#039;m very familiar with Yourdon, Kernighan and McConnell; less so, Myers -- thanks for the reference.

As for examples of projects that dropped off the radar and then returned, well, the biggest example is the software I&#039;m using right now -- Firefox. I use both that and NeXT as examples in the book. The Web itself spent 3-4 years as a project with very limited participation until Mosaic introduced it to a much wider public. And so on. The larger point to me is that the life cycle of software isn&#039;t a linear sort of thing. I totally agree that in general, most successful projects stay a little ahead of the various cycles that govern the field. But sometimes a project falls so far behind one turn of the wheel that it ends up a little ahead of the next. Admittedly, this is not common. But it happens!</description>
		<content:encoded><![CDATA[<p>Hi, Greg &#8212; You&#8217;d have to look at those chapters to see why I included who I included. I make no pretense to offering an exhaustive study or a reference work. Some of the people I chose to discuss not because they were the first or the most probing but because they articulated ideas in an accessible way. Joel and Jason fall into that camp, for me. I&#8217;m very familiar with Yourdon, Kernighan and McConnell; less so, Myers &#8212; thanks for the reference.</p>
<p>As for examples of projects that dropped off the radar and then returned, well, the biggest example is the software I&#8217;m using right now &#8212; Firefox. I use both that and NeXT as examples in the book. The Web itself spent 3-4 years as a project with very limited participation until Mosaic introduced it to a much wider public. And so on. The larger point to me is that the life cycle of software isn&#8217;t a linear sort of thing. I totally agree that in general, most successful projects stay a little ahead of the various cycles that govern the field. But sometimes a project falls so far behind one turn of the wheel that it ends up a little ahead of the next. Admittedly, this is not common. But it happens!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Greg Jorgensen</title>
		<link>http://www.wordyard.com/2007/11/13/perfect-software/comment-page-1/#comment-1136</link>
		<dc:creator>Greg Jorgensen</dc:creator>
		<pubDate>Thu, 15 Nov 2007 19:50:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.wordyard.com/?p=1411#comment-1136</guid>
		<description>You wrote &quot;There are too many examples of projects that took long slogs through dark years and then emerged to fill some vital need for anyone to smugly dismiss Chandler, even today.&quot;

I can&#039;t think of any examples. Maybe NeXTStep, but even that didn&#039;t slog along for years unreleased. Vista had a long slog, but it didn&#039;t emerge to fill a vital need. Chandler is an example of a project that will probably be irrelevant if it is finished and released -- a modern &quot;Soul Of A New Machine.&quot; Projects that don&#039;t move at least a little faster than the computing ecosystem as a whole are pretty much doomed.

One more thing. In this list which names don&#039;t belong? Edsger Dijsktra, Watts Humphrey, Frederick Brooks, Ward Cunningham, Kent Beck, Joel Spolsky, Jason Fried, Nick Carr, Charles Simonyi, Alan Kay, Jaron Lanier, Richard Gabriel and Donald Knuth.

Obviously a lot of important names are missing, but what the heck is Joel Spolsky doing there? And Jason Fried? Their contributions are ephemeral or insubstantial by comparison to Knuth, Dijkstra, and Kay. If you think Joel&#039;s &quot;law of leaky abstractions&quot; is an important new concept you should read his sources: Glenford Myers, Edward Yourdon, Brian Kernighan, and Steve McConnell.</description>
		<content:encoded><![CDATA[<p>You wrote &#8220;There are too many examples of projects that took long slogs through dark years and then emerged to fill some vital need for anyone to smugly dismiss Chandler, even today.&#8221;</p>
<p>I can&#8217;t think of any examples. Maybe NeXTStep, but even that didn&#8217;t slog along for years unreleased. Vista had a long slog, but it didn&#8217;t emerge to fill a vital need. Chandler is an example of a project that will probably be irrelevant if it is finished and released &#8212; a modern &#8220;Soul Of A New Machine.&#8221; Projects that don&#8217;t move at least a little faster than the computing ecosystem as a whole are pretty much doomed.</p>
<p>One more thing. In this list which names don&#8217;t belong? Edsger Dijsktra, Watts Humphrey, Frederick Brooks, Ward Cunningham, Kent Beck, Joel Spolsky, Jason Fried, Nick Carr, Charles Simonyi, Alan Kay, Jaron Lanier, Richard Gabriel and Donald Knuth.</p>
<p>Obviously a lot of important names are missing, but what the heck is Joel Spolsky doing there? And Jason Fried? Their contributions are ephemeral or insubstantial by comparison to Knuth, Dijkstra, and Kay. If you think Joel&#8217;s &#8220;law of leaky abstractions&#8221; is an important new concept you should read his sources: Glenford Myers, Edward Yourdon, Brian Kernighan, and Steve McConnell.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bryan Cantrill</title>
		<link>http://www.wordyard.com/2007/11/13/perfect-software/comment-page-1/#comment-1145</link>
		<dc:creator>Bryan Cantrill</dc:creator>
		<pubDate>Wed, 14 Nov 2007 22:32:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.wordyard.com/?p=1411#comment-1145</guid>
		<description>Sam,

Interesting comparison and taxonomy -- and it meshes well with my notion that software is still extraordinarily young.  (We are still in the era of &quot;physicks&quot; and &quot;natural philosophy&quot; to continue with your science analogy.)  A new model is certainly needed, and I believe that truly coming to grips with the uniqueness of software is a prerequisite -- and that means a broad-based understanding of notions like the perfection that software alone can achieve.  (By the way, it is my belief that this will happen -- at the latest -- when humanity collectively realizes that the software upon which it has become inextricably dependent was largely written by dead engineers.  This isn&#039;t true today -- by a long shot -- but it&#039;s hard to see how it won&#039;t be true a hundred or two hundred years from now...)</description>
		<content:encoded><![CDATA[<p>Sam,</p>
<p>Interesting comparison and taxonomy &#8212; and it meshes well with my notion that software is still extraordinarily young.  (We are still in the era of &#8220;physicks&#8221; and &#8220;natural philosophy&#8221; to continue with your science analogy.)  A new model is certainly needed, and I believe that truly coming to grips with the uniqueness of software is a prerequisite &#8212; and that means a broad-based understanding of notions like the perfection that software alone can achieve.  (By the way, it is my belief that this will happen &#8212; at the latest &#8212; when humanity collectively realizes that the software upon which it has become inextricably dependent was largely written by dead engineers.  This isn&#8217;t true today &#8212; by a long shot &#8212; but it&#8217;s hard to see how it won&#8217;t be true a hundred or two hundred years from now&#8230;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sam Penrose</title>
		<link>http://www.wordyard.com/2007/11/13/perfect-software/comment-page-1/#comment-1144</link>
		<dc:creator>Sam Penrose</dc:creator>
		<pubDate>Wed, 14 Nov 2007 20:44:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.wordyard.com/?p=1411#comment-1144</guid>
		<description>Bryan: agreed 100%.

I wonder if a decent model for &quot;software engineering&quot; might be something like the sciences, where a broad hierarchy:

    math -&gt; physics -&gt; chemistry -&gt; biology -&gt; ...

exists but doesn&#039;t strangle the culture of the lower branches. All &quot;field biologists&quot; like me need some familiarity with the &quot;physics&quot; invented by you and your peers, and ultimately depend on it in various ways. &quot;Biological physics&quot; -- domains where the algorithm is the heart of the user tool, such as search -- certainly exist. But the many programmers doing the equivalent of studying polar bears or developmental genetics are IMHO not helped by a professional culture which exalts the terse, high-performance, hardware-centric systems algorithm above all, any more than field biologists are helped by exhortations to do better mathematical analysis of quarks.

Another way to look at it: in my mind, Page and Brin are arguably second only to Berners-Lee in their contributions to making the Internet a public tool. Yet in the professional discourse I follow they receive many times more attention than he does. Money and contemporaneity surely cause some of this, but it seems noteworthy that in one case where the landmark breakthrough at the application level provides the foundation for a big deal algorithm, we as a profession have flocked to them as heroic leaders, while mostly ignoring him.</description>
		<content:encoded><![CDATA[<p>Bryan: agreed 100%.</p>
<p>I wonder if a decent model for &#8220;software engineering&#8221; might be something like the sciences, where a broad hierarchy:</p>
<p>    math -&gt; physics -&gt; chemistry -&gt; biology -&gt; &#8230;</p>
<p>exists but doesn&#8217;t strangle the culture of the lower branches. All &#8220;field biologists&#8221; like me need some familiarity with the &#8220;physics&#8221; invented by you and your peers, and ultimately depend on it in various ways. &#8220;Biological physics&#8221; &#8212; domains where the algorithm is the heart of the user tool, such as search &#8212; certainly exist. But the many programmers doing the equivalent of studying polar bears or developmental genetics are IMHO not helped by a professional culture which exalts the terse, high-performance, hardware-centric systems algorithm above all, any more than field biologists are helped by exhortations to do better mathematical analysis of quarks.</p>
<p>Another way to look at it: in my mind, Page and Brin are arguably second only to Berners-Lee in their contributions to making the Internet a public tool. Yet in the professional discourse I follow they receive many times more attention than he does. Money and contemporaneity surely cause some of this, but it seems noteworthy that in one case where the landmark breakthrough at the application level provides the foundation for a big deal algorithm, we as a profession have flocked to them as heroic leaders, while mostly ignoring him.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bryan Cantrill</title>
		<link>http://www.wordyard.com/2007/11/13/perfect-software/comment-page-1/#comment-1133</link>
		<dc:creator>Bryan Cantrill</dc:creator>
		<pubDate>Wed, 14 Nov 2007 19:32:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.wordyard.com/?p=1411#comment-1133</guid>
		<description>Sam,

I think you&#039;re raising some good points here, but I definitely think that software that interacts only with other software has value -- considering that that includes every compiler, every operating system, every database, every virtual machine, every app server, etc.  Or rather, if it doesn&#039;t have value, there are a ton of people who are paying too much for it. ;)  And while it is true that ultimate value is derived from users&#039; interactions with the system, those interactions need not be explicit -- and frequently aren&#039;t in companies for whom IT is a core competency.  For example, my interactions with FedEx consist of giving them a package, and perhaps checking a website a couple of times -- but there&#039;s a tremendous amount of deep, unseen, valuable IT that makes FedEx happen and happen efficiently...</description>
		<content:encoded><![CDATA[<p>Sam,</p>
<p>I think you&#8217;re raising some good points here, but I definitely think that software that interacts only with other software has value &#8212; considering that that includes every compiler, every operating system, every database, every virtual machine, every app server, etc.  Or rather, if it doesn&#8217;t have value, there are a ton of people who are paying too much for it. ;)  And while it is true that ultimate value is derived from users&#8217; interactions with the system, those interactions need not be explicit &#8212; and frequently aren&#8217;t in companies for whom IT is a core competency.  For example, my interactions with FedEx consist of giving them a package, and perhaps checking a website a couple of times &#8212; but there&#8217;s a tremendous amount of deep, unseen, valuable IT that makes FedEx happen and happen efficiently&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sam Penrose</title>
		<link>http://www.wordyard.com/2007/11/13/perfect-software/comment-page-1/#comment-1135</link>
		<dc:creator>Sam Penrose</dc:creator>
		<pubDate>Wed, 14 Nov 2007 18:56:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.wordyard.com/?p=1411#comment-1135</guid>
		<description>Bryan: thanks for the excellent analysis. The next question becomes: where does the value of software come from? Surely much of it comes from what you call &quot;the user.&quot; Software that interacts only with hardware can give what we might call direct value (and might fit the paradigm you prefer), but software that interacts only with other software is a means to an end. It derives value from partially enabling the software that people use (that value can be very high due to leverage and scale, of course).

I was disappointed with Beautiful Code because the majority of the entries fled the messy world where value actually arises for the tidy world where APIs can aspire to elegance. Worse, a large number of them more-or-less took as a postulate that  &quot;beautiful&quot; == &quot;fast&quot;.

Like hundreds of thousands (?) millions (?) of other software developers, I write programs with human interfaces. Those programs would not be possible without the work of systems giants such as yourself, and speed is an occasional issue, but I have found the worship of internal elegance (and speed) in the culture of software development to be unhelpful, while the issues that Scott discusses in DiC are pressing everyday concerns for me.

Perhaps the biggest obstacle to developing coherent theories of software development is the sheer diversity of the work?</description>
		<content:encoded><![CDATA[<p>Bryan: thanks for the excellent analysis. The next question becomes: where does the value of software come from? Surely much of it comes from what you call &#8220;the user.&#8221; Software that interacts only with hardware can give what we might call direct value (and might fit the paradigm you prefer), but software that interacts only with other software is a means to an end. It derives value from partially enabling the software that people use (that value can be very high due to leverage and scale, of course).</p>
<p>I was disappointed with Beautiful Code because the majority of the entries fled the messy world where value actually arises for the tidy world where APIs can aspire to elegance. Worse, a large number of them more-or-less took as a postulate that  &#8220;beautiful&#8221; == &#8220;fast&#8221;.</p>
<p>Like hundreds of thousands (?) millions (?) of other software developers, I write programs with human interfaces. Those programs would not be possible without the work of systems giants such as yourself, and speed is an occasional issue, but I have found the worship of internal elegance (and speed) in the culture of software development to be unhelpful, while the issues that Scott discusses in DiC are pressing everyday concerns for me.</p>
<p>Perhaps the biggest obstacle to developing coherent theories of software development is the sheer diversity of the work?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
