D
David Ching
Tom Serface said:I think C++ is in an awkward position. It needs to maintain the rich
unmanaged capabilities and standards compliance it has, yet it needs to
live in a managed world so the it can continue into the future MSFT sees
for application development. I think this puts a unique strain on the C++
development team. C# on the other hand doesn't have to do anything outside
of .NET so it can be a lot more restrictive and, I'd guess, easier to
develop. Thus, it doesn't need the C++ "baggage".
I keep hearing arguments like this and it is true in general, but what does
it mean to "strain" the team? What exactly can you do in C# that is harder
to do in Managed C++? Let's get some specifics here! Otherwise, I just
don't see any advantage to C#, other than it is easier to learn, and that
doesn't apply to experienced C++ programmers.
The biggest criticism I have about C# is the difficulty of deterministic
finalization, which is solved elegantly in Managed C++ using ~Class() and
!Class(). So for me, it is Managed C++ 1, C# 0.
OK, C# has the nice @ operator that lets you put literals in strings and not
worry about escaping them with '\'. Still, I can live without that. And it
lets you have switch statements with case strings, e.g.
switch (str)
{
case "value1":
...
break;
}
And it is not required to put "break" after all cases, it is assumed. But
so what? I wouldn't switch languages just for these features! Come on you
C# advocates! Sell me on C#!!!
Otherwise, I fear my current view that C# is simply another C++ wannabe like
Delphi (but with a nicer syntax) will stand.
-- David