Recently I have been using C# (ducks to avoid projectiles) in my work. I have also been doing some "glue" work in Perl (thankfully). Visual Studio Express is the IDE used for all the C# development. Emacs is the editor for all the perl scripts.

Something I have noticed as a result of using these two very different languages (coupled with past experiences with other langues) is that the "usability" of the debugger has a remarkable impact on the way I code.

Visual Studio has a very nice and usable debugger. I like being able to see what is in every array and object. I find myself using the debugger all the time.

With Perl (and C) I find myself using the debuggers much less frequently. I don't remember ever using a C debugger and I only used the Perl debugger when I was just learning the language.

(Get to the point you say?) I find that my style of programming changes greatly in languages where I find the debugger easy to use. In C# I find myself throwing code at something and using the debugger to see if it did what I wanted. In C and Perl I will spend more time actually thinking about my code. It will crash and burn often but when it does I generally find little things in my code that could be better when I am looking for the root cause. In the end it doesn't take me longer to develop the code and it generally is better written because I don't use the debugger as a crutch.

I am not trying to say that debugging is bad. I have to debug my code regardless of the language. I had just noticed some habits about how I write software based on the debugger.

I am interested to hear people's thoughts on debuggers (not debugging) and possible changes in how they write code.

Update: changed title to read "debuggers" rather than "debugging" to more accurately represent the contents.

In reply to Rambling about debuggers by zek152

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.