<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>James on Software - Latest Comments in Wearing Out My Delete Key</title><link>http://jamesonsoftware.disqus.com/</link><description></description><atom:link href="https://jamesonsoftware.disqus.com/wearing_out_my_delete_key/latest.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Sun, 28 Sep 2008 16:49:00 -0000</lastBuildDate><item><title>Re: Wearing Out My Delete Key</title><link>/2008/8/2/wearing-out-my-delete-key.html#comment-7962884</link><description>&lt;p&gt;The delete key is easily the key I use the most too!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Julie</dc:creator><pubDate>Sun, 28 Sep 2008 16:49:00 -0000</pubDate></item><item><title>Re: Wearing Out My Delete Key</title><link>/2008/8/2/wearing-out-my-delete-key.html#comment-7962791</link><description>&lt;p&gt;| One of the great things about pair programming is getting to see how somebody else approaches a problem. ... and then he goes on about what people can learn from him...&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">BluePig</dc:creator><pubDate>Mon, 18 Aug 2008 11:55:00 -0000</pubDate></item><item><title>Re: Wearing Out My Delete Key</title><link>/2008/8/2/wearing-out-my-delete-key.html#comment-7962789</link><description>&lt;p&gt;The one key that you don't want to wear out is the Delete key, sounds like a good lesson learned my friend.&lt;br&gt;Respectfully,&lt;br&gt;Dr Saxe&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dr Saxe</dc:creator><pubDate>Fri, 15 Aug 2008 23:45:00 -0000</pubDate></item><item><title>Re: Wearing Out My Delete Key</title><link>/2008/8/2/wearing-out-my-delete-key.html#comment-7962788</link><description>&lt;p&gt;"Trying to perfect an implementation in one's mind is a form of speculation" -- this is frightening. No need for perfection, but a good programming should have no problem thinking up a solution to a problem in her mind. Do not confuse coding with programming. Implementation/coding is a necessity until we get programming languages that offer higher level of abstraction. Ruby and Python are getting there. Trail-and-error "programmers" that have to write code and run them to see if their solutions are correct should not be programming.&lt;/p&gt;&lt;p&gt;See: &lt;a href="http://www.pkshiu.com/writing/programmers.html" rel="nofollow noopener" target="_blank" title="http://www.pkshiu.com/writing/programmers.html"&gt;http://www.pkshiu.com/writi...&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Some scenarios that would benefit from the code-and-see process are :&lt;/p&gt;&lt;p&gt;- learning a new framework, experiment to see how things work&lt;br&gt;- very complex database query, unless your relational math is up to par&lt;br&gt;- using the Windows API, but that's a whole different story&lt;/p&gt;&lt;p&gt;P.K.&lt;br&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">PK</dc:creator><pubDate>Thu, 14 Aug 2008 14:25:00 -0000</pubDate></item><item><title>Re: Wearing Out My Delete Key</title><link>/2008/8/2/wearing-out-my-delete-key.html#comment-7962773</link><description>&lt;p&gt;I dont think there is anything in particular about your approach that requires an "expressive, dynamic language". How can you optimize if you dont know how different implementations perform? if you havent tackled the problem 3 different ways, you dont truly know what your problem is, and you haven't spent enough time learning the border cases.&lt;/p&gt;&lt;p&gt;I liked ror before i started working on a stagnant ror project. documentation from the initial dev was minimal. and monkey patching was extensive. i ended up doing a rewrite(thats refactoring right?) with spring/swf on tomcat. finished it much sooner than it would have taken me to begin to figure out what was going on in the failed project.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tristan</dc:creator><pubDate>Tue, 05 Aug 2008 10:38:00 -0000</pubDate></item><item><title>Re: Wearing Out My Delete Key</title><link>/2008/8/2/wearing-out-my-delete-key.html#comment-7962764</link><description>&lt;p&gt;@Phil I certainly didn't want to diminish the Smalltalk object browser ;-) I'm perfectly aware that it's probably the most powerful environment for object oriented development to date.&lt;/p&gt;&lt;p&gt;I was just referring to an expression I heard a bunch of times from Smalltalk people. "Debugging a program into existence" refers to the fact that with Smalltalk you can literally code what comes after your breakpoint and then continue execution.&lt;/p&gt;&lt;p&gt;If it wasn't mentioned in the Cunningham interview, it was probably in the Dan Ingalls one, a few episodes later.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Mathieu Martin</dc:creator><pubDate>Tue, 05 Aug 2008 09:08:00 -0000</pubDate></item><item><title>Re: Wearing Out My Delete Key</title><link>/2008/8/2/wearing-out-my-delete-key.html#comment-7962739</link><description>&lt;p&gt;To 'design' is the craft of deleting the non-essential.&lt;/p&gt;&lt;p&gt;Iterate early, often and simplify towards the optimum solution within the given constraints.&lt;/p&gt;&lt;p&gt;/pauric&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">pauric</dc:creator><pubDate>Tue, 05 Aug 2008 08:16:00 -0000</pubDate></item><item><title>Re: Wearing Out My Delete Key</title><link>/2008/8/2/wearing-out-my-delete-key.html#comment-7962736</link><description>&lt;p&gt;that's been my mantra for quite some time now... get it working now, make it pretty later.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jeff</dc:creator><pubDate>Mon, 04 Aug 2008 21:41:00 -0000</pubDate></item><item><title>Re: Wearing Out My Delete Key</title><link>/2008/8/2/wearing-out-my-delete-key.html#comment-7962732</link><description>&lt;p&gt;Your outlook is valid up to a point I think.  The first 5 years or so of coding it helps a lot.  Then after time (I've been going at it for about 15 years now) the need to write all the code diminishes and instead I plan and think out how it will be, then usually end up writing it once and with very few if any major bugs.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jeff</dc:creator><pubDate>Mon, 04 Aug 2008 19:35:00 -0000</pubDate></item><item><title>Re: Wearing Out My Delete Key</title><link>/2008/8/2/wearing-out-my-delete-key.html#comment-7962731</link><description>&lt;p&gt;I think this guy just lacks proper planning, you should never have to write code twice or rewrite anything IF YOU PLAN IT PROPERLY!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">robby</dc:creator><pubDate>Mon, 04 Aug 2008 18:22:00 -0000</pubDate></item><item><title>Re: Wearing Out My Delete Key</title><link>/2008/8/2/wearing-out-my-delete-key.html#comment-7962729</link><description>&lt;p&gt;Great article.  I agree 1000% that writing code is more important than thinking about code.  But I majored in econ so maybe this is just hopeful thinking ;)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alex</dc:creator><pubDate>Mon, 04 Aug 2008 16:44:00 -0000</pubDate></item><item><title>Re: Wearing Out My Delete Key</title><link>/2008/8/2/wearing-out-my-delete-key.html#comment-7962724</link><description>&lt;p&gt;@Mathieu: The debugger in Smalltalk is not really a debugger; it's an object browser. Calling it a debugger is like calling Emacs an editor--it's technically true, but it totally misses the point. Ruby doesn't have this since it's not image-based, so it's really an apples-and-oranges kind of thing.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phil</dc:creator><pubDate>Mon, 04 Aug 2008 15:44:00 -0000</pubDate></item><item><title>Re: Wearing Out My Delete Key</title><link>/2008/8/2/wearing-out-my-delete-key.html#comment-7962721</link><description>&lt;p&gt;This is spot-on perfect. I couldn't agree more. And, really, I think this applies to *any* creative endeavor.&lt;/p&gt;&lt;p&gt;Coding Horror recently had a post on this very subject:&lt;/p&gt;&lt;p&gt;"Well, came grading time and a curious fact emerged: the works of highest quality were all produced by the group being graded for quantity. It seems that while the "quantity" group was busily churning out piles of work - and learning from their mistakes - the "quality" group had sat theorizing about perfection, and in the end had little more to show for their efforts than grandiose theories and a pile of dead clay."&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.codinghorror.com/blog/archives/001160.html" rel="nofollow noopener" target="_blank" title="http://www.codinghorror.com/blog/archives/001160.html"&gt;http://www.codinghorror.com...&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">lapsed.cannibal</dc:creator><pubDate>Mon, 04 Aug 2008 15:26:00 -0000</pubDate></item><item><title>Re: Wearing Out My Delete Key</title><link>/2008/8/2/wearing-out-my-delete-key.html#comment-7962720</link><description>&lt;p&gt;&amp;gt; ...*in my experience*, the very best programmers...&lt;/p&gt;&lt;p&gt;@eric: absolutely not. Nearly all of my software development experience can be categorized in to a couple of pretty specialized areas of the field. And, most of this advice very specifically applies to working with expressive, dynamic languages. In other areas, with other tools, I can't claim to have any idea. There are certainly other effective approaches.&lt;/p&gt;&lt;p&gt;What I will say, though, is that when expressive, dynamic languages are an appropriate solution for your problem domain, this strategy is _an_ effective one for producing great code.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">James Golick</dc:creator><pubDate>Mon, 04 Aug 2008 15:01:00 -0000</pubDate></item><item><title>Re: Wearing Out My Delete Key</title><link>/2008/8/2/wearing-out-my-delete-key.html#comment-7962718</link><description>&lt;p&gt;Absolutely brilliant advice. Revision and refactoring should be easy.&lt;/p&gt;&lt;p&gt;It‘s the difference between speaking and writing: If everyone had to convey their emotions through speech, without the ability to take back and revise our words, we‘d have big communication problems.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Marcus Cavanaugh</dc:creator><pubDate>Mon, 04 Aug 2008 14:45:00 -0000</pubDate></item><item><title>Re: Wearing Out My Delete Key</title><link>/2008/8/2/wearing-out-my-delete-key.html#comment-7962716</link><description>&lt;p&gt;James, you are saying that for a programmer to be great they must write software exactly as you do? Is this inclusive? Can a programmer be great and not program like you? &lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">eric</dc:creator><pubDate>Mon, 04 Aug 2008 14:18:00 -0000</pubDate></item><item><title>Re: Wearing Out My Delete Key</title><link>/2008/8/2/wearing-out-my-delete-key.html#comment-7962715</link><description>&lt;p&gt;I couldn't agree more.&lt;/p&gt;&lt;p&gt;Nothing makes my day more than being able to delete a couple hundred lines of code.&lt;/p&gt;&lt;p&gt;Delete first, ask questions later.  So many coders are afraid to make deep changes like deleting code.  The rewrite is better almost 100% of the time.  And if it isn't, well, that's what version control is for :)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Isaac Schlueter</dc:creator><pubDate>Mon, 04 Aug 2008 13:38:00 -0000</pubDate></item><item><title>Re: Wearing Out My Delete Key</title><link>/2008/8/2/wearing-out-my-delete-key.html#comment-7962714</link><description>&lt;p&gt;I had never considered this (not being a frequent coder, just a RoR fan), but it sounds like it could help me a lot when I get to coding.&lt;/p&gt;&lt;p&gt;I totally agree about the software engineers sometime doing lesser quality coding jobs than self-taught motivated individuals with no education related to software conception.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jerome Gravel-Niquet</dc:creator><pubDate>Mon, 04 Aug 2008 13:23:00 -0000</pubDate></item><item><title>Re: Wearing Out My Delete Key</title><link>/2008/8/2/wearing-out-my-delete-key.html#comment-7962713</link><description>&lt;p&gt;Brilliant article. :)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ryan Merl</dc:creator><pubDate>Mon, 04 Aug 2008 12:38:00 -0000</pubDate></item><item><title>Re: Wearing Out My Delete Key</title><link>/2008/8/2/wearing-out-my-delete-key.html#comment-7962709</link><description>&lt;p&gt;Ok, I'm not gonna respond to the debugger diss, aside from this self-referential sentence :-)&lt;/p&gt;&lt;p&gt;Instead let me suggest an interview that would probably be of interest to you. It's one of the very few podcast episodes that I considered to be an instant classic as soon as I listened to it.&lt;/p&gt;&lt;p&gt;The interview is with Ward Cunningham, inventor of the Wiki and one of the inventors of extreme programming. In the interview they talk about concepts such as doing the simplest possible thing that can possibly work, and then improving on it by refactoring when necessary. I think this is an approach similar to what you're referring to here.&lt;/p&gt;&lt;p&gt;The interview is by Randall Schwartz and Leo Laporte, on FLOSS Weekly: &lt;a href="http://twit.tv/floss27" rel="nofollow noopener" target="_blank" title="http://twit.tv/floss27"&gt;http://twit.tv/floss27&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Oh and if I recall correctly, I think he did a significant amount of Smalltalk and therefore refers to the expression of "debugging a program into existence". So I'm not alone ;-)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Mathieu Martin</dc:creator><pubDate>Mon, 04 Aug 2008 09:56:00 -0000</pubDate></item></channel></rss>