C# vs VC++ 2005

I’m not sure whether “VC++ 2005” is the right name or not, but whatever the next version of VC++ is called (don’t get me started on the VS naming schemes…)

Chris Sells wrote a post about a review of the new C++ version coming out with Whidbey. In case you haven’t been paying attention, the C++ team looked MC++ v1.0 and v.11, and decided that they wanted to do a language that was more tightly coupled to the runtime.

So, they came up with a way to integrate the .NET features into C++.

The contention in the post that Chris linked to is that C# is now superfluous. Now, I’m a code-and-let-code kind of guy when it comes to languages – I don’t think any one language is the best – so I find such pronouncements interesting.

What do you think? You can find some information on the new C++ syntax here.

Comments (9)

  1. Kevin Dente says:

    That depends – know any good refactoring tools for C++? 😉

    The changes are fantastic for legacy apps looking to take advantage of the productivity of the .NET framework. But I still like my C#.

  2. [swe]Chris says:

    Me thinks the new syntax looks much like C# with all the pointer thingys we all love to hate (hats, stars… please see c2.com/cgi/wiki?ThreeStarProgrammer), and deterministic finalization… I can hear Ned Flanders’ boys going "yay".

    To sum it up: I’m not impressed. I won’t go back, despite the fact that Stan Lippman once taught me what a wonderful language C++ can be. C# will continue to pay my bills…

  3. I haven’t been able to find an answer to this. Does C++ ensure "safe" Managed code, or is it like writing "unsafe" code in C#? If not, then Managed C++ has NOTHING on C#.

    C++ may be great for teams like WinFX team (and even Windows.Forms team, but it’s probably too late for that), since they can more easily interop with unmanged code with slightly better performance, but seriously, replace C#?

    No way. C# is still a (relatively) simple language compared to C++. Managed C++ is even more complicated than C++, because it’s like C++ and C# combined. Simplicity is great, as long as power and expressiveness is still there.

    Besides, does C++ have Iterators (yield keyword)? Does it have pseudo-closues (anonymous methods). There may be ways to do these things with complicated templates, but there’s no way they’ll be as elegant as C#.

    The only thing I might miss is STL, but the longer I go without using STL the harder I find it to read code that uses it.

  4. I’ve worked in several languages including C & C++, Java, and C#… Sometimes on the same project (for interop purposes) I’d go back to Java full time before I programmed in C++ as a rule.

    C++ has it’s place, but I don’t think it’s the most appropriate language for most things at this point.

    Now, if VB.NET were superfluous, I think I’d breathe a sigh of releif. <grin>

  5. I was once a C++ monk and I would have followed it as it it were a directive from the High Disciple of the Church of the New Epoch. But now I am saved and believe in the agnostic religion that is C#. [FYI – See Syndicate Wars].

    C++ 2005 might be a "cool" new language derivative but its still C++ with its "chapeau" and "pointy" things. 🙂 I feel its totally unnecessary and unproductive to have to type extra characters when your coding. Of course, there is a trade off between readability / understandability and ease of programming but I think c++ 2005 is still too 80’s Eurocorp Executive when we want a 00’s Eurocorp executive.

    Ok I’m blabbering. Time to sleep.

  6. Kevin Daly says:

    People who love C++ will no doubt see things that way, but for everybody else both C# and Java are about more than just having a managed runtime – part of the reason they exist is that C++ is *not* regarded by everyone as the perfect programming language.

    The "C# is superfluous" argument, with its poorly or not at all concealed contempt for those who *choose* another language over C++ reeks of Real Programmerism…pick up your beard at the door.

  7. Chris Nahr says:

    This discussion is silly. Obviously, all other languages will be obsolete with the release of the Fortran 2000 standard. :p