File size

File size

File size

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.))

﻿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

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...

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

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.

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!

Nice video! Thank you Charles and the rest of Channel 9 team for listening to my wishes (and a recent feedback message ) about the size of downloads and the bandwidth challenged/traffic limited viewers, - that's us 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

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.