PHOTOOG Photography writings by Olivier Giroux

25Sep/072

Humiliation and Interrogation

The Halo 3 launch party was good times, food and company. I just couldn't pass up an invitation to an geeky evening of slaughter and gore. My slaughter and gore as it turned out.
I learned that my Halo-fu is weak at best. Your average 12yr-old can mutilate me 50 times over before I can return the favor. When I do it's usually by some mishap where I blow the both of us up with a grenade dropped at my feet. Maybe I should get a Wii and play with the 8yr-olds instead.
Before and after my humiliation I had a chance to chat up Marc Wolfson, our Visual Studio Evangelism person for Silicon Valley.
Some of my questions didn't get complete stories, so I'm recording here for someone else to asnwer:
  1. What are the new features for native-code developers in VC++ 2008? The documents on the MSDN website lead me to believe that this release would be a big service pack for us.
  2. Has the linker been improved? Is it faster and/or more memory-efficient? Do we have more visibility into what we can do to help it run faster and/or consume less memory? We're spending many man-months here just to keep some projects from blowing up in the linker, this is real money.
  3. Will we have more control over IntelliSense? Can we disable it on a per-project basis, or per VC++ instance, or tweak how sensitive it is and what it analyzes? On some projects with large amounts of generated code, IntelliSense costs more productivity than it brings.
  4. Has native code support come to the "new and cool" features like unit testing and memory debugging? Who needs memory debugging tools more than native C/C++ developers, seriously? Unit testing for native C++ would singlehandedly justify moving the entire company to a new VC++ release, it's worth $$$. It might even convert some hard-core *NIX people (if and only if the integration is smooth as a baby's butt).
  5. What is your roadmap for C++0x? Are the C++TRs coming soon? I've read half-answers to this one, but by now the standard is close enough to ratification that you should have an idea of what features you'll implement and when.

Visual C++ is my essential workhorse, and I just want it to rock. By the way, I aimed a shot across the VC++ bow with this post, consider it.

One last thing. This one isn't so much a question as a statement:

We need Visual Studio version N+1 to be able to operate on Visual Studio files of version N. Do not convert the solution/project files unless I use a new feature specific to version N+1. Then warn me before you convert the files so I can decide if I want to wait before I use this new feature.

The last migration (7.1->8) revealed a viral behavior when projects are included in multiple solutions and everyone had to upgrade at the same time. The migration to VC9 will require a great deal of upper-management-wrestling on my part because of that. The answers to my questions above will determine how hard I will be willing to fight, or wait for VC10.

Cheers,


Filed under: Uncategorized Leave a comment
Comments (2) Trackbacks (0)
  1. Great feedback Olivier
    WRT to futures. We are gathering lots of feedback from native coders at http://blogs.msdn.com/somasegar/archive/2007/08/08/visual-c-futures.aspx

    Now the tough job of figuring out the priorities for each release. 🙂

    WRT control over Intellisense. We had a anomaly where the guidance to control intellisense posted on http://msdn2.microsoft.com/en-us/library/ecfczya1(vs.71).aspx does not work for C++ fortunately this hack works. Simply rename or delete ‘VS root path>\VC\vcpackages\feacp.dll.’ This will globally kill intellisense which may be very useful for some cases you described to me at the Halo3 party.

  2. Yes, we know about this hack. The problem is that it disables IntelliSense for all your VC++ instances from then on.

    I usually have 3~4 instances of VC++ open at once, for as many different projects. In one project IntelliSense is a great benefit, while in another it’s a great harm.

    In the end I’ve evolved a routine whereby I close VC++ when I know I’m going to do something IntelliSense doesn’t like, then reopen it after. Of course I have to pay the IntelliSense anyway, but at least it doesn’t get into an infinite loop as it would have otherwise.


Leave a comment

No trackbacks yet.