Wednesday, May 21, 2008

On Development Environments

I'm currently developing MHQuake using Visual Studio 2003. I'm sure it's not the best IDE in the world, but I've used it for 5 years, I'm comfortable with it, I'm familiar with many of it's little quirks, and it's lightning fast on a modern PC, while still being functional enough.

I've downloaded and tried out a lot of free (as in speech) alternatives, but they just don't do it for me. Even at a basic level, like being able to auto-hide and auto-show away all the additional panels in VS, they fail. At the very worst, they do things in their own wildly idiosyncratic way; seemingly different just for the sake of being different.

Up until March I was developing on Visual C++ 2008 Express. I like the idea of using a free (as in beer) alternative, as it can make the source code more accessible to others, but intellisense turned out to be badly broken, despite promises of it being better in this release (in some cases it would take up to 5 minutes to recognise a new struct member, then promptly forget about it again) which was a total deal-breaker. If MS fix this, I might switch back. (The fact that SP1 is already in beta suggests that they're aware that something is wrong with it...)

The other alternative, Visual C++ 2005 Express, unfortunately doesn't ship with Windows headers and libs, which kinda defeats the purpose of making the code accessible. Also, neither 2005 nor 2008 can link with the single-threaded C runtime, which does cause issues for Q1 (thread locking issues and other fun galore). I might see if I can link with GNU libc instead.

Ultimately I'd like to switch to 2005 or 2008. They're nicer to use (provided intellisense gets fixed), cost nothing, and seem to produce faster code. I am however open to suggestions, so if anyone can suggest a free (either beer or speech will do) alternative that maximizes screen space, has good fast intellisense, runs quickly, is compatible with VCPP, and has features like outlining, unused code detection, code formatting, resource editing, full project management (source control not necessary), and lots of other good productivity features, but has nothing whatsoever to do with Java, I'd be interested to know.

0 comments: