<?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: Writes large correct programs</title>
	<atom:link href="http://www.johndcook.com/blog/2008/09/19/writes-large-correct-programs/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.johndcook.com/blog/2008/09/19/writes-large-correct-programs/</link>
	<description>The blog of John D. Cook</description>
	<lastBuildDate>Sat, 11 Feb 2012 01:10:06 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: New programmer&#8217;s survival manual &#8212; The Endeavour</title>
		<link>http://www.johndcook.com/blog/2008/09/19/writes-large-correct-programs/comment-page-1/#comment-121726</link>
		<dc:creator>New programmer&#8217;s survival manual &#8212; The Endeavour</dc:creator>
		<pubDate>Tue, 13 Dec 2011 13:02:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=401#comment-121726</guid>
		<description>[...] science degree doesn&#8217;t prepare you to be a programmer. Here&#8217;s an excerpt from a blog post I wrote comparing computer scientists and programmers: I had a conversation yesterday with someone [...]</description>
		<content:encoded><![CDATA[<p>[...] science degree doesn&#8217;t prepare you to be a programmer. Here&#8217;s an excerpt from a blog post I wrote comparing computer scientists and programmers: I had a conversation yesterday with someone [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Norris&#8217; number &#8212; The Endeavour</title>
		<link>http://www.johndcook.com/blog/2008/09/19/writes-large-correct-programs/comment-page-1/#comment-116597</link>
		<dc:creator>Norris&#8217; number &#8212; The Endeavour</dc:creator>
		<pubDate>Tue, 22 Nov 2011 13:01:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=401#comment-116597</guid>
		<description>[...] Writes large correct programs Little programs versus big programs Experienced programmers and lines of code [...]</description>
		<content:encoded><![CDATA[<p>[...] Writes large correct programs Little programs versus big programs Experienced programmers and lines of code [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Writes large correct programs &#124; Smile and let go</title>
		<link>http://www.johndcook.com/blog/2008/09/19/writes-large-correct-programs/comment-page-1/#comment-94620</link>
		<dc:creator>Writes large correct programs &#124; Smile and let go</dc:creator>
		<pubDate>Mon, 25 Jul 2011 21:22:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=401#comment-94620</guid>
		<description>[...] http://www.johndcook.com/blog/2008/09/19/writes-large-correct-programs/   This entry was posted in Links. Bookmark the permalink.    &#8592; SQL Server “Denali”: New&#160;Certifications   LikeBe the first to like this post. [...]</description>
		<content:encoded><![CDATA[<p>[...] <a href="http://www.johndcook.com/blog/2008/09/19/writes-large-correct-programs/" rel="nofollow">http://www.johndcook.com/blog/2008/09/19/writes-large-correct-programs/</a>   This entry was posted in Links. Bookmark the permalink.    &larr; SQL Server “Denali”: New&nbsp;Certifications   LikeBe the first to like this post. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: quantum</title>
		<link>http://www.johndcook.com/blog/2008/09/19/writes-large-correct-programs/comment-page-1/#comment-93519</link>
		<dc:creator>quantum</dc:creator>
		<pubDate>Mon, 18 Jul 2011 19:59:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=401#comment-93519</guid>
		<description>Great articles. With every profession, there are always multiples of casual observers who remain on the periphery simply because there&#039;s an esoteric haze covering it. Everywhere you look there&#039;s huge lines of jargon and specialized language. Its refreshing to read about a profession put in relateable terms. 

I remember when I was younger and was just learning about programming (turbo pascal), and reflected on the most complex program I wrote being about 150 lines. And then some guys started talking about how the operating system (windows) was made up of 100&#039;s of thousands of lines of code, and then came hyperboles of how much a single programmer (bill gates) contributed to it. I think at that moment I lost interest in programming. I thought there couldn&#039;t have been a place for me if there&#039;s such a skill difference between me and the best in the field. 

I always suspected that there were many programmers out there who struggle with mounting complexity. Its interesting to hear an insider comment on the widely differing talents within the programming community.</description>
		<content:encoded><![CDATA[<p>Great articles. With every profession, there are always multiples of casual observers who remain on the periphery simply because there&#8217;s an esoteric haze covering it. Everywhere you look there&#8217;s huge lines of jargon and specialized language. Its refreshing to read about a profession put in relateable terms. </p>
<p>I remember when I was younger and was just learning about programming (turbo pascal), and reflected on the most complex program I wrote being about 150 lines. And then some guys started talking about how the operating system (windows) was made up of 100&#8217;s of thousands of lines of code, and then came hyperboles of how much a single programmer (bill gates) contributed to it. I think at that moment I lost interest in programming. I thought there couldn&#8217;t have been a place for me if there&#8217;s such a skill difference between me and the best in the field. </p>
<p>I always suspected that there were many programmers out there who struggle with mounting complexity. Its interesting to hear an insider comment on the widely differing talents within the programming community.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Square root interview question &#8212; The Endeavour</title>
		<link>http://www.johndcook.com/blog/2008/09/19/writes-large-correct-programs/comment-page-1/#comment-89173</link>
		<dc:creator>Square root interview question &#8212; The Endeavour</dc:creator>
		<pubDate>Thu, 23 Jun 2011 14:20:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=401#comment-89173</guid>
		<description>[...] Writes large, correct programs Dumb and gets things done    ? X [...]</description>
		<content:encoded><![CDATA[<p>[...] Writes large, correct programs Dumb and gets things done    ? X [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: QuantDev</title>
		<link>http://www.johndcook.com/blog/2008/09/19/writes-large-correct-programs/comment-page-1/#comment-82873</link>
		<dc:creator>QuantDev</dc:creator>
		<pubDate>Thu, 19 May 2011 20:11:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=401#comment-82873</guid>
		<description>The key is to modularize. I&#039;ve worked on 2 large codebases so far. One was modularized, and I could comfortably live within the boundaries of the module I was working on, only occasionally foraying briefly outside of it. The other was not, and it&#039;s a pain.</description>
		<content:encoded><![CDATA[<p>The key is to modularize. I&#8217;ve worked on 2 large codebases so far. One was modularized, and I could comfortably live within the boundaries of the module I was working on, only occasionally foraying briefly outside of it. The other was not, and it&#8217;s a pain.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John</title>
		<link>http://www.johndcook.com/blog/2008/09/19/writes-large-correct-programs/comment-page-1/#comment-82288</link>
		<dc:creator>John</dc:creator>
		<pubDate>Tue, 17 May 2011 18:39:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=401#comment-82288</guid>
		<description>Nick: Thanks. Yes, I think contributing to open source projects would be a great way for students to get some experience. For one thing, it may be the first experience maintaining code they didn&#039;t write from scratch. 

Greg Wilson had some sort of program to teach students what they&#039;d need in order to contribute to open source projects. He&#039;s left academia now, but he&#039;s finishing up a book on open source architectures. Maybe his new book would help.</description>
		<content:encoded><![CDATA[<p>Nick: Thanks. Yes, I think contributing to open source projects would be a great way for students to get some experience. For one thing, it may be the first experience maintaining code they didn&#8217;t write from scratch. </p>
<p>Greg Wilson had some sort of program to teach students what they&#8217;d need in order to contribute to open source projects. He&#8217;s left academia now, but he&#8217;s finishing up a book on open source architectures. Maybe his new book would help.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nick Dunn</title>
		<link>http://www.johndcook.com/blog/2008/09/19/writes-large-correct-programs/comment-page-1/#comment-82280</link>
		<dc:creator>Nick Dunn</dc:creator>
		<pubDate>Tue, 17 May 2011 18:11:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=401#comment-82280</guid>
		<description>To echo what others have said, I always enjoy what you write.

I agree that there are large differences between the complexity of programs of various sizes.  Unfortunately, at least at my college, we never wrote programs over ~1000 lines of code, and thus were not really exposed to the sort of architectural decisions that you&#039;d be forced to make in a larger project.

Fortunately I was on the school&#039;s robotics team (http://robocup.bowdoin.edu/) and was exposed to a much larger code base (tens of thousands of lines of C++, Python, and Java), and was able to immerse myself in a project much closer to &quot;real world&quot; size.

How can universities encourage students to work on much larger projects?  Should they offer credit for contributing to open source projects?  e.g. extra credit if you can get a patch submitted to project X?</description>
		<content:encoded><![CDATA[<p>To echo what others have said, I always enjoy what you write.</p>
<p>I agree that there are large differences between the complexity of programs of various sizes.  Unfortunately, at least at my college, we never wrote programs over ~1000 lines of code, and thus were not really exposed to the sort of architectural decisions that you&#8217;d be forced to make in a larger project.</p>
<p>Fortunately I was on the school&#8217;s robotics team (<a href="http://robocup.bowdoin.edu/" rel="nofollow">http://robocup.bowdoin.edu/</a>) and was exposed to a much larger code base (tens of thousands of lines of C++, Python, and Java), and was able to immerse myself in a project much closer to &#8220;real world&#8221; size.</p>
<p>How can universities encourage students to work on much larger projects?  Should they offer credit for contributing to open source projects?  e.g. extra credit if you can get a patch submitted to project X?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John</title>
		<link>http://www.johndcook.com/blog/2008/09/19/writes-large-correct-programs/comment-page-1/#comment-82279</link>
		<dc:creator>John</dc:creator>
		<pubDate>Tue, 17 May 2011 18:05:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=401#comment-82279</guid>
		<description>To clarify, when I said &quot;large programs that have a high probability of being correct&quot; I had in mind large programs that have a high probability of &lt;b&gt;producing correct output&lt;/b&gt;. Large programs have almost zero probability of being entirely correct for all inputs, but good programs very often produce correct results. 

Johan: I recommend that every aspiring programmer read &lt;a href=&quot;http://www.amazon.com/gp/product/0735619670/ref=as_li_ss_tl?ie=UTF8&amp;tag=theende-20&amp;linkCode=as2&amp;camp=217145&amp;creative=399349&amp;creativeASIN=0735619670&quot; rel=&quot;nofollow&quot;&gt;Code Complete&lt;/a&gt; for starters. 

ConnGator: This post was picked up by &lt;a href=&quot;http://news.ycombinator.com/item?id=2556270&quot; rel=&quot;nofollow&quot;&gt;Hacker News&lt;/a&gt; today. The extra traffic probably explains your 500 error.</description>
		<content:encoded><![CDATA[<p>To clarify, when I said &#8220;large programs that have a high probability of being correct&#8221; I had in mind large programs that have a high probability of <b>producing correct output</b>. Large programs have almost zero probability of being entirely correct for all inputs, but good programs very often produce correct results. </p>
<p>Johan: I recommend that every aspiring programmer read <a href="http://www.amazon.com/gp/product/0735619670/ref=as_li_ss_tl?ie=UTF8&#038;tag=theende-20&#038;linkCode=as2&#038;camp=217145&#038;creative=399349&#038;creativeASIN=0735619670" rel="nofollow">Code Complete</a> for starters. </p>
<p>ConnGator: This post was picked up by <a href="http://news.ycombinator.com/item?id=2556270" rel="nofollow">Hacker News</a> today. The extra traffic probably explains your 500 error.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ConnGator</title>
		<link>http://www.johndcook.com/blog/2008/09/19/writes-large-correct-programs/comment-page-1/#comment-82272</link>
		<dc:creator>ConnGator</dc:creator>
		<pubDate>Tue, 17 May 2011 17:43:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=401#comment-82272</guid>
		<description>I was part of a small team that created a web app with 137k of Java code and 66k of JavaScript code (not to mention 30k of SQL/stored proc code).  Took 3 years and had thousands of bugs, but now it is in production and has been stable for over six months without patches.  

It is very much not easy.  The only way it worked was with very experienced developers, good management and a dedicated QA team.

BTW when I tried to post this comment I got this:

Error 500 - Internal server error
An internal server error has occured!
Please try again later.</description>
		<content:encoded><![CDATA[<p>I was part of a small team that created a web app with 137k of Java code and 66k of JavaScript code (not to mention 30k of SQL/stored proc code).  Took 3 years and had thousands of bugs, but now it is in production and has been stable for over six months without patches.  </p>
<p>It is very much not easy.  The only way it worked was with very experienced developers, good management and a dedicated QA team.</p>
<p>BTW when I tried to post this comment I got this:</p>
<p>Error 500 &#8211; Internal server error<br />
An internal server error has occured!<br />
Please try again later.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Johan Larsson</title>
		<link>http://www.johndcook.com/blog/2008/09/19/writes-large-correct-programs/comment-page-1/#comment-82266</link>
		<dc:creator>Johan Larsson</dc:creator>
		<pubDate>Tue, 17 May 2011 17:21:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=401#comment-82266</guid>
		<description>Do you have any tips for an aspiring programmer? Are there any specific books or even methodologies you can recommend if one wanted to become a developer who writes large and correct programs with ease?</description>
		<content:encoded><![CDATA[<p>Do you have any tips for an aspiring programmer? Are there any specific books or even methodologies you can recommend if one wanted to become a developer who writes large and correct programs with ease?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Terry A. Davis</title>
		<link>http://www.johndcook.com/blog/2008/09/19/writes-large-correct-programs/comment-page-1/#comment-82253</link>
		<dc:creator>Terry A. Davis</dc:creator>
		<pubDate>Tue, 17 May 2011 16:23:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=401#comment-82253</guid>
		<description>A real professional adapts to the size of the program.  You&#039;d be shocked how many people futz with name spaces in 10,000 line programs and don&#039;t use global variables in 1000 line programs.</description>
		<content:encoded><![CDATA[<p>A real professional adapts to the size of the program.  You&#8217;d be shocked how many people futz with name spaces in 10,000 line programs and don&#8217;t use global variables in 1000 line programs.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Writing software is harder than writing books &#8212; The Endeavour</title>
		<link>http://www.johndcook.com/blog/2008/09/19/writes-large-correct-programs/comment-page-1/#comment-82180</link>
		<dc:creator>Writing software is harder than writing books &#8212; The Endeavour</dc:creator>
		<pubDate>Tue, 17 May 2011 12:01:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=401#comment-82180</guid>
		<description>[...] Writes large, correct programs Why there will always be programmers Your job is trivial (but I couldn&#8217;t do it)    ? X [...]</description>
		<content:encoded><![CDATA[<p>[...] Writes large, correct programs Why there will always be programmers Your job is trivial (but I couldn&#8217;t do it)    ? X [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dumb and gets things done &#8212; The Endeavour</title>
		<link>http://www.johndcook.com/blog/2008/09/19/writes-large-correct-programs/comment-page-1/#comment-57405</link>
		<dc:creator>Dumb and gets things done &#8212; The Endeavour</dc:creator>
		<pubDate>Mon, 27 Dec 2010 15:37:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=401#comment-57405</guid>
		<description>[...] code and characters. Of course it&#8217;s more important that they produce lines of code that are correct, maintainable, and that accomplish something worthwhile. And yet there are endless [...]</description>
		<content:encoded><![CDATA[<p>[...] code and characters. Of course it&#8217;s more important that they produce lines of code that are correct, maintainable, and that accomplish something worthwhile. And yet there are endless [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: NuCode</title>
		<link>http://www.johndcook.com/blog/2008/09/19/writes-large-correct-programs/comment-page-1/#comment-30566</link>
		<dc:creator>NuCode</dc:creator>
		<pubDate>Mon, 11 Jan 2010 10:01:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=401#comment-30566</guid>
		<description>Exactly to the point. The biggest problem probably lies in the fact that amateurs who&#039;s written 100-liners has absolutely no idea of the design, architectural requirements for such a vast project, and thus fail, as the backend, the design, is not robust, and easy enough to manage.

I wonder how complex a 100k liner would be, biggest i&#039;ve tackled so far is just around 30k.</description>
		<content:encoded><![CDATA[<p>Exactly to the point. The biggest problem probably lies in the fact that amateurs who&#8217;s written 100-liners has absolutely no idea of the design, architectural requirements for such a vast project, and thus fail, as the backend, the design, is not robust, and easy enough to manage.</p>
<p>I wonder how complex a 100k liner would be, biggest i&#8217;ve tackled so far is just around 30k.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bastien koert</title>
		<link>http://www.johndcook.com/blog/2008/09/19/writes-large-correct-programs/comment-page-1/#comment-29513</link>
		<dc:creator>Bastien koert</dc:creator>
		<pubDate>Thu, 24 Dec 2009 04:23:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=401#comment-29513</guid>
		<description>John, 

I&#039;ve read two of your posts regarding programming, this one obviously an the programming productivity vs pay article. Both were enjoyable and in my experience ,  entirely correct. The good programmers write fewer lines of better code.  They also plan better solutions and understand the ramifications of those design decisions better that less capable programmers.  I work with both, one is great fun to work with, the less capable is far less fun. We then spend too much rime correcting errors and tracking down bugs.</description>
		<content:encoded><![CDATA[<p>John, </p>
<p>I&#8217;ve read two of your posts regarding programming, this one obviously an the programming productivity vs pay article. Both were enjoyable and in my experience ,  entirely correct. The good programmers write fewer lines of better code.  They also plan better solutions and understand the ramifications of those design decisions better that less capable programmers.  I work with both, one is great fun to work with, the less capable is far less fun. We then spend too much rime correcting errors and tracking down bugs.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ezrad Lionel</title>
		<link>http://www.johndcook.com/blog/2008/09/19/writes-large-correct-programs/comment-page-1/#comment-9973</link>
		<dc:creator>Ezrad Lionel</dc:creator>
		<pubDate>Thu, 20 Nov 2008 05:15:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.johndcook.com/blog/?p=401#comment-9973</guid>
		<description>I&#039;m having so much fun browsing around your thoughts. I can remember my old days programming in basic and being disappointed when my code was only a few kb and I also remember quite distinctly when my programs started going over basics limits and scrambling for 3rd party tools to extend memory. Thank God for Qbasic.

I&#039;ve been programming for about 10 years now and alot of your logic seemed intrinsic to me. It made alot of my Computer Science classes extremely boring but it was pretty cool to learn different techniques to create more efficient code. I think your analysis.. well your paradigm effectively illustrates the gap that exists between small programs and large ones. I&#039;m just putting the finishing touches on my web toolkit and your words are fresh in my ears. 

I&#039;ve written larger programs before but I went all out on this one. I&#039;ve never done so much unit testing before and I&#039;m starting to suspect that I&#039;m paranoid. It&#039;s so crazy how the implementation of some seemingly benign piece of code can complicate a project. The most important thing I&#039;ve learnt however, is that shortcuts are to my detriment. Knowing exactly why certain systems create errors is more rewarding than patching it up.</description>
		<content:encoded><![CDATA[<p>I&#8217;m having so much fun browsing around your thoughts. I can remember my old days programming in basic and being disappointed when my code was only a few kb and I also remember quite distinctly when my programs started going over basics limits and scrambling for 3rd party tools to extend memory. Thank God for Qbasic.</p>
<p>I&#8217;ve been programming for about 10 years now and alot of your logic seemed intrinsic to me. It made alot of my Computer Science classes extremely boring but it was pretty cool to learn different techniques to create more efficient code. I think your analysis.. well your paradigm effectively illustrates the gap that exists between small programs and large ones. I&#8217;m just putting the finishing touches on my web toolkit and your words are fresh in my ears. </p>
<p>I&#8217;ve written larger programs before but I went all out on this one. I&#8217;ve never done so much unit testing before and I&#8217;m starting to suspect that I&#8217;m paranoid. It&#8217;s so crazy how the implementation of some seemingly benign piece of code can complicate a project. The most important thing I&#8217;ve learnt however, is that shortcuts are to my detriment. Knowing exactly why certain systems create errors is more rewarding than patching it up.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.420 seconds -->

