<?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: A hacker&#8217;s hacker</title>
	<atom:link href="http://www.scottaaronson.com/blog/?feed=rss2&#038;p=803" rel="self" type="application/rss+xml" />
	<link>http://www.scottaaronson.com/blog/?p=803</link>
	<description>The Blog of Scott Aaronson</description>
	<lastBuildDate>Sat, 18 May 2013 16:31:07 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
	<item>
		<title>By: Raoul Ohio</title>
		<link>http://www.scottaaronson.com/blog/?p=803#comment-30802</link>
		<dc:creator>Raoul Ohio</dc:creator>
		<pubDate>Fri, 04 Nov 2011 22:55:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.scottaaronson.com/blog/?p=803#comment-30802</guid>
		<description><![CDATA[Why debate programming languages when you can play with the Collatz Conjecture (3n + 1 problem)? Here is a cool graphical representation:

http://www.jasondavies.com/collatz-graph/

(Thanks to GMSV for the tip)]]></description>
		<content:encoded><![CDATA[<p>Why debate programming languages when you can play with the Collatz Conjecture (3n + 1 problem)? Here is a cool graphical representation:</p>
<p><a href="http://www.jasondavies.com/collatz-graph/" rel="nofollow">http://www.jasondavies.com/collatz-graph/</a></p>
<p>(Thanks to GMSV for the tip)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vadim P.</title>
		<link>http://www.scottaaronson.com/blog/?p=803#comment-30437</link>
		<dc:creator>Vadim P.</dc:creator>
		<pubDate>Fri, 28 Oct 2011 15:15:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.scottaaronson.com/blog/?p=803#comment-30437</guid>
		<description><![CDATA[Lou,

I think the fact that a lot of the valid issues you raised with C *were* addressed in later languages like Java and C# tells me that the field has been taking these things seriously.

C is 40 years old and, as Raoul mentioned, it&#039;s hard to retrofit an old programming language because of the desire to be able to compile old programs with new compilers.]]></description>
		<content:encoded><![CDATA[<p>Lou,</p>
<p>I think the fact that a lot of the valid issues you raised with C *were* addressed in later languages like Java and C# tells me that the field has been taking these things seriously.</p>
<p>C is 40 years old and, as Raoul mentioned, it&#8217;s hard to retrofit an old programming language because of the desire to be able to compile old programs with new compilers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Raoul Ohio</title>
		<link>http://www.scottaaronson.com/blog/?p=803#comment-30436</link>
		<dc:creator>Raoul Ohio</dc:creator>
		<pubDate>Fri, 28 Oct 2011 15:05:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.scottaaronson.com/blog/?p=803#comment-30436</guid>
		<description><![CDATA[Lou,

In aircraft design and pilot standards, you can make an upgrade as soon as the need is clear.

Contrast this with programming languages, where it is essential that they stay the same: a program written last year should work the same this year. 

For most applications, C++ is a much better choice than C. Then, if you want bound checked arrays, you can use the STL vector template class. The C++ committee puts a huge effort into carefully growing the language with extensions that do not break existing code. The new version: C++0x has just been finalized. x turns out to be 0xB, so they are calling it C++11.]]></description>
		<content:encoded><![CDATA[<p>Lou,</p>
<p>In aircraft design and pilot standards, you can make an upgrade as soon as the need is clear.</p>
<p>Contrast this with programming languages, where it is essential that they stay the same: a program written last year should work the same this year. </p>
<p>For most applications, C++ is a much better choice than C. Then, if you want bound checked arrays, you can use the STL vector template class. The C++ committee puts a huge effort into carefully growing the language with extensions that do not break existing code. The new version: C++0x has just been finalized. x turns out to be 0xB, so they are calling it C++11.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lou Scheffer</title>
		<link>http://www.scottaaronson.com/blog/?p=803#comment-30408</link>
		<dc:creator>Lou Scheffer</dc:creator>
		<pubDate>Fri, 28 Oct 2011 02:05:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.scottaaronson.com/blog/?p=803#comment-30408</guid>
		<description><![CDATA[At the risk of going even further off topic, the reason the deficiencies in C strike such a chord in me is that they are emblematic of problems of the field in general.

*Ignoring human interface issues.  Ultimately these tools are to be used by humans, and there is a huge body of knowledge on the types of mistakes people make.   Other fields take this seriously, but in CS this is largely ignored. When programmers confuse bools, ints, and floats, language developers claim it&#039;s a feature.  When pilots confused the knobs for landing gear and flaps, now the knobs must feel different. ( http://ecfr.gpoaccess.gov/cgi/t/text/text-idx?c=ecfr&amp;rgn=div5&amp;view=text&amp;node=14:1.0.1.3.11&amp;idno=14#14:1.0.1.3.11.4.177.48 )

*Not fixing known problems.  Other fields find problems, then fix them so at the very least the *same exact problem* should not occur again.  Here&#039;s another example from aeronautics - the statement &quot;The last confirmed civilian plane crash that was directly attributed to lightning in the U.S. was in 1967, when lightning caused a catastrophic fuel tank explosion&quot;.   How long do you think it will be until we can say &quot;the last known security problem caused by buffer overflow was 40+ years ago&quot;?  How about never at the rate we&#039;re improving?

* Optimizing for objectives that make no sense, or at the very least no longer make sense.  As an example, not checking array bounds in the interest of speed.  Sure, a faster program is nice, but in almost all cases it is not nearly as important as an undetected bug.   Even in the rare programs where speed *is* critical, probably 99% of all array references could be checked with no user visible speed degradation and a big improvement in security.  On the remaining 1% it might make sense to turn checking off.  But even recent developments such as C++&#039;s  STL default the other way.

In general, compared to other engineering fields, the practical side of computer science feels very unprofessional.]]></description>
		<content:encoded><![CDATA[<p>At the risk of going even further off topic, the reason the deficiencies in C strike such a chord in me is that they are emblematic of problems of the field in general.</p>
<p>*Ignoring human interface issues.  Ultimately these tools are to be used by humans, and there is a huge body of knowledge on the types of mistakes people make.   Other fields take this seriously, but in CS this is largely ignored. When programmers confuse bools, ints, and floats, language developers claim it&#8217;s a feature.  When pilots confused the knobs for landing gear and flaps, now the knobs must feel different. ( <a href="http://ecfr.gpoaccess.gov/cgi/t/text/text-idx?c=ecfr&#038;rgn=div5&#038;view=text&#038;node=14:1.0.1.3.11&#038;idno=14#14:1.0.1.3.11.4.177.48" rel="nofollow">http://ecfr.gpoaccess.gov/cgi/t/text/text-idx?c=ecfr&#038;rgn=div5&#038;view=text&#038;node=14:1.0.1.3.11&#038;idno=14#14:1.0.1.3.11.4.177.48</a> )</p>
<p>*Not fixing known problems.  Other fields find problems, then fix them so at the very least the *same exact problem* should not occur again.  Here&#8217;s another example from aeronautics &#8211; the statement &#8220;The last confirmed civilian plane crash that was directly attributed to lightning in the U.S. was in 1967, when lightning caused a catastrophic fuel tank explosion&#8221;.   How long do you think it will be until we can say &#8220;the last known security problem caused by buffer overflow was 40+ years ago&#8221;?  How about never at the rate we&#8217;re improving?</p>
<p>* Optimizing for objectives that make no sense, or at the very least no longer make sense.  As an example, not checking array bounds in the interest of speed.  Sure, a faster program is nice, but in almost all cases it is not nearly as important as an undetected bug.   Even in the rare programs where speed *is* critical, probably 99% of all array references could be checked with no user visible speed degradation and a big improvement in security.  On the remaining 1% it might make sense to turn checking off.  But even recent developments such as C++&#8217;s  STL default the other way.</p>
<p>In general, compared to other engineering fields, the practical side of computer science feels very unprofessional.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike</title>
		<link>http://www.scottaaronson.com/blog/?p=803#comment-30395</link>
		<dc:creator>Mike</dc:creator>
		<pubDate>Thu, 27 Oct 2011 19:44:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.scottaaronson.com/blog/?p=803#comment-30395</guid>
		<description><![CDATA[Well, I&#039;m disappointed, you should release it along with your paper -- we can sort through it.  :)]]></description>
		<content:encoded><![CDATA[<p>Well, I&#8217;m disappointed, you should release it along with your paper &#8212; we can sort through it.  <img src='http://www.scottaaronson.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott</title>
		<link>http://www.scottaaronson.com/blog/?p=803#comment-30347</link>
		<dc:creator>Scott</dc:creator>
		<pubDate>Wed, 26 Oct 2011 17:17:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.scottaaronson.com/blog/?p=803#comment-30347</guid>
		<description><![CDATA[Mike #29:

&lt;i&gt;Completely off-topic: Scott, when is your infamous video from Setting Time Aright going to be posted?&lt;/i&gt;

I decided that I didn&#039;t want to make it publicly available---not for the reasons you&#039;d think :-), but because I completely ran out of time, so the talk didn&#039;t end up being a good summary of this point of view.  Within a month, though, I&#039;m planning to write a paper expanding on that talk, and will blog that as soon as it&#039;s available.

&lt;i&gt;This&lt;/i&gt; week, though, 98% of my waking hours are being directed towards the STOC deadline.]]></description>
		<content:encoded><![CDATA[<p>Mike #29:</p>
<p><i>Completely off-topic: Scott, when is your infamous video from Setting Time Aright going to be posted?</i></p>
<p>I decided that I didn&#8217;t want to make it publicly available&#8212;not for the reasons you&#8217;d think <img src='http://www.scottaaronson.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> , but because I completely ran out of time, so the talk didn&#8217;t end up being a good summary of this point of view.  Within a month, though, I&#8217;m planning to write a paper expanding on that talk, and will blog that as soon as it&#8217;s available.</p>
<p><i>This</i> week, though, 98% of my waking hours are being directed towards the STOC deadline.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott</title>
		<link>http://www.scottaaronson.com/blog/?p=803#comment-30344</link>
		<dc:creator>Scott</dc:creator>
		<pubDate>Wed, 26 Oct 2011 17:04:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.scottaaronson.com/blog/?p=803#comment-30344</guid>
		<description><![CDATA[Greg #27: I can&#039;t help but think Ritchie would be amused to see a post about his passing turning into yet another programming language flamewar.]]></description>
		<content:encoded><![CDATA[<p>Greg #27: I can&#8217;t help but think Ritchie would be amused to see a post about his passing turning into yet another programming language flamewar.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Raoul Ohio</title>
		<link>http://www.scottaaronson.com/blog/?p=803#comment-30280</link>
		<dc:creator>Raoul Ohio</dc:creator>
		<pubDate>Wed, 26 Oct 2011 05:18:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.scottaaronson.com/blog/?p=803#comment-30280</guid>
		<description><![CDATA[GK,

One nice thing about Pascal is that it is easy to understand. One could argue that it still is an excellent choice for a first language for students to learn, if only to get in the habit of continuously learning new languages.

A couple decades ago, I developed a Borland Pascal program that drew fractals based on the domain of attraction for functions under Newton&#039;s method in the complex plane. I would love to be able to still run it for fun. Unfortunately, I included some assembly code to figure out what (1990 era) graphics card was installed (to enable a menu of graphic mode choices). I assume that is why it crashes any computer when you try to run it is a DOS box. Oops! 

Another BP program implements and compares every numerical method for differential equations I could find, plus a couple dozen of my own. I have considered trying a &quot;Pascal to C&quot; translator on this code, but what are the chances that would work? I dropped off a half dozen old computers at a recycling center last week, so I hope I still have that program!]]></description>
		<content:encoded><![CDATA[<p>GK,</p>
<p>One nice thing about Pascal is that it is easy to understand. One could argue that it still is an excellent choice for a first language for students to learn, if only to get in the habit of continuously learning new languages.</p>
<p>A couple decades ago, I developed a Borland Pascal program that drew fractals based on the domain of attraction for functions under Newton&#8217;s method in the complex plane. I would love to be able to still run it for fun. Unfortunately, I included some assembly code to figure out what (1990 era) graphics card was installed (to enable a menu of graphic mode choices). I assume that is why it crashes any computer when you try to run it is a DOS box. Oops! </p>
<p>Another BP program implements and compares every numerical method for differential equations I could find, plus a couple dozen of my own. I have considered trying a &#8220;Pascal to C&#8221; translator on this code, but what are the chances that would work? I dropped off a half dozen old computers at a recycling center last week, so I hope I still have that program!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Greg Kuperberg</title>
		<link>http://www.scottaaronson.com/blog/?p=803#comment-30247</link>
		<dc:creator>Greg Kuperberg</dc:creator>
		<pubDate>Tue, 25 Oct 2011 22:58:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.scottaaronson.com/blog/?p=803#comment-30247</guid>
		<description><![CDATA[Vadim - Maybe you are right.  Ritchie saw plenty of this belly-aching when he was alive, and it sounds like he didn&#039;t even really mind.  Do you want to know my personal beef with C?  No array bounds checking.  What a !@#$-ing nightmare. And more seriously, the source of countless software security holes.  Oh well!

Even so, at some early moment in my programming experience, I switched from Pascal to C as fast as I could.  As the joke goes, if C is a write-only language, Pascal is a read-only language.  (Actually the first language that I learned was BASIC, while the last one was Python.)]]></description>
		<content:encoded><![CDATA[<p>Vadim &#8211; Maybe you are right.  Ritchie saw plenty of this belly-aching when he was alive, and it sounds like he didn&#8217;t even really mind.  Do you want to know my personal beef with C?  No array bounds checking.  What a !@#$-ing nightmare. And more seriously, the source of countless software security holes.  Oh well!</p>
<p>Even so, at some early moment in my programming experience, I switched from Pascal to C as fast as I could.  As the joke goes, if C is a write-only language, Pascal is a read-only language.  (Actually the first language that I learned was BASIC, while the last one was Python.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vadim P.</title>
		<link>http://www.scottaaronson.com/blog/?p=803#comment-30223</link>
		<dc:creator>Vadim P.</dc:creator>
		<pubDate>Tue, 25 Oct 2011 19:49:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.scottaaronson.com/blog/?p=803#comment-30223</guid>
		<description><![CDATA[Not to hijack this post further (is that even possible?) but Turing Award winner John McCarthy, inventor of LISP and AI pioneer, also just passed away. Rough month for computer science.]]></description>
		<content:encoded><![CDATA[<p>Not to hijack this post further (is that even possible?) but Turing Award winner John McCarthy, inventor of LISP and AI pioneer, also just passed away. Rough month for computer science.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
