Ben said:
For office-style applications, perhaps. But there are many many problem
domains where having a heavyweight runtime engine doing things outside your
control is unacceptable. Writing native apps in C++ lets you get "close to
the metal". The native C++ compiler is still much much better at
optimization than the .NET runtime. Of course, this only matters for
programs which are CPU-bound, and many aren't (who cares whether processing
a menu click takes .01ms or .20ms ?).
I did not mean to claim that there were no uses for native code.
Nonetheless Microsoft's abysmal support for C++/CLI, along with their
almost complete refusal to fix C++/CLI bugs as if doing so would be a
vast concession to C++/CLI programmers rather than a responsibility
which one has when one sells a product, means that C++ programmers are
being herded as quickly as Microsoft hopes to using C# in order to write
..Net modules and applications.
Microsoft sold a lie to C++ programmers wanting to use it for .Net
applications, saying it would be a first class language on par with C#
and VB .Net. Language-wise it is better than C# but support-wise it is
far worse, and therefore largely unusable for the latest .Net
technologies. It's wonderful glue to the native Windows world, and one
can still create components, Windows form derived controls with it, as
well as Windows form and console applications, but that is about it. For
the latest .Net technologies, and ASP .Net, one needs C#, and I maintain
that this was Microsoft's intention from the very start in order to rope
C++ programmers to use C#.