Daniël:

In real-time or high performance applications, the very act of loading the code into a debugger is going to affect, or perhaps completely distort, the performance of the program and quite possibly alter or mask the very problems you are trying to fix.  A well-placed print statement won't.

I've read about studies in the past that software developers that were not given access to computers until their code was written we actually more productive than those who could go through innumerable code-run-fix iterations.  Of course, in the real world, that doesn't work because in the real world, you are interacting with other software that you either can't know the complete details of, or don't have control over, or more likely, both.  Take Windows programming for instance (I always go back to that since I'd been doing for 15 years).  The low-level documentation, while generally pretty good, is never complete and of course you will often have to reverse engineer actual behavior and bugs.  This is often much more difficult or even impossible without a debugger.

If, however, you have complete control over the entire environment (or your interfaces to other pieces are very well-defined and constrained), then you should be able to take a more deterministic approach to fixing problems.  You have the code, you should know what it does, debugging should mostly (or totally, like you point out) be done by looking at the code and figuring out what's wrong.  Of course, in the case of multi-threaded code, it's quite possible that you simply can't understand all the interactions because multithreaded development can be very complex.  Thus the reasonable allowance for print statements.

So I don't think Linus is being a hypocrite, nor do I think Dossy is being a Luddite.  Different environments require different tools.  Like I said, a debugger would be great... I was really bemoaning the fact I didn't have one when I started Tcl coding a few months ago, now it really doesn't bother me.

The world of AOLServer, it seems, is divided into two kinds of people.  Those who are willing to embrace Tcl and those who won't (or can't).  I had not realized the incredible technological barriers (mostly dealing with thread-safety) that prevent AOLServer easily supporting other, more popular, languages.  While the AOLServer project should do everything it can to maximize interoperability with other platforms or applications, I guess the real focus should then be to provide as complete a set of tools and examples as possible.  

A colleague of mine was raving about how easy it was to set up a simple, but really nice-looking photo gallery using (IIRC) Django.  That's great.  AOLServer devotees should be able to do the same exact thing.  Unfortunately in this day and age, framework libraries are a necessity... we shouldn't be reinventing the same wheels, but in my experience, most libraries that do anything significant can be as hard as developing the features from scratch.  _This_ is the problem that almost no one has really solved.

Of course, this is just my 2c.  Outside of supporting ADP stuff at AOL, I haven't had any experience with AOLServer... but in that brief time, I've become a convert.  In my experience, a good development environment has an elegance that strikes you at a gut level, and this one does that for me.

Rick

Daniël Mantione wrote:
Op Wed, 6 Sep 2006, schreef Dossy Shiobara:

  
On 2006.09.06, Rick Gutleber <[EMAIL PROTECTED]> wrote:
    
As much as it would please, however, me to be able to step through Tcl 
code, I think Dossy is correct.  You really can live without one.
      
I think the point here is, if you force yourself to live without one, it
demands that you become a better programmer.  Either that, or spend a
lot of time chasing down stupid bugs without the debugger.

Just because a debugger reduces the time you spend chasing down stupid
bugs, it doesn't force you to become a better programmer.

When you have a debugger, what's your incentive for becoming a better
programmer?  Where's the "pain" that you work hard to avoid?
    

That is just as stupid a comment as that word processors are bad;
you should use typing machines instead because with the typing
machine you learn to avoid typing errors. Facts are that for example data 
typists (people who cannot afford to make typing errors) have abandonned 
typing machines decades ago.

People who have learned to do calculating with slide rules instead of 
just pen and paper claim to be able to understand the process much better 
than the pen and paper people. They say that because they see how the 
slide rule gets to the answer they have a better insight in calculations.

It is the same with a debugger. A programmer who uses a debugger sees his 
algorithm actually working and will get more insight in it.

Debuggers result in programmers that understand their programs better 
because they have seen their algortihms actually work. Because they 
understand them, they can make them better.

  
Remembering and carefully avoiding past mistakes (why bother, when you
can just root them out in the debugger)?  Improving your fundamental
design repertoire to eliminate known bad decisions (why bother, the
debugger will let you finagle your way through even the worst of rats
nests)?
    



  
Perhaps that's the wisdom that Linus was trying to impart, here.
    

Linus has been rejecting source code management tools for years because 
"real programmers don't need them". When he finally used one he found he 
became two, three times more productive merging patches. He's a smart guy, 
but at the same time he is a fool.

Note also that Linus does use a debugger, in the sense of attaching gdb to 
a running kernel. You can't debug the kernel, but you can inspect its 
variables and data structures.

Daniël


--
AOLserver - http://www.aolserver.com/

To Remove yourself from this list, simply send an email to <[EMAIL PROTECTED]> with the
body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: field of your email blank.
  

-- AOLserver - http://www.aolserver.com/

To Remove yourself from this list, simply send an email to <[EMAIL PROTECTED]> with the body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: field of your email blank.

Reply via email to