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.