What’s wrong with Visual C++ and Microsoft Connect?

Using Visual Stu­dio 2010 with Ser­vice Pack 1, try doing the following:

  1. cre­ate a new project of type Win32 Console Application, and under Application Settings in the project wiz­ard, select Console Application and Empty Project.
  2. cre­ate a sin­gle .cpp file
  3. add the code int main() {} to it
  4. hit build.

You’ll now get the warn­ing (listed under “Errors”, for some rea­son): IntelliSense: PCH warning: header stop cannot be in a macro or #if block. An intellisense PCH file was not generated.

(I zipped up a solu­tion repro­duc­ing the prob­lem here. Note that every­thing is left at the default settings.

What the f…? How can some­thing so sim­ple break IntelliSense?

I am some­times amazed at the appar­ent lack of test­ing that goes into a release of Visual C++. VC2010 beta 1 had a glar­ingly obvi­ous bug, where the above pro­gram would fail with a linker error. Appar­ently, no one had thought to test a pro­gram which used the standard-compliant main instead of wmain with UNICODE enabled. Sure, it was beta, and you’d expect errors, but some­thing sim­pler than a Hello World should still work, shouldn’t it?

Now we get spu­ri­ous Intel­liSense errors if we have the audac­ity to cre­ate the tini­est, sim­plest pro­gram imag­in­able, at the default settings.

Of course, it gets bet­ter. Because as we all know, Microsoft Con­nect is beyond use­less, and obvi­ously, some optimistic/foolish VC++ users had already reported the prob­lem with this warn­ing mes­sage. Google gave me the fol­low­ing three bug reports:

It is one thing that errors that prac­ti­cally leap in the user’s face are allowed to exist in a ship­ping prod­uct at all, that lit­er­ally the short­est, sim­plest pro­gram pos­si­ble pro­vokes the bug, but that Microsoft closes such bugs with three dif­fer­ent close rea­sons only serves to under­line how utterly use­less, ran­dom and user–hos­tile Microsoft Con­nect is, and it is pretty hard to escape the con­clu­sion that there is some­thing fun­da­men­tally wrong with how Microsoft’s Dev­Div operates.

I am gen­er­ally rea­son­ably pos­i­tive towards Microsoft’s C++ com­piler. It’s noth­ing spe­cial, cer­tainly, and Microsoft’s pol­icy of never ever improv­ing an exist­ing prod­uct means it is per­pet­u­ally obso­lete com­pared to the com­pe­ti­tion, but it gen­er­ally works, and it has made great strides towards stan­dards com­pli­ance. But the qual­ity of the IDE, and of Intel­lisense, is really absurd, at times. VC2010 seems to have shifted the absur­dity of Intel­liSense from “it just plain doesn’t work”, to “It works rea­son­ably ok, but imposes some baf­fling require­ments on the code, has some kind of love affair with pre­com­piled head­ers and seem­ingly doesn’t even bother with code that doesn’t have one, reports false pos­i­tive ‘errors’, and lists them in the ‘Errors’ win­dow, along with actual com­pile errors.”

And Con­nect is noth­ing short of an insult towards Microsoft’s cus­tomers. It is appar­ently staffed by mon­keys, per­haps assisted by a script that ran­domly closes issues as “Won’t Fix”, and seems to serve the sole pur­pose of under­lin­ing to Microsoft’s cus­tomers, all the errors that will not get fixed.

Here’s another great exam­ple I saw in my Twit­ter feed just two days ago:

Bugs like this in WPF that date back to 2007 (I just hit it in .NET 4.0) makes me lose con­fi­dence in Microsoft Con­nect http://t.co/6IbRGQq
@kellabyte
Kelly Som­mers
Seri­ously 4 years on a bug that a user just has to drag some­thing and every­thing busts is a pretty LONG time to not fix that… FOUR YEARS
@kellabyte
Kelly Som­mers
What’s worse is some­one sub­mit­ted a fix to the Con­nect bug using reflec­tor and fixed the Microsoft code and STILL unfixed 4 yrs later
@kellabyte
Kelly Som­mers
@ Feed­back passed over directly to very senior peo­ple in charge of WPF, expect some response
May be a stu­pid ques­tion but why does a cou­ple tweets get more trac­tion than 4 years of peo­ple com­ment­ing on MSFT Con­nect? #Sys­temIs­Broke
@kellabyte
Kelly Som­mers

#SystemIsBroke indeed. Why even have Con­nect, when bugs appar­ently only get resolved once some­one with lots of fol­low­ers on Twit­ter com­plain about it?

And of course, this gem of a response from Microsoft on the bug report itself is really remarkable:

I do under­stand your con­cern, but we are beyond our ZBB date, there­fore only ship-blocker bugs make the bar at this point. Con­sid­er­ing that we have shipped this bug before, it is hard to make a case that we need to fix it in this release since it did not block our pre­vi­ous release. Thank you.

Wait what? I guess this pretty much con­firms what we all knew: that once a bug has been closed as “Won’t Fix”, the claims that “we will eval­u­ate this for a future release” are just pre­tense. What actu­ally hap­pens is that the older a bug gets, the lower pri­or­ity it’s given, accord­ing to some twisted “prece­dence” prin­ci­ple. “We’ve been able to ignore the bug for X years now, so surely, there’d be no harm in ignor­ing it one more year”.

Now sure, I’m not par­tic­u­larly con­cerned about WPF, but it shows that the prob­lems with Con­nect are not lim­ited to Visual C++ issues.

Dear Microsoft, Con­nect is bro­ken. And every­one except you knows it.

Share and Enjoy: These icons link to social book­mark­ing sites where read­ers can share and dis­cover new web pages.
  • Digg
  • del.icio.us
  • StumbleUpon
  • Reddit
  • Technorati

Tags: , , ,

4 Responses to What’s wrong with Visual C++ and Microsoft Connect?

  1. Doug Turnure says:

    Hi Jes­per (and Kelly),

    I have no rea­son to doubt your expe­ri­ences above — Con­nect is a huge inter­face over mul­ti­ple back­ends, and things have got­ten lost and/or missed over the years.

    I can assure you that we’re work­ing on it. This is not just some gen­eral com­ment. I’m spend­ing hours daily work­ing on clean­ing up old areas, putting in new report­ing, mon­i­tor­ing bugs, sync­ing betwen DBs, etc.

    Yes, it should never have got­ten this scat­tered. It has more to do with a re-org or two that is typ­i­cal of large com­pa­nies, and a sys­tem that was built with good inten­tions, but whose infra­struc­ture was com­pleted prior to the whole social Web’s emer­gence. There are sev­eral rea­sons why we’ve had bugs go through the cracks, but the bot­tom line is, we’re fix­ing the issues, and putting things in place so we don’t get back to where we were 12 months ago.

    The C++ team fixes about 40% of the bugs that come in. And the ones they don’t fix are usu­ally pushed back to the next cycle, or we make the call that it is not the right busi­ness deci­sion to fix the bug at this time. There is a lot behind that; if you’ll think about the code you write, you know there are imper­fec­tions that you want to address, but can’t always get to them on a par­tic­u­lar cycle.

    I would be happy to show you both how we’ve made sig­nif­i­cant progress over the last 12 months, and how we’re going to make it bet­ter going for­ward, but it’s not really appro­pri­ate for a sin­gle response on a blog. More likely, I’ll post some­thing on my blog, and on the Con­nect site itself.

    One thing that is really help­ing is our new User­Voice site (http://visualstudio.uservoice.com) where cus­tomers make sug­ges­tions, and are given 10 votes to apply to other sug­ges­tions. This helps us see the most impor­tant issues to our cus­tomers, so we can pri­or­i­tize. In the case of bugs, Con­nect is still the right way to go.

    If you think a bug is closed unfairly, re-activate it and ask for an expla­na­tion. We spend a lot of time eval­u­at­ing the bugs, and fix as many as we can. But there comes a time when we have to put a bow on what we have, and ship it.

    I hope this helps.

    Doug Tur­nure Visual Stu­dio PM — Feed­back and Early Adoption

  2. Konrad says:

    This has been my expe­ri­ence as well (duh). How­ever, look at the bright side: try fil­ing a bug with Apple’s bugreport.apple.com form. By com­par­i­son, Microsoft Con­nect will appear mod­ern, user-friendly and all around pro­fes­sional. Apple’s bug report­ing actively dis­cour­ages you from sub­mit­ting bugs. And if that’s not enough, they will just delete your bug reports with­out any feed­back or account­abil­ity whatsoever.

  3. Joacim [MVP] says:

    @Konrad. Well we all know Apple’s slo­gan: It just works! (and if it doesn’t we don’t want to hear about it).

    I agree that Con­nect has been some­what of a joke for many years but I must say that since Doug took over as the PM for Feed­back at MS, things have started to move (slowly, but still mov­ing) in the right direc­tion. There’s still a long way to go but I hope they will get there…

  4. […] it turns out, four years is nor­mal for Microsoft Con­nect to pro­cras­ti­nate on triv­ial issues, whether in VC++ or .NET. This matches my […]

Leave a Reply

Name and Email Address are required fields. Your email will not be published or shared with third parties.