Is C++/CLI a Second Class Language with Microsoft?

The post frequency on the Visual C++ team blog is reasonably high. Some posts deal with new features that were added to VC++ 2008.

But, is Visual C++ a second-class citizen in the Visual Studio product group?  Recently the Visual Studio 2008 Product Comparison was released (don’t ask me why it wasn’t released at the same time as the products…).  In the product comparisons VC++ Express has an inordinate number of features that only it doesn’t have.  When you look at the Visual C++ 2008 Express Edition product sites, it seems pretty clear that it’s geared towards native-only software development.  Despite this the product comparison shows VC++ Express has Managed Debugging, Mixed-Mode Debugging and Compiler Support for any CPU (which details “…compile your managed application…”).  But, VC++ 2008 Express is the only edition that doesn’t support adding reference to WCF services (“Service Reference”), Code Snipped Manager, Code Snippets, Rename Refactoring, Text File (you can’t create a plain text file with VC++ 2008 Express?), and one of two editions that doesn’t include support for XML File (create a blank XML file), and SQL Server 2005 Compact Edition.  As well, only VC++ 2008 doesn’t include managed-only features like Object Browser, Object Relational Designer, and SQLMetal (the last two deal with .NET-only LINQ-to-SQL.

C++ has stagnated as a language for quite some time, but Visual C++ 2008 includes new language features like C++0x and TR1 that help evolve the language for the parallel future.  But, despite assurances that native development is still a focus at Microsoft, there is the appearance that VC++ just isn’t getting the same resources as the other editions.  Makes you wonder how much longer will Microsoft keep it in the Visual Studio family…

9 thoughts on “Is C++/CLI a Second Class Language with Microsoft?

  1. Take a look at MFC as well. VC team has failed to impress me on any front in the last two releases. I don’t however think its second class just they serve the largest range of customers with the largest amount of functions. Any thing they do is like a rain drop in a lake.

  2. I don’t think it is fair to judge VC++ based on what we find in the free version. Especially when that version has a ton of stuff that the other versions don’t have to deal with.

  3. To put it bluntly I think MS has been making things difficult for the C++ developer for some time because it doesn’t want to encourage the development of production class applications on the desktop. That might challenge some of their own product bases and force them to provide a free version to put the competitor in the shade. That seems to be the history of it.

    Certainly its been a long time since I got a fee-paying contract for Win32 work, nowadays its server based *NIX work. What there still is about is highly specialised or legacy MFC.

  4. I don’t think C++/CLI is a second-class language with MS.If it does anything to belittle the Most powerful language it gona shoot itself in the foot. Obviously C# is the first choice because of its simple syntax but when it comes to power and diversity C++/CLI ranks first. No matter how much MS ignores this language, it is and will remain the supreme language. One should not make the mistake of judging a language by the number of developers opting for it, for every guy can’t afford a BMW!!

  5. Jonathan: Don’t compare the free version then, compare within Team System. I have been working on a very large project that uses both C++/CLI and C# for a few years now. Working in C++ has always been a painful experience with the bugs (intellisense not working for one), lack of features such as refactoring and lengthy compiles compared to our old pure C++ product.

    We had high hopes for improvements in VS2008, but C++ seems to have stagnated with only a few bug fixes and minor improvements. It has gotten so bad that we are now doing everything we can in C#, only using C++ when we need interoperability with legacy code.

    I used to be a C++ bigot, but it is just getting too painful to work with after you have been spoiled by how productive you are in C#.

  6. I agree that C++/CLI seems to be falling behind C# and VB.NET in terms of features (both at the language and the IDE level). However, consider that it has one massive feature that the other two don’t have – linking managed and unmanaged code. That feature has to carry significant overhead in terms of new development. So maybe it would be appropriate to cut the C++ team a break 🙂

  7. I think C++/CLI is a second-class language with Microsoft. Just look at the resources developers get from MSDN sute. I see no reason to use C++/CLI for other purposes except interoping with C++ codes.

  8. – How big the c++ libraries we have around the world?
    – Should we port all to c# and use them?
    – Or use CLI c++ and include them ?
    I think the choice will be very clear if you a game developer or c++ application developer.

  9. It’s an interesting question, but I think some of you guys are being a bit unfair.

    Of course they are going to concentrate on other languages because that’s where the money is. No one is developing C++ desktop business apps any more, and why would you want to? C++ is great and it’s all I use these days, but database support? I would never waste my time making a C++ business app or wireless app when I could use Java for that, and you will come across cobol a lot more these days than C++ business apps – and 95% of the people actually programming are making either a website or business app of some kind so maybe they are treating it a bit as a second class language but it’s probably more because not many people use it any more.

    As for legacy libraries, they are just that. Legacy. There is no need to add new features to support legacy code.

    I don’t see what the issue with bugs is – it’s always harder to debug C++ than other languages, but it is not terribly hard with experience and the debugger is good. If you have serious problems you can’t seem to unravel and cutting the project into pieces doesn’t work there’s always lint.

Leave a Reply to BDS Cancel reply

Your email address will not be published. Required fields are marked *