Visual Studio 2005 - Hail Microsoft!
Although the Visual Studio 2005 was introduced some months ago, I didn’t get it until recently. It’s by far the best IDE ever written, read on for a complete review.
About Visual Studio 2005
I’m using the Visual Studio 2005 Professional and Standard German for all my development now - only C++ though, so I won’t comment on what changed for C++/CLI and the other .NET languages. The new VS introduces a more standards-compliant compiler, an updated MSDN & CRT and many tweaks to the GUI. Let’s take a look at each of the components.
First impression
The Pro Edition comes on 2 CDs plus 3 MSDN, same for the Standard. Installing the complete Pro Edition took around 5 minutes on my workstation PC. The standard edition took around 30 minutes on my notebook here due to a weird problem with the installer. Being part of the MSDN, I only get CD images. When you mount them one after the other into the same drive, everything is fine - but if you mount them all at once, the installation slows down extremely (5-10secs per file!). VS 2005 installs new, more friendly icons for source files, but still no 48x48 version of them so you still have crappy looking icons when using the “Tiles” view. The startup time of the IDE has been significantly enhanced. On my notebook, you can see the splash screen for maybe one-two seconds while on my desktop it disappears after a tenth of a second.
The GUI
The new GUI is using the toolbar style introduced with Office 2003 and looks overall more polished than the 2003 GUI. IntelliSense has been improved dramatically - it finally supports things like boost::shared_ptr
s. Moreover, the syntax highlighter “knows” the value of #define
s and grays subsequent #ifdef
s out if they’re false. Other changes include mostly polishing, for example, they finally settled down with a deterministic window docking solution.
The compiler
The compiler (now at revision 14.00) supports both x86
and x86_64
targets. Adding a new platform is very easy. Porting too, unless you’ve been using inline assembly which is no longer supported under x86_64
- you have to use compiler intrisincs now which work actually quite good. Portability is non-existant like before, but at least they’re easier to write. Moreover, more C++ standard stuff is on by default like RTTI or exception handling while less Microsoft specific things are activated by default. You still can’t compile without the “compiler extensions” though when you include windows.h
or any other Windows header as they rely on those extensions (anonymous structs, anyone?). The compiler supports OpenMP 2.0, but I didn’t have a chance to give it a try yet.
The new CRT
The Visual Studio 2005 comes with a new runtime library which introduces secure versions of many functions like strcpy
. This sounds fine at first, but at least for me this is just a source of annoying problems. First of all, you can only silence the warning but to get rid of them you really have to go and “fix” your code which isn’t broken in any way (after all, you know what you’ve been doing when you wrote that strcpy
, don’t ya?). And second, it also applies to the standard library - things like std::string::copy
are considered “deprecated” now. I didn’t manage to get the suggested fix (which simply replaces all unsafe calls with their safe equivalents) working here.
The MSDN
The “new” MSDN is pretty much the old one (read: similar to the 2003 edition). The German Edition has a bug which prevents you from adding other help collections using the Document Explorer. Microsoft is aware of this issue, but a fix has been not made available yet (see here for the current status of the fix). The search function has been updated: By default, it searches several online sources in parallel to the local index. For unknown reasons, the MSDN online search is usually much faster than the local search (even on my desktop with 2 GiB RAM where the index should easily fit into). All in all, the new Visual Studio is a big step forward, making developing under Windows even more comfortable. I’m going to write another post about the new debugger which is truly amazing, and deserves a post on his own. Stay tuned! And kudos to Microsoft for such a good work.