Kasperian Moving Parts

kinda like Batman, but with a wife and 3 kids

This just in: Visual Studio rots your mind!


Well, maybe not. But this article by Charles Petzold is a clearly-articulated discussion of some of the dangerous trends that most programmers aren’t even cognizant of. His discussion is centered around Microsoft, Visual Studio, and dotNET, being that that is his area of expertise. And while there are certain similar problems that also affect other environments, I think that because of Microsoft’s goals and the goals of their tools, I think that much of this discussion is truly mostly-relevant to those deeply entrenched in Microsoft’s OS and tool stack.

So I don’t think IntelliSense is helping us become better programmers. The real objective is for us to become faster programmers, which also means that it’s cheapening our labor.

I agree. And I completely share his sentiment at the end of his dissertation, which is exactly how I feel whenever I get a chance to work with some good, old-fashioned C++/KDE code:

It’s just me and the code, and for awhile, I feel like a real programmer again.

Author: Jason 'vanRijn' Kasper

My name is Jason 'vanRijn' Kasper. I am the ring leader of the amazing Kasper family. I am unashamedly a Christian Nerd. These are our stories....


  1. Funnily enough, that’s kind of how I feel about IDEs in general.

    It’s mainly an effect of being a fresh-out-of-school CS student, I think; I wrote all my code with two tools:

    1) a text editor, and 2) the GNU compiler for the language in question.

    Granted, concessions need to be made to speed things up, or no progress is ever made on projects of real-world proportions, but there was a certain satisfaction in coding that way…

    I imagine I’ll get over that soon enough. I already am, to some extent.

    Where should the line be drawn, I wonder?

  2. Well, one of the lines that is important for me is in the way that Visual Studio hides certain things from the form designer. If you happen to change something in its generated code for the GUI you’re developing (i.e. improve the generated code so that it’s actually readable and understandable for those who will come behind you), then there’s a very real possibility that Visual Studio will be unable to cope with it and won’t know how to render the form in its designer anymore. This is one of the things I really like about the way that JBuilder does things–its visual designers are able to cope with such things so that you can have the best of both worlds–quickly generated code via a drag ‘n drop designer interface, as well as allowing you to keep the code clean and maintainable.

    I think another line too is the fact that most of the dotNET developers I’ve come across have no clue about development methodology (UML, for instance), whereas this is more deeply ingrained in the various Java environments. I believe that this is something that Microsoft is trying to improve, but up till now, there has been no emphasis put on modelling your application before you start the “drag a button here, drop a label there” mentality that Visual Studio is so popular for. In fact, since its main goal is to make you a faster programmer, not a better one, it tends to discourage “slowing you down” by helping you to model and architect your work. Definitely not the case with most J2EE/Swing development I’ve seen.

  3. Ah yes.

    I think I’ve mentioned before that several of my friends and I were bitten by the fact that Qt has much the same issue when you use Qt Designer to generate code.

    I was impressed by the way JBuilder handles code generation; it’s nice, to say the least.

    And I speak as an extremely fortunate man who has never touched a Microsoft development platform, so I honestly couldn’t say anything about how using Visual Studio affects your tendency to model before beginning a project – but in this particular case, ignorance is something I welcome. 😉

Leave a Reply

Required fields are marked *.


This site uses Akismet to reduce spam. Learn how your comment data is processed.