flow.
"Flow is a condition of deep, nearly meditative involvement." - Tom DeMarco

The IDE does NOT make the developer

Sunday, February 25, 2007 2:33 PM
OK, so maybe I've been living under a rock for the past few years but I've just started seriously playing with SharpDevelop.  Now don't get me wrong, I've tried it a handful of times before.  Once when I first started working in C# (early 2004) and once or twice more since then, but I've always pretty much had the same response.  "Yeah, this is cool...but it just didn't 'feel' right to me".  Honestly, it reminded me a lot of Turbo C back in college...totally functional, totally fast...but where was the glitz?  Where was the glamor?  Where was the shiny?

Well, during a fit of insomnia last night I was randomly surfing developer sites and it just happened to cross my mind.  I figured 'why not' and gave it a shot.  Within minutes I was hooked.  As I was reading the release page waiting on the download I saw a blurb mentioning that I would need NCover to use the code coverage feature.  Code coverage?  They have integrated code coverage?   And what's this about FxCop?  They have static code analysis built right into the IDE? 

This was awesome news, but to be honest it made me a little nervous.  My big attraction to SharpDevelop has always been the lightweight functionality of it.  I want something that starts up fast, responds fast, and stays out of my way when I don't need it.  Don't get me wrong, I was thrilled that they had added all of these features...but I didn't want them to sacrifice SharpDevelop's responsiveness in return.

Let me clear something up right out of the gate.  I'm not a Visual Studio hater.  I've used Visual Studio throughout my entire .NET career (and even through most of the old C++ days) and I've never really had any complaints.  I honestly think its a very nice product and there are features about Visual Studio that I still find today that I absolute love.  For professional .NET development, I've given Visual Studio my heart...and, for the most part, we've been very happy together.  But, for just playing with scratch code while lying in bed at night, working on my open source projects, or just plain having fun...Visual Studio seems like overkill.  It does crash occasionally, it has its little quirks, and it takes forever to start up.  And I have to accept that I have to sacrifice nearly all of my clock cycles and memory to the care and feeding of it.  But hey, every relationship has its sacrifices.

SharpDevelop, however, is super lightweight.  It starts up fast, its super responsive, and...thus far...hasn't crashed on me yet.  Now, I'm not really in either camp as far as loyalty.  I tend to stay out of the flame wars that burn like wildfire across the old interweb about which IDE is better and why.  Mainly because I believe that we really shouldn't spend so much of our effort debating tools because, since quite simply, 'tools' are all they really are.  Tools don't make the developer, oh they can make your task simpler or easier without a doubt, but they don't make the developer.  At the risk of offending quite a few people I'd venture that if your greatest hurdle to developer quality and productivity is your IDE, then you're probably not much of a developer.  But hey, that's just me.

Now, that said, I do believe that a tool can make our life dramatically easier.  My ideal IDE is something that stays completely behind the scenes until I need something and doesn't interfere with me at all when I don't.  My ideal IDE should allow me to create completely unhindered and perform with such speed that I don't have to throttle my train of thought while I wait on my new file or intellisense to stop thrashing away just because I was foolish enough to put a "." after an object.  For lack of a better term, my IDE should make me feel like I'm coding on rails.

No pun intended.

In a perfect world, I should completely forget not only which IDE I'm using, but that I'm even in an IDE at all within minutes after starting up.

There are things I love and 'not so love' about both products.  I love the object test bench and the immediate window in Visual Studio.  I hate the fact, however,  that my morning routine involves 1) starting Visual Studio 2) making my coffee 3) opening my solution 4) pouring my coffee 5) building my solution 6) getting more coffee....
I love the code coverage and FxCop integration inside of SharpDevelop, yes I know Team System has both of these as well but I've never worked for a company that has actually been willing to cough up the buckage for anything other than Professional. SharpDevelop's sidebars still don't quite feel fluent to me but I love the fast response time of the editor and I have to admit, I love the fish.

All of that said, this really isn't a bash against Visual Studio or a paid advertisement for SharpDevelop.  I think they're both great tools, and both are far better than anything I could have ever written myself, and I'll continue to use them both...albeit just for different tasks. 

This is, however, an invitation to check out SharpDevelop if you haven't in awhile.  I'll be the first to admit that I haven't really followed it closely so I don't know how new the features I spoke of are.  I'll also admit that I was totally floored last night when I discovered that I could seamlessly open project and solution files inside of it, though I'm sure this isn't really a new feature and may very well have been around since the dawn of time...I just, quite simply, have never tried to open a Visual Studio file inside of it.  It was also 3 AM and as such it would have been quite simple to floor me at that point.

Some people say that you should learn a new language every year, if for nothing else just for the different perspective on your primary language.  I totally agree with this.  I would also, be willing to take this  a step farther and say maybe you should learn a new environment just to get perspective on your other environment.  Maybe you'll see things in one that you've never thought of in the other.  Maybe the lack of an something in one will turn you on to a totally different way of doing things.  Or maybe, just maybe, the IDE really doesn't make the developer.
kick it on DotNetKicks.com

Feedback

 re: The IDE does NOT make the developer

Interesting post, I was wondering what your thoughts about C++ IDEs was ? My reason being that I'm starting to learn and I can't really 'decide' on one so I'm just wondering what your favourite one is, etc, thanks. 2/25/2007 7:49 PM | Anon

# re: The IDE does NOT make the developer

Thanks for the comment. It's been a while since I've used C++ but the ones I used the most were and older version of Borland's Turbo C++, Visual C++ 6.0, and Visual Studio 2003.

If you're just learning, I think Visual Studio may be overkill. I would look at something a little lighterweight like the Borland, GCC, or eclipse products. If you're looking at Linux or other alternative platforms Eclipse has a free C++ version that may be your best choice (I've only ever used Eclipse for Java but it seems like an amazing IDE). There is also an Eclipse for Windows, but if you're looking at windows .NET development I would look at Visual Studio C++ Express Edition which is a lightweight, free IDE for C++ .NET development.

Either of those should be a nice, free choice to get you started. Hope this helps! 2/26/2007 8:27 AM | Jeremy

 re: The IDE does NOT make the developer

Well, I now have my hands on Eclipse and C++ Express on yours and others suggestion, so I will begin with these though I have Visual Studio 2005 from my University if I need it (AKA, when I become a little bit proficient with C++). I'll mess around with both until I find which one I prefer.

Thanks for the reply. :) Time to continue learning. D: 2/26/2007 6:35 PM | robotlol

# re: The IDE does NOT make the developer

It'[s my pleasure, glad I could help!

Good luck! 2/27/2007 8:30 AM | Jeremy

Post a comment





 

Please add 8 and 6 and type the answer here: