Entries:
Comments:
Posts:

Loading User Information from Channel 9

Something went wrong getting user information from Channel 9

Latest Achievement:

Loading User Information from MSDN

Something went wrong getting user information from MSDN

Visual Studio Achievements

Latest Achievement:

Loading Visual Studio Achievements

Something went wrong getting the Visual Studio Achievements

Arjun Bijanki: Making Sense of VC Intellisense

Download

Right click “Save as…”

One of the very useful features of Visual Studio is Intellisense. C# and VB programmers have come to rely on this mechanism as a one of the means to being highly productive when using VS as their dev tool. VC++ developers have not been afforded the same luxury as their other (managed) VS counterparts. Why? Well, for one thing there are big technical challenges to pulling off highly performant and accurate Intellisense for a VC++ code garden. You can imagine why given the complex structure of C++ programs...

Here, we meet Senior Developer in Test Arjun Bijanki who has been working on the VC++ front end compiler team for his entire career at Microsoft (as you'd expect, the front end compiler team owns Intellisense...).

How does Intellisense work? What are the challanges of implementing a truly useful Intellisense for VC++? When will VC++ developers get a great Intellisense experience in Visual Studio? What's the current state of the art and what's the future hold?

Tune in.

(Dan Fernandez joins in the conversation - this is Dan's first appearance on C9 as an interviewer (it was actually his first day on the job. Not surprisingly, Dan asks some very good questions.))

Here's a lo-res download version.

Tags:

Follow the Discussion

  • looks interesting but... 600MiB for 35 minutes? wtf
  • CharlesCharles Welcome Change
    I'm processing a smaller download file now... Stay tuned.

    C

    EDIT: Done. See description for link or click here.
  • Charles wrote:
    I'm processing a smaller download file now... Stay tuned.

    C

    EDIT: Done. See description for link or click here.
    thanks Tongue Out
  • Charles wrote:
    so... why one language in MS stack [VB.NET] can do it [background compilation] and another language which is very very different [C++] cant or doesn't do it
    as for C# I think its more a "political" decision than a technical one, as for C++ its the compiler that compile the code and the C++ compiler does a lot more than C# or VB.NET compilers, its pretty obvious isnt?

    interesting how JavaScript intellisense works in VS 2008? there are so many issues with it Smiley

    that parallelization feature built in C++ compiler, do we will see it in C# compiler? IIRC C# compiler doesn't have it, msbuild have it...
  • :Ointeresting how JavaScript intellisense works in VS 2008? there are so many issues with it 

  • evildictaitorevildictait​or Devil's advocate
    Ion Todirel wrote:
    
    that parallelization feature built in C++ compiler, do we will see it in C# compiler? IIRC C# compiler doesn't have it, msbuild have it...


    Research into functional languages means that next generation JITs are doing this to a certain extent, but it's not statically compiled in like the C++ compiler.
  • Christian Liensbergerlittleguru <3 Seattle
    Ion Todirel wrote:
    
    Charles wrote:
    so... why one language in MS stack [VB.NET] can do it [background compilation] and another language which is very very different [C++] cant or doesn't do it
    as for C# I think its more a "political" decision than a technical one, as for C++ its the compiler that compile the code and the C++ compiler does a lot more than C# or VB.NET compilers, its pretty obvious isnt?


    I don't think it is... The C++ compiler is a much more complex thing than the C# compiler. You have a lot more stuff that's going on and it takes also a lot longer to compile C++ code - compared to C# code.

    This video was very interesting and Dan asked some nice questions Smiley Especially the one about the AST! While I was watching the video that was actually one question that I would have asked Big Smile
  • evildictaitorevildictait​or Devil's advocate
    littleguru wrote:
    
    Ion Todirel wrote:
    
    Charles wrote:
    so... why one language in MS stack [VB.NET] can do it [background compilation] and another language which is very very different [C++] cant or doesn't do it
    as for C# I think its more a "political" decision than a technical one, as for C++ its the compiler that compile the code and the C++ compiler does a lot more than C# or VB.NET compilers, its pretty obvious isnt?


    I don't think it is... The C++ compiler is a much more complex thing than the C# compiler. You have a lot more stuff that's going on and it takes also a lot longer to compile C++ code - compared to C# code.

    This video was very interesting and Dan asked some nice questions Especially the one about the AST! While I was watching the video that was actually one question that I would have asked


    Yep. Parsing C# is a walk-in-the-park compared to parsing C++. Just look at the respective size of standard for that (C++, C#). Don't forget that pasing a C# file might involve parsing say 5000 lines at most, whereas an expanded C++ file with the #includes can often be over 50,000 lines of code - windows.h is a good example of this.

    C# also reflects-in lots of it's information, whereas C++ has no such ability, so C# can get away with a tiny intellisense store, whereas C++ has an absolutely gigantuan database with a hundred different things reading and writing to it per second, which means it breaks.

    Microsoft last I heard was 100% committed to it's C++ customers, and for them to be crippling their own product in order to convert people to C#, which is a fundamentally different type of application for political reasons seems frankly ridiculous.
  • evildictaitor wrote:

    Yep. Parsing C# is a walk-in-the-park compared to parsing C++. Just look at the respective size of standard for that (C++, C#). Don't forget that pasing a C# file might involve parsing say 5000 lines at most, whereas an expanded C++ file with the #includes can often be over 50,000 lines of code - windows.h is a good example of this.

    C# also reflects-in lots of it's information, whereas C++ has no such ability, so C# can get away with a tiny intellisense store, whereas C++ has an absolutely gigantuan database with a hundred different things reading and writing to it per second, which means it breaks.

    Microsoft last I heard was 100% committed to it's C++ customers, and for them to be crippling their own product in order to convert people to C#, which is a fundamentally different type of application for political reasons seems frankly ridiculous.


    I don't have exact values, but there are a huge number of developers using VS for C++.  They're the entire focus of the team I work on, so we're definitely committed to them.

    Like I mention in the video, the next release for VS will offer a vastly improved Intellisense, Browsing and Navigation experience for these developers.  We realize this is painful today, we released some perf work, and we're going to do it much better in the future.

    Also, the VC++ libraries feature pack for VS 2008 is in Beta right now.  Give that a try!

    There's a lot of cool C++ stuff on the horizon. Cool
  • Nice video! Thank you Charles and the rest of Channel 9 team for listening to my wishes (and a recent feedback message Smiley ) about the size of downloads and the bandwidth challenged/traffic limited viewers, - that's us Smiley Appreciating these low-res downloads.

    It took almost over a year for our main C++ developer to start using VS 2005, having moved away from VS 6. I think he should enjoy the changes in VS2008 for VC++.

    Regards

Remove this comment

Remove this thread

close

Comments Closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums,
or Contact Us and let us know.