Why I don’t need Visual Studio 2008 (yet)

C++, OGRE 9 Comments

Visual C++ Express 2008 came out while I was away I see, which inevitably was going to draw calls for a VS9 version of our SDKs (I always buy the Pro version of Visual Studio myself, but I keep an Express version for testing too).

I’ve always been pretty relaxed about this particular version though, because unlike many previous versions it holds precious little for the native C++ developer. Sure, you can use Vista native controls, which will undoubtedly be useful for some people, and if you’re a purely Windows-targetting .Net user then of course the new features in that area are no doubt going to get you all excited, but for me I can only think of one feature that I really hankered for: multiprocessor builds for all files rather than just projects.

VS8 (aka 2005) does make use of multiple processors, but only between separate projects. If you have a solution with many projects in it, you can get some parallelism there, but typically you’ve got dependencies between projects which forces serialisation. For me, OgreMain was the bottleneck, but once that was built all the plugins and samples could then fire off separately. It helped, but it wasn’t perfect. VS9 introduces fully parallel builds of files which means every project can take advantage of multiple processors.

It’s a fair amount to pay for an upgrade just for that though, so I’d pretty much accepted that I’d leave the upgrade for a while and just live with it. However, the ever-resourceful Paul (tuan kuranes) linked in the Ogre Forum a plugin called MPCL for Visual Studio 2005, which adds fully parallel builds without upgrading. I installed it, and my build time for the OgreMain project (debug only) on my 2-core Core 2 Duo E6750 (2.66Mhz) dropped from 6 mins 45 sec to 4 mins 29 sec – ie shaving a third off the build time. Not double the performance, but not to be sniffed at either.

So that seals it – I won’t be upgrading to VS9 just yet. Those who use VS9 can (as I suspected) use the VS8 OGRE SDK binaries anyway, because the native compiler really didn’t change that much, in marked contrast to VS8. Of course you can only use the MPCL plugin if you use the Pro version of VS so I guess those using Express will upgrade to 9 fairly swiftly, so that’s their path unless they want to use VS9 OGRE SDKs created by third parties (I see those are already springing up – may host those if they work). Anyone reading the OGRE forums regularly already knew about this of course but I just thought I’d post it here too, because being away for 2 weeks I missed it entirely and only picked up on it because someone updated the thread today.

9 Responses to “Why I don’t need Visual Studio 2008 (yet)”

  1. John Says:
    December 6th, 2007 at 10:04 pm

    I wish my software built on a 2.66Mhz processor ;-)

    I myself also downloaded VS2008 express, and I have to say I like it, but then I’m not even thinking about purchasing the full version.

    I’ve always found it a slight annoyance to myself that, despite being very open source minded when I write software, Microsoft almost always bring out the very best development tool set.

    For C++ development in linux, you are pretty limited and it can be a chore to get even a simple library linked into your project (unless you are one of those crazy folk who actually know what they are doing ;-)

    Also, I was wondering how your adventures into Mac land were going? Are you still using a Mac as your primary machine?

  2. Steve Says:
    December 7th, 2007 at 9:30 am

    There are 2 development tools that I can say I feel really productive with, and that’s MSVC and Eclipse. Eclipse is actually better in quite a lot of ways, provided you’re doing Java development anyway.

    The biggest boon for me with MSVC is the debugger. It’s simply without equal in the native code world. I’ve never gotten along with GDB despite trying various GUIs and IDEs with it, it’s never helped me as much as MSVC. I know that when there’s a bitch of a bug to find, MSVC will let me nail it the fastest, and that alone makes it worth the money. I pay for the Pro version because I use plugins like Visual Assist and AnkhSVN (and now MCPL), and generally I feel that a tool this important to my work deserves to be paid for.

  3. Steve Says:
    December 7th, 2007 at 9:31 am

    Oh, and about the Mac, I haven’t had a lot of time for it lately since it broke a while back, and I only got it back just before I went on hols. I don’t use it as my main dev machine (since most of my work is on Windows still) but it’s my main ‘personal’ machine when I’m using a portable. Now that I’m more familiar with the Mac way of doing things I’m still liking it, even if there are some things I don’t like, such as XCode’s interface.

  4. kuranes Says:
    December 7th, 2007 at 2:04 pm

    Testing.

    Cannot post :

    The precondition on the request for the URL /wp-comments-post.php evaluated to false.

  5. kuranes Says:
    December 7th, 2007 at 2:13 pm

    strange. Cannot tell why above post worked.
    I made a real (longer) one that still keep from being accepted, was about pointing to “sutter’s mill blog”.

  6. Steve Says:
    December 7th, 2007 at 2:42 pm

    The blog will reject a comment with too many links or containing blacklisted words, maybe it was that.

  7. kuranes Says:
    December 7th, 2007 at 2:51 pm

    Still trying, without links :

    As usual with MS, waiting for SP1 is always safer. (VS2005 intellisense slowness bug…) and
    Sutter’s mill point that next version will have some C0xx int it

    I hope to find some time to test vs2008, but still didn’t… and
    As usual it’s hard to find things and real features in VS2008 express. I wonder if static code analysis really activated in Express and useful ?

  8. Steve Says:
    December 8th, 2007 at 11:45 am

    I’m looking forward to C++0x, although not to the inevitable sequence of non-compatible compilers and platform variations :)

  9. kuranes Says:
    December 10th, 2007 at 2:46 pm

    Seems that gcc 4.3 will have support for C++0x

    Gcc might anyway be the leader on C++ compilation, as 4.2 already has parallel implementation of std algorithms, while MS only optimized .NET libraries for multi core use…

    Let’s hope they don’t plan artificial “technology barrier” like DX10 Vista, just to push .NET over C++.

Leave a Reply