Herfried K. Wagner said:
There are some similarities in syntax, but especially in terms of
object-orientiation C++ and C# differ significantly. Additionally C#'s
semantics are close to those of VB6 (references instead of pointers) too.
Sure. All of that just says that it's not going to be a breeze going
from either C# or VB.NET to C/C++ though. The similarities in syntax,
case-sensitivity etc are going to *help* though.
How long does it take to learn how 'for', 'do', etc. work in C# if you are
familiar with another programming language, be it VB(.NET) or C(++)? One
day? Two days? I have both a C/C++ and VB background, so I do not know,
but once I have understood how a certain thing works in one of the two
programming languages VB.NET and C# I can quickly find out how to archieve
the same in the other programming language.
It's not a question of *learning* it though - it's a case of being
*comfortable* with a type of syntax. I know I find there's a certain
period when I go between Java and C# where I use the wrong naming
conventions and have to keep correcting myself. Can you really say
there wouldn't be the same kind of difficulty going from VB.NET to
C/C++ in terms of semi-colons, case-sensitivity, and just not be
familiar with the operators?
Again: Which knowledge of C# can be easily applied to C/C++? The syntax of
some loop types and a few keywords. There are /so many/ differences that
reusing this knowledge is really insignificant and IMO should not be a
reason for preferring C# over VB.NET.
It's a comfort thing - and unless you can give me any advantage to
picking VB.NET over C# in terms of moving to C/C++, the small advantage
C# *does* offer for that transition is enough to make it a reason for
preferring C# over VB.NET - if, of course, the prospect of writing
C/C++ in the future is a significant one in the first place.