2007-08-23

The Tools: Integrated Development Environment

Integrated Development Environment (IDE) is probably the most important tool. It's the tool that you use to accomplish many things:

  • Managing the projects.
  • Managing build settings for your projects and individual files.
  • Code writing.
  • Building.
  • Debugging.
So, what IDE do I choose? I choose Microsoft Visual C++ 2005 Express Edition. Why you ask? Well, first of all - it's the best free IDE for my platform. I only code on Windows (though, I always think about portability while coding). I do not use the .NET features (C++/CLI), but it still is the best tool. It takes a little time to set it up (I have to manually download the Platform SDK and DirectX SDK) but I think it's worth it.

Before Microsoft released this great edition for free - I was using all sorts of other IDEs and compilers and was never happy about them. The thing is - whatever IDE you are using - it must not get in the way. It must be intuitive to use. Other IDEs couldn't give me that. So, most of the times, I was using the free Microsoft Visual C++ 2003 .NET compiler (can't find the link anymore) and I was writing makefiles by hand (that's right!). But when the free 2005 Express Edition came out - I pick it up very fast, because it was very intuitive. I didn't have to spend hours struggling to figure out how to properly configure everything - it just worked right after I installed it.

As a last note, I'd like to point out, that although Microsoft Visual C++ 2005 Express Edition is stripped version (you can't use plugins), but it still has some extensibility features. One of them is that you can use the custom project wizards, and the other is that you can extend it with some external tools that it can run in the build process. If you think that these two are minor features that no one is using - you are wrong. After I experimented a little with them - I developed my own custom project wizards and I added some third party tools into the build process (the one I use the most is the UPX tool to compress my release binaries and I can configure it just as I configure the C++ compiler settings - in project properties).

No comments: