<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
<channel>
	<title>Comments for Bertrand Meyer's technology blog</title>
	
	<link>http://bertrandmeyer.com</link>
	<description>Software engineering, programming methodology, programming  languages, software verification, general technology</description>
	<lastBuildDate>Wed, 01 Feb 2012 20:18:41 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/BertrandMeyer-comments" /><feedburner:info uri="bertrandmeyer-comments" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly></feedburner:browserFriendly><item>
		<title>Comment on Concurrency seminars by Bertrand Meyer</title>
		<link>http://bertrandmeyer.com/2012/01/23/concurrency-seminars/comment-page-1/#comment-510</link>
		<dc:creator>Bertrand Meyer</dc:creator>
		<pubDate>Wed, 01 Feb 2012 20:18:41 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=2171#comment-510</guid>
		<description>The concurrency seminars are not designed for internet broadcast. But we will continue broadcasting the ITMO research seminars.</description>
		<content:encoded><![CDATA[<p>The concurrency seminars are not designed for internet broadcast. But we will continue broadcasting the ITMO research seminars.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Never design a language by Creating DSLs, a word of caution | Modeling Languages</title>
		<link>http://bertrandmeyer.com/2012/01/31/never-design-a-language/comment-page-1/#comment-509</link>
		<dc:creator>Creating DSLs, a word of caution | Modeling Languages</dc:creator>
		<pubDate>Tue, 31 Jan 2012 13:26:22 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=2151#comment-509</guid>
		<description>[...] Never design a language [...]</description>
		<content:encoded><![CDATA[<p>[...] Never design a language [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Dwelling on the point by Bertrand Meyer's technology blog » Blog Archive » Analyzing a software failure</title>
		<link>http://bertrandmeyer.com/2009/11/29/dwelling-on-the-point/comment-page-1/#comment-508</link>
		<dc:creator>Bertrand Meyer's technology blog » Blog Archive » Analyzing a software failure</dc:creator>
		<pubDate>Tue, 31 Jan 2012 03:39:35 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=869#comment-508</guid>
		<description>[...] way to advance software engineering: this blog, see here. [2] Dwelling on the point: this blog, see here. [3] Dines Bjørner: The TSE Trading Rules, version 2, unpublished report, 22 February 2010, [...]</description>
		<content:encoded><![CDATA[<p>[...] way to advance software engineering: this blog, see here. [2] Dwelling on the point: this blog, see here. [3] Dines Bjørner: The TSE Trading Rules, version 2, unpublished report, 22 February 2010, [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Concurrency seminars by Larry</title>
		<link>http://bertrandmeyer.com/2012/01/23/concurrency-seminars/comment-page-1/#comment-505</link>
		<dc:creator>Larry</dc:creator>
		<pubDate>Tue, 24 Jan 2012 16:44:44 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=2171#comment-505</guid>
		<description>Bertrand: Will the seminars be available over the net remotely? By the way, we remotely attended the loop invariant seminar you held recently in Russia and it was great. However, the camera was so far away from the screen that we could not read what was presented and had to go almost entirely from what you were saying. Perhaps the next camera man can get tighter on the screen and leave just a little space to see you once in awhile as you are talking. Anyway -- I would really like to participate in this SCOOP seminar if it can have a remote access feature. Thanks!</description>
		<content:encoded><![CDATA[<p>Bertrand: Will the seminars be available over the net remotely? By the way, we remotely attended the loop invariant seminar you held recently in Russia and it was great. However, the camera was so far away from the screen that we could not read what was presented and had to go almost entirely from what you were saying. Perhaps the next camera man can get tighter on the screen and leave just a little space to see you once in awhile as you are talking. Anyway &#8212; I would really like to participate in this SCOOP seminar if it can have a remote access feature. Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on PhD position: concurrent programming (SCOOP) for robotics by Bertrand Meyer</title>
		<link>http://bertrandmeyer.com/2011/10/12/phd-position-concurrent-programming-scoop-for-robotics/comment-page-1/#comment-497</link>
		<dc:creator>Bertrand Meyer</dc:creator>
		<pubDate>Wed, 21 Dec 2011 08:43:26 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=1938#comment-497</guid>
		<description>The video is at &lt;a href="http://www.youtube.com/watch?v=LWkETPn5Fn8" rel="nofollow"&gt;www.youtube.com/watch?v=LWkETPn5Fn8&lt;/a&gt;. I have updated the text of the original post.</description>
		<content:encoded><![CDATA[<p>The video is at <a href="http://www.youtube.com/watch?v=LWkETPn5Fn8" rel="nofollow">http://www.youtube.com/watch?v=LWkETPn5Fn8</a>. I have updated the text of the original post.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on PhD position: concurrent programming (SCOOP) for robotics by Bertrand Meyer</title>
		<link>http://bertrandmeyer.com/2011/10/12/phd-position-concurrent-programming-scoop-for-robotics/comment-page-1/#comment-494</link>
		<dc:creator>Bertrand Meyer</dc:creator>
		<pubDate>Wed, 21 Dec 2011 04:24:00 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=1938#comment-494</guid>
		<description>Thanks for pointing this out; I don't know what happened but hope the video is restored later today.</description>
		<content:encoded><![CDATA[<p>Thanks for pointing this out; I don&#8217;t know what happened but hope the video is restored later today.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on How to design software by Complexity Aware Modelling II | Model Practice</title>
		<link>http://bertrandmeyer.com/2011/12/13/how-to-design-software/comment-page-1/#comment-488</link>
		<dc:creator>Complexity Aware Modelling II | Model Practice</dc:creator>
		<pubDate>Mon, 19 Dec 2011 09:29:01 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=2070#comment-488</guid>
		<description>[...] is far from trivial, and is the actual mission of design, as nicely described by Bertrand Meyer here    LD_AddCustomAttr("AdOpt", "1"); LD_AddCustomAttr("Origin", "other"); [...]</description>
		<content:encoded><![CDATA[<p>[...] is far from trivial, and is the actual mission of design, as nicely described by Bertrand Meyer here    LD_AddCustomAttr(&quot;AdOpt&quot;, &quot;1&quot;); LD_AddCustomAttr(&quot;Origin&quot;, &quot;other&quot;); [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on PhD position: concurrent programming (SCOOP) for robotics by brieweb</title>
		<link>http://bertrandmeyer.com/2011/10/12/phd-position-concurrent-programming-scoop-for-robotics/comment-page-1/#comment-479</link>
		<dc:creator>brieweb</dc:creator>
		<pubDate>Wed, 14 Dec 2011 23:07:34 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=1938#comment-479</guid>
		<description>It looks like the video was removed from YouTube. I would be curious to see it.
-brian</description>
		<content:encoded><![CDATA[<p>It looks like the video was removed from YouTube. I would be curious to see it.<br />
-brian</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Modes and Uses of Scientific Publication by ¿Por qué crees que los científicos publican artículos científicos?</title>
		<link>http://bertrandmeyer.com/2011/11/22/the-modes-and-uses-of-scientific-publication/comment-page-1/#comment-475</link>
		<dc:creator>¿Por qué crees que los científicos publican artículos científicos?</dc:creator>
		<pubDate>Mon, 12 Dec 2011 18:59:11 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=2018#comment-475</guid>
		<description>[...] "CRITEO-300x250", 300, 250);         1 meneos    ¿Por qué crees que los científicos publican artículos científicos?     bertrandmeyer.com/2011/11/22/the-modes-and-uses-of-scient...  por equisdx hace [...]</description>
		<content:encoded><![CDATA[<p>[...] &quot;CRITEO-300&#215;250&quot;, 300, 250);         1 meneos    ¿Por qué crees que los científicos publican artículos científicos?     bertrandmeyer.com/2011/11/22/the-modes-and-uses-of-scient&#8230;&nbsp; por equisdx hace [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Modes and Uses of Scientific Publication by Atención, pregunta: ¿Por qué crees que los científicos publican artículos científicos? « Francis (th)E mule Science's News</title>
		<link>http://bertrandmeyer.com/2011/11/22/the-modes-and-uses-of-scientific-publication/comment-page-1/#comment-472</link>
		<dc:creator>Atención, pregunta: ¿Por qué crees que los científicos publican artículos científicos? « Francis (th)E mule Science's News</dc:creator>
		<pubDate>Mon, 12 Dec 2011 07:49:25 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=2018#comment-472</guid>
		<description>[...] las publicaciones, y (4) ritual, porque ser científico significa publicar. Nos lo contó en “The Modes and Uses of Scientific Publication,” Bertrand Meyer’s technology blog, 22 Nov. 2011. Para animarte a leer su entrada [...]</description>
		<content:encoded><![CDATA[<p>[...] las publicaciones, y (4) ritual, porque ser científico significa publicar. Nos lo contó en &#8220;The Modes and Uses of Scientific Publication,&#8221; Bertrand Meyer&#8217;s technology blog, 22 Nov. 2011. Para animarte a leer su entrada [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Averaging by Bertrand Meyer</title>
		<link>http://bertrandmeyer.com/2011/11/15/averaging/comment-page-1/#comment-451</link>
		<dc:creator>Bertrand Meyer</dc:creator>
		<pubDate>Sat, 26 Nov 2011 19:23:57 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=2009#comment-451</guid>
		<description>Indeed, that's what the good PCs do (certainly the ones in which I participate). I wish they were the norm.

Thanks for the reference.</description>
		<content:encoded><![CDATA[<p>Indeed, that&#8217;s what the good PCs do (certainly the ones in which I participate). I wish they were the norm.</p>
<p>Thanks for the reference.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Averaging by onierstrasz</title>
		<link>http://bertrandmeyer.com/2011/11/15/averaging/comment-page-1/#comment-442</link>
		<dc:creator>onierstrasz</dc:creator>
		<pubDate>Wed, 16 Nov 2011 18:55:48 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=2009#comment-442</guid>
		<description>Actually, in my experience, competent PCs do not accept papers based on averages but on who stands up for them. High and low scores don't cancel each other but rather generate discussion. See: http://scg.unibe.ch/download/champion/index.html#PATTERN5</description>
		<content:encoded><![CDATA[<p>Actually, in my experience, competent PCs do not accept papers based on averages but on who stands up for them. High and low scores don&#8217;t cancel each other but rather generate discussion. See: <a href="http://scg.unibe.ch/download/champion/index.html#PATTERN5" rel="nofollow">http://scg.unibe.ch/download/champion/index.html#PATTERN5</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on John McCarthy by Bertrand Meyer's technology blog » Blog Archive » John McCarthy</title>
		<link>http://bertrandmeyer.com/2011/11/07/john-mccarthy/comment-page-1/#comment-432</link>
		<dc:creator>Bertrand Meyer's technology blog » Blog Archive » John McCarthy</dc:creator>
		<pubDate>Mon, 07 Nov 2011 22:10:42 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=1993#comment-432</guid>
		<description>[...] See the original article here: Bertrand Meyer's technology blog » Blog Archive » John McCarthy [...]</description>
		<content:encoded><![CDATA[<p>[...] See the original article here: Bertrand Meyer&#039;s technology blog » Blog Archive » John McCarthy [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The story of our field, in a few short words by La storia in un post « CollaBlog</title>
		<link>http://bertrandmeyer.com/2011/10/16/the-story-of-our-field-in-a-few-short-words/comment-page-1/#comment-408</link>
		<dc:creator>La storia in un post « CollaBlog</dc:creator>
		<pubDate>Sat, 29 Oct 2011 10:20:49 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=1948#comment-408</guid>
		<description>[...] Provate a indovinare chi si cela dietro i nomi di battesimo. Buona lettura. The story of our field, in a few short words [...]</description>
		<content:encoded><![CDATA[<p>[...] Provate a indovinare chi si cela dietro i nomi di battesimo. Buona lettura. The story of our field, in a few short words [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The story of our field, in a few short words by Larry</title>
		<link>http://bertrandmeyer.com/2011/10/16/the-story-of-our-field-in-a-few-short-words/comment-page-1/#comment-372</link>
		<dc:creator>Larry</dc:creator>
		<pubDate>Mon, 17 Oct 2011 17:20:53 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=1948#comment-372</guid>
		<description>What appears as a common thread in each person written of above is a deep curiosity leading them out from the patterns of thought of the people around them. Thank you for writing and giving a view of the roots of our craft. I am personally and professionally happy Eiffel has been a benefactor of such thinking. Additionally, I hope other professionals will question their own inherited and adopted assumptions and engage their curiosity enough to ask: "Is this all there is or is there something more?"

While what is not broken does not require fixing, what is broken does. My father used to say, "If it hurts, don't do it." At 48, I feel a little liberty to now add a little to his statement:

"If it hurts, don't do it. If you don't know why, find out."

Have the courage to BE CURIOUS!

(Thanks Dad!)</description>
		<content:encoded><![CDATA[<p>What appears as a common thread in each person written of above is a deep curiosity leading them out from the patterns of thought of the people around them. Thank you for writing and giving a view of the roots of our craft. I am personally and professionally happy Eiffel has been a benefactor of such thinking. Additionally, I hope other professionals will question their own inherited and adopted assumptions and engage their curiosity enough to ask: &#8220;Is this all there is or is there something more?&#8221;</p>
<p>While what is not broken does not require fixing, what is broken does. My father used to say, &#8220;If it hurts, don&#8217;t do it.&#8221; At 48, I feel a little liberty to now add a little to his statement:</p>
<p>&#8220;If it hurts, don&#8217;t do it. If you don&#8217;t know why, find out.&#8221;</p>
<p>Have the courage to BE CURIOUS!</p>
<p>(Thanks Dad!)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on A safe and stable solution by A safe and stable solution « Jocelyn Fiat</title>
		<link>http://bertrandmeyer.com/2011/08/02/a-safe-and-stable-solution/comment-page-1/#comment-368</link>
		<dc:creator>A safe and stable solution « Jocelyn Fiat</dc:creator>
		<pubDate>Wed, 12 Oct 2011 10:37:37 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=1805#comment-368</guid>
		<description>[...] Bertrand Meyer's technology blog » Blog Archive » A safe and stable solution A safe and stable solution. 2 August 2011, 02:28. Reading about the latest hullabaloo around Android's usage of Java, and more generally following the incessant flow of news such as about X suing … [...]</description>
		<content:encoded><![CDATA[<p>[...] Bertrand Meyer&#039;s technology blog » Blog Archive » A safe and stable solution A safe and stable solution. 2 August 2011, 02:28. Reading about the latest hullabaloo around Android&#039;s usage of Java, and more generally following the incessant flow of news such as about X suing &#8230; [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on A safe and stable solution by ISO 9000</title>
		<link>http://bertrandmeyer.com/2011/08/02/a-safe-and-stable-solution/comment-page-1/#comment-360</link>
		<dc:creator>ISO 9000</dc:creator>
		<pubDate>Thu, 29 Sep 2011 08:00:24 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=1805#comment-360</guid>
		<description>I positively venerate celebration of a mass your blog posts, a accumulation of essay is smashing.we have had to bookmark your site as well as allow to your feed.Your thesis looks lovely.Thanks for sharing.
&lt;a href="http://www.qmsconsultants.com/ISO-9000%20ISO-9001.html" title="iso 9000" rel="nofollow"&gt;iso 9000&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>I positively venerate celebration of a mass your blog posts, a accumulation of essay is smashing.we have had to bookmark your site as well as allow to your feed.Your thesis looks lovely.Thanks for sharing.<br />
<a href="http://www.qmsconsultants.com/ISO-9000%20ISO-9001.html" title="iso 9000" rel="nofollow">iso 9000</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Fun with Bayes by anachesa</title>
		<link>http://bertrandmeyer.com/2011/09/24/fun-with-bayes/comment-page-1/#comment-359</link>
		<dc:creator>anachesa</dc:creator>
		<pubDate>Wed, 28 Sep 2011 11:17:21 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=1867#comment-359</guid>
		<description>Thanks for the interesting and funny article!

Regarding the bytypalism: I am a native Russian speaking SW engineer living abroad, and I can quickly touch-type on both Cyrillic and English International keyboards (these two layouts I always have installed on the PC where I happen work, plus some handy key to switch between them in one touch - on my Linux-driven Dell laptop it's currently a Windows key ;-) ). Funny is that even though I can touch-type, I would not be able to draw either English or Russian keyboard layout from my head :)</description>
		<content:encoded><![CDATA[<p>Thanks for the interesting and funny article!</p>
<p>Regarding the bytypalism: I am a native Russian speaking SW engineer living abroad, and I can quickly touch-type on both Cyrillic and English International keyboards (these two layouts I always have installed on the PC where I happen work, plus some handy key to switch between them in one touch &#8211; on my Linux-driven Dell laptop it&#8217;s currently a Windows key <img src='http://bertrandmeyer.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ). Funny is that even though I can touch-type, I would not be able to draw either English or Russian keyboard layout from my head <img src='http://bertrandmeyer.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Nastiness in computer science by kasajian</title>
		<link>http://bertrandmeyer.com/2011/08/27/nastiness-in-computer-science/comment-page-1/#comment-352</link>
		<dc:creator>kasajian</dc:creator>
		<pubDate>Tue, 30 Aug 2011 01:32:36 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=1858#comment-352</guid>
		<description>Look at it this way, imagine these were entries in the field of Physics?  How would such boorish answers be accepted by the community?  No doubt there we be quite harsh words.  The academia in Physics are the rock-stars of their field.  Those who are experts in the field consider their academic background absolutely essential.   However, too many computer programmers have no computer-science background at all, and if they do, it's most irrelevant because of the type of work that they do creating line-of-business applications.  Methods and systems are continuously reinvented because they don't have to the background to know what has been done in the past, and future generations grow up using these systems, half of which ignore and start their own fork of work.</description>
		<content:encoded><![CDATA[<p>Look at it this way, imagine these were entries in the field of Physics?  How would such boorish answers be accepted by the community?  No doubt there we be quite harsh words.  The academia in Physics are the rock-stars of their field.  Those who are experts in the field consider their academic background absolutely essential.   However, too many computer programmers have no computer-science background at all, and if they do, it&#8217;s most irrelevant because of the type of work that they do creating line-of-business applications.  Methods and systems are continuously reinvented because they don&#8217;t have to the background to know what has been done in the past, and future generations grow up using these systems, half of which ignore and start their own fork of work.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Nastiness in computer science by Rob Whitrow</title>
		<link>http://bertrandmeyer.com/2011/08/27/nastiness-in-computer-science/comment-page-1/#comment-351</link>
		<dc:creator>Rob Whitrow</dc:creator>
		<pubDate>Mon, 29 Aug 2011 17:29:18 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=1858#comment-351</guid>
		<description>One of the problems refereeing papers in CS is the reproduction of results. This is illustrated by the quotes given which are no more than opinions. Many in CS work in the discipline of information: its nature; its application; structuring it; processing it. Endless arguments are heard on which language is 'best', which operating system is most secure - I 
often wonder how many ever use these facilities to solve problems.

In the Natural Sciences people experiment and compare with theory and reproduction of results rather than opinion is essential. The boorishness of comment is thus reduced although jealousy and ambition is detectable.

I am aware that for some in CS, application to solving problems in the natural world is not seen as quite so respectable. However for myself working for many years in pattern recognition it has been a real joy, although I have not as a result published in CS and not been subject to the negativity articulated in this article!</description>
		<content:encoded><![CDATA[<p>One of the problems refereeing papers in CS is the reproduction of results. This is illustrated by the quotes given which are no more than opinions. Many in CS work in the discipline of information: its nature; its application; structuring it; processing it. Endless arguments are heard on which language is &#8216;best&#8217;, which operating system is most secure &#8211; I<br />
often wonder how many ever use these facilities to solve problems.</p>
<p>In the Natural Sciences people experiment and compare with theory and reproduction of results rather than opinion is essential. The boorishness of comment is thus reduced although jealousy and ambition is detectable.</p>
<p>I am aware that for some in CS, application to solving problems in the natural world is not seen as quite so respectable. However for myself working for many years in pattern recognition it has been a real joy, although I have not as a result published in CS and not been subject to the negativity articulated in this article!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Nastiness in computer science by Nasty computer scientists | cartesian product</title>
		<link>http://bertrandmeyer.com/2011/08/27/nastiness-in-computer-science/comment-page-1/#comment-350</link>
		<dc:creator>Nasty computer scientists | cartesian product</dc:creator>
		<pubDate>Mon, 29 Aug 2011 16:37:41 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=1858#comment-350</guid>
		<description>[...] Bertrand Meyer has another possible explanation – it is because computer scientists are too rude about one another. This extract says it [...]</description>
		<content:encoded><![CDATA[<p>[...] Bertrand Meyer has another possible explanation &#8211; it is because computer scientists are too rude about one another. This extract says it [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Nastiness in computer science by opwernby</title>
		<link>http://bertrandmeyer.com/2011/08/27/nastiness-in-computer-science/comment-page-1/#comment-349</link>
		<dc:creator>opwernby</dc:creator>
		<pubDate>Mon, 29 Aug 2011 16:28:29 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=1858#comment-349</guid>
		<description>I think part of it is the subject matter vs. the amount of work one generally has to do, or in other words, the people who get to review these things are doing so because they have no other work to do, i.e. they probably don't understand 90% of what they're looking at, so unless it's written in a particularly engaging way, they'll skip most of it and base their opinion solely upon how interested they were in reading it (which, for the more technically-oriented submissions, will be not at all). Computer scientists, and programmers in particular, tend to be nasty by default because most of the time they occupy the sort of mental level not accessible to the large majority of the population, and thus they tend to look down on pretty much everyone else. Now imagine you're someone like that who, in reality, isn't that bright and doesn't understand most of the ideas percolating around the mental strata you're supposed to be occupying: I think at that point it becomes reasonably easy to understand their attitude.</description>
		<content:encoded><![CDATA[<p>I think part of it is the subject matter vs. the amount of work one generally has to do, or in other words, the people who get to review these things are doing so because they have no other work to do, i.e. they probably don&#8217;t understand 90% of what they&#8217;re looking at, so unless it&#8217;s written in a particularly engaging way, they&#8217;ll skip most of it and base their opinion solely upon how interested they were in reading it (which, for the more technically-oriented submissions, will be not at all). Computer scientists, and programmers in particular, tend to be nasty by default because most of the time they occupy the sort of mental level not accessible to the large majority of the population, and thus they tend to look down on pretty much everyone else. Now imagine you&#8217;re someone like that who, in reality, isn&#8217;t that bright and doesn&#8217;t understand most of the ideas percolating around the mental strata you&#8217;re supposed to be occupying: I think at that point it becomes reasonably easy to understand their attitude.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on All Bugs Great and Small by Bertrand Meyer</title>
		<link>http://bertrandmeyer.com/2011/08/23/all-bugs-large-and-small/comment-page-1/#comment-342</link>
		<dc:creator>Bertrand Meyer</dc:creator>
		<pubDate>Wed, 24 Aug 2011 19:44:54 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=1827#comment-342</guid>
		<description>I am including here, with his permission, a comment received separately from Capers Jones.

---------------------------------
Bertrand,

If testing is the only defect removal activity without prior inspections or static analysis, you will find many bugs but quality will be poor. Testing alone seldom tops 85% in cumulative defect removal efficiency so 15% of your bugs will be delivered to clients.

If you do inspections and static analysis prior to testing, you will find very few bugs during testing because most were already eliminated. Your cumulative defect removal efficiency will be above 95% and possibly approach 99%.

I sent some spreadsheets that show the differences between high quality and low quality. If others want to see them send an email to capers.jones3@gmail.com with a valid return.

Most forms of testing only find about 35% or one bug out of three. You need 8 to 12 test stages at that low level of efficiency. Inspections and static analysis, on the other hand, run from 65% to more than 85% in defect removal efficiency.

Regards,
Capers Jones 
---------------------</description>
		<content:encoded><![CDATA[<p>I am including here, with his permission, a comment received separately from Capers Jones.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Bertrand,</p>
<p>If testing is the only defect removal activity without prior inspections or static analysis, you will find many bugs but quality will be poor. Testing alone seldom tops 85% in cumulative defect removal efficiency so 15% of your bugs will be delivered to clients.</p>
<p>If you do inspections and static analysis prior to testing, you will find very few bugs during testing because most were already eliminated. Your cumulative defect removal efficiency will be above 95% and possibly approach 99%.</p>
<p>I sent some spreadsheets that show the differences between high quality and low quality. If others want to see them send an email to <a href="mailto:capers.jones3@gmail.com">capers.jones3@gmail.com</a> with a valid return.</p>
<p>Most forms of testing only find about 35% or one bug out of three. You need 8 to 12 test stages at that low level of efficiency. Inspections and static analysis, on the other hand, run from 65% to more than 85% in defect removal efficiency.</p>
<p>Regards,<br />
Capers Jones<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on All Bugs Great and Small by Craig Stuntz</title>
		<link>http://bertrandmeyer.com/2011/08/23/all-bugs-large-and-small/comment-page-1/#comment-341</link>
		<dc:creator>Craig Stuntz</dc:creator>
		<pubDate>Tue, 23 Aug 2011 13:42:22 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=1827#comment-341</guid>
		<description>That's exactly right. Here's another, recent example: http://googleonlinesecurity.blogspot.com/2011/08/fuzzing-at-scale.html</description>
		<content:encoded><![CDATA[<p>That&#8217;s exactly right. Here&#8217;s another, recent example: <a href="http://googleonlinesecurity.blogspot.com/2011/08/fuzzing-at-scale.html" rel="nofollow">http://googleonlinesecurity.blogspot.com/2011/08/fuzzing-at-scale.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on All Bugs Great and Small by ewernli</title>
		<link>http://bertrandmeyer.com/2011/08/23/all-bugs-large-and-small/comment-page-1/#comment-340</link>
		<dc:creator>ewernli</dc:creator>
		<pubDate>Tue, 23 Aug 2011 10:16:43 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=1827#comment-340</guid>
		<description>This reminds me of the post by Joshua Bloch about the fact that most implementations of binary searches are buggy, because they fail to properly address overflow when computing "mid =(low + high) / 2". http://googleresearch.blogspot.com/2006/06/extra-extra-read-all-about-it-nearly.html</description>
		<content:encoded><![CDATA[<p>This reminds me of the post by Joshua Bloch about the fact that most implementations of binary searches are buggy, because they fail to properly address overflow when computing &#8220;mid =(low + high) / 2&#8243;. <a href="http://googleresearch.blogspot.com/2006/06/extra-extra-read-all-about-it-nearly.html" rel="nofollow">http://googleresearch.blogspot.com/2006/06/extra-extra-read-all-about-it-nearly.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on All Bugs Great and Small by Arrogant referees eventually retire and good papers eventually get published | My Research Rants</title>
		<link>http://bertrandmeyer.com/2011/08/23/all-bugs-large-and-small/comment-page-1/#comment-339</link>
		<dc:creator>Arrogant referees eventually retire and good papers eventually get published | My Research Rants</dc:creator>
		<pubDate>Tue, 23 Aug 2011 08:38:26 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=1827#comment-339</guid>
		<description>[...]  Arrogant referees eventually retire and good papers eventually get published [...]</description>
		<content:encoded><![CDATA[<p>[...]  Arrogant referees eventually retire and good papers eventually get published [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Towards a Calculus of Object Programs by helmut.brandl</title>
		<link>http://bertrandmeyer.com/2011/07/13/towards-a-calculus-of-object-programs/comment-page-1/#comment-330</link>
		<dc:creator>helmut.brandl</dc:creator>
		<pubDate>Sun, 07 Aug 2011 15:41:58 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=1772#comment-330</guid>
		<description>Another axiom which is not valid in general:

On page 12 you state

i; Current = Current         -- for any instruction i    CUR/4

with the explanation that no statement can change the value of Current. CUR/4 is obviously true for objects of reference type with "=" expressing reference equality.

Now what happens if Current refers to an expanded type and "i" is an instruction which changes an attribute of that expanded type object. Unless you assume immutability for expanded type objects CUR/4 is already invalid for expanded type objects, since "=" means object equality for expanded type objects.

But since you explained that "=" must be interpreted as object equality in general CUR/4 is not even valid for reference type objects. Any unqualified command might change the content of the current object which is therefore no longer equal (object equality) to its state before the command.</description>
		<content:encoded><![CDATA[<p>Another axiom which is not valid in general:</p>
<p>On page 12 you state</p>
<p>i; Current = Current         &#8212; for any instruction i    CUR/4</p>
<p>with the explanation that no statement can change the value of Current. CUR/4 is obviously true for objects of reference type with &#8220;=&#8221; expressing reference equality.</p>
<p>Now what happens if Current refers to an expanded type and &#8220;i&#8221; is an instruction which changes an attribute of that expanded type object. Unless you assume immutability for expanded type objects CUR/4 is already invalid for expanded type objects, since &#8220;=&#8221; means object equality for expanded type objects.</p>
<p>But since you explained that &#8220;=&#8221; must be interpreted as object equality in general CUR/4 is not even valid for reference type objects. Any unqualified command might change the content of the current object which is therefore no longer equal (object equality) to its state before the command.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Towards a Calculus of Object Programs by helmut.brandl</title>
		<link>http://bertrandmeyer.com/2011/07/13/towards-a-calculus-of-object-programs/comment-page-1/#comment-329</link>
		<dc:creator>helmut.brandl</dc:creator>
		<pubDate>Sun, 07 Aug 2011 15:02:32 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=1772#comment-329</guid>
		<description>From our previous discussion I conclude that I have not yet made my point sufficiently clear. Since the point is subtle, it might require more explanation.

In your object calculus you stated the axiom

(x:=e); x    =   e    (AX/5)

i.e. after the assignment "x:=e" evaluating "x" yields the same as evaluating "e" in the context before the assignment ("e" is an arbitrary expression). On the surface this axiom is true because of the obvious fact that if you assign something to a variable, the variable will "be equal" to the expression which is assigned to it after the assignment.


Assuming the current semantics of "=" in Eiffel, which is reference equality for reference type objects and object equality for expanded type objects the "problem" of AX/5 is not very difficult to see. Any expression returning a newly created object invalidates it. In my first example I have used manifest strings which implicitely create new objects. The counter example is very simple

(x:="any string"); x    =  "any string"   -- invalid!

is not true, because the two invocations of "any string" create two individual strings, each having an own reference. The two references are definitely different.

This shortcoming of my simple counter example can be remedied by assuming object equality for "=", because the two invocations of "any string" yield equal strings. So let us assume "=" expresses object equality (i.e. interpret it as "~" of ECMA Eiffel which is based in "is_equal" and not on "is_deep_equal").

In that case one has to dig deeper to uncover the problem. Since "=" now means object equality, we need a different operator to express reference equality. In the sequel I use "==" to express reference equality (I assume that you keep a notion of reference equality in Eiffel).

class T inherit ANY redefine default_create, is_equal feature 
   s:STRING
   default_create do s:="any string" end
   is_equal(o:like Current): BOOLEAN  do Result := (s == o.s) end
end

Note that two different objects of type T can never be equal with respect to object equality!

Now it is easy to construct the counter example:

   (x:= create T); x   =  create T           -- invalid!

is not valid. The only escape would be to assign to "=" the semantics of deep equality. But you claimed that plain equality is sufficient.

To recapitulate:

In AX/5 "(x:=e); x  =  e" the problem is not the assignment. The assigment by itself is pure. It doesn't modify anything except the contents of the variable (local or attribute) assigned to. The problem is the expression. As soon as object creation in an expression is involved the assertion

e = e          -- not valid in general!

is not longer true in general. Different invocations can create different objects with different attributes etc. That is the reason why you cannot do weakest precondition calculus in its classical form with object oriented SW. The corresponding axiom to AX/5, the so called assignment axiom

wp("x:=e",R) = R[x:=e]

where "R[x:=e]" means textual substitution of all occurrences of "x" by the expression "e" requires referential transparency of expressions which is not given for expressions involving object creations.</description>
		<content:encoded><![CDATA[<p>From our previous discussion I conclude that I have not yet made my point sufficiently clear. Since the point is subtle, it might require more explanation.</p>
<p>In your object calculus you stated the axiom</p>
<p>(x:=e); x    =   e    (AX/5)</p>
<p>i.e. after the assignment &#8220;x:=e&#8221; evaluating &#8220;x&#8221; yields the same as evaluating &#8220;e&#8221; in the context before the assignment (&#8220;e&#8221; is an arbitrary expression). On the surface this axiom is true because of the obvious fact that if you assign something to a variable, the variable will &#8220;be equal&#8221; to the expression which is assigned to it after the assignment.</p>
<p>Assuming the current semantics of &#8220;=&#8221; in Eiffel, which is reference equality for reference type objects and object equality for expanded type objects the &#8220;problem&#8221; of AX/5 is not very difficult to see. Any expression returning a newly created object invalidates it. In my first example I have used manifest strings which implicitely create new objects. The counter example is very simple</p>
<p>(x:=&#8221;any string&#8221;); x    =  &#8220;any string&#8221;   &#8212; invalid!</p>
<p>is not true, because the two invocations of &#8220;any string&#8221; create two individual strings, each having an own reference. The two references are definitely different.</p>
<p>This shortcoming of my simple counter example can be remedied by assuming object equality for &#8220;=&#8221;, because the two invocations of &#8220;any string&#8221; yield equal strings. So let us assume &#8220;=&#8221; expresses object equality (i.e. interpret it as &#8220;~&#8221; of ECMA Eiffel which is based in &#8220;is_equal&#8221; and not on &#8220;is_deep_equal&#8221;).</p>
<p>In that case one has to dig deeper to uncover the problem. Since &#8220;=&#8221; now means object equality, we need a different operator to express reference equality. In the sequel I use &#8220;==&#8221; to express reference equality (I assume that you keep a notion of reference equality in Eiffel).</p>
<p>class T inherit ANY redefine default_create, is_equal feature<br />
   s:STRING<br />
   default_create do s:=&#8221;any string&#8221; end<br />
   is_equal(o:like Current): BOOLEAN  do Result := (s == o.s) end<br />
end</p>
<p>Note that two different objects of type T can never be equal with respect to object equality!</p>
<p>Now it is easy to construct the counter example:</p>
<p>   (x:= create T); x   =  create T           &#8212; invalid!</p>
<p>is not valid. The only escape would be to assign to &#8220;=&#8221; the semantics of deep equality. But you claimed that plain equality is sufficient.</p>
<p>To recapitulate:</p>
<p>In AX/5 &#8220;(x:=e); x  =  e&#8221; the problem is not the assignment. The assigment by itself is pure. It doesn&#8217;t modify anything except the contents of the variable (local or attribute) assigned to. The problem is the expression. As soon as object creation in an expression is involved the assertion</p>
<p>e = e          &#8212; not valid in general!</p>
<p>is not longer true in general. Different invocations can create different objects with different attributes etc. That is the reason why you cannot do weakest precondition calculus in its classical form with object oriented SW. The corresponding axiom to AX/5, the so called assignment axiom</p>
<p>wp(&#8220;x:=e&#8221;,R) = R[x:=e]</p>
<p>where &#8220;R[x:=e]&#8221; means textual substitution of all occurrences of &#8220;x&#8221; by the expression &#8220;e&#8221; requires referential transparency of expressions which is not given for expressions involving object creations.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Towards a Calculus of Object Programs by Bertrand Meyer</title>
		<link>http://bertrandmeyer.com/2011/07/13/towards-a-calculus-of-object-programs/comment-page-1/#comment-328</link>
		<dc:creator>Bertrand Meyer</dc:creator>
		<pubDate>Sun, 07 Aug 2011 00:33:28 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=1772#comment-328</guid>
		<description>Reference case: reference equality implies object equality.
Expanded case: assignment causes a copy; `copy' has `is_equal' in its postcondition.</description>
		<content:encoded><![CDATA[<p>Reference case: reference equality implies object equality.<br />
Expanded case: assignment causes a copy; `copy&#8217; has `is_equal&#8217; in its postcondition.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Towards a Calculus of Object Programs by helmut.brandl</title>
		<link>http://bertrandmeyer.com/2011/07/13/towards-a-calculus-of-object-programs/comment-page-1/#comment-327</link>
		<dc:creator>helmut.brandl</dc:creator>
		<pubDate>Sat, 06 Aug 2011 23:09:34 +0000</pubDate>
		<guid isPermaLink="false">http://bertrandmeyer.com/?p=1772#comment-327</guid>
		<description>If "=" means plain object equality, then my original comment "Your axiom AX/5 (x:=e); x = e is not true generally" is still valid. It is easy to construct a type T and an expression e of type T, where

- e creates some attributes of the returned object (or subattributes or subsubattributes)

- and is_equal requires the attributes to be identical in order to return true.

To the best of my knowledge there is no rule with prevents me from doing that. Maybe you have such a rule in mind.</description>
		<content:encoded><![CDATA[<p>If &#8220;=&#8221; means plain object equality, then my original comment &#8220;Your axiom AX/5 (x:=e); x = e is not true generally&#8221; is still valid. It is easy to construct a type T and an expression e of type T, where</p>
<p>- e creates some attributes of the returned object (or subattributes or subsubattributes)</p>
<p>- and is_equal requires the attributes to be identical in order to return true.</p>
<p>To the best of my knowledge there is no rule with prevents me from doing that. Maybe you have such a rule in mind.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

