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.