"Gaz" <a@b.com> wrote in message
news:OO****************@TK2MSFTNGP15.phx.gbl...
Now that Visual Studio 2005 Express final has been released, which
language should I go with, c++ or c#? I know c++ already but I haven't
done any programming for a year or two and C# seems a much cleaner
language. Does c++ code compile more efficiently? Is c++ more flexible?
One of the fundamental design goals of the .NET Framework is that is
programmable via multiple languages, any one of which is (or, at least,
should be!) just as good as any other, because they all compile to CLI.
Which language(s) you choose to program in should be, to all intents and
purposes, irrelevant. Of course, each language is syntatically different,
and some have one or two capabilities that others don't - a good example of
this is C#'s support for pointers, which is not supported in VB.NET.
However, these differences are quite small and, for the vast majority of
developers, of little significance.
So, which one(s) to choose? For me, back in 2002, the choice was easy. I'd
spent the last 10 years or so making a living as a jobbing contractor using
Visual Basic and all its derivatives - VBA, VBScript, AccessBasic, WordBasic
etc - never wrote a line of C++ in my life - so for my first couple of .NET
contracts I used VB.NET. However, it soon became clear to me that my earning
potential would be exponentially increased if I knew C# as well as VB.NET -
a quick look at the IT contract developer market showed the massive increase
in jobs available only to C# developers - so I set about learning C# too.
Luckily, a lot of my previous work had involved web development which meant
I was very familiar with JavaScript and, since C#'s syntax in certain areas
resembles JavaScript a fair bit, I found it extremely easy to pick up and
learn.
After a little while, I found that I much preferred C# to VB.NET, which is
not to say that I thought it was any better or worse than VB.NET, just that
I preferred it. Luckily, the demand for C# contract developers (in the UK,
at any rate) has increased over the years, and this trend seems set to
continue with the arrival of v2.0 of the Framework.
So, to recap:
1) if, like me, you're a freelance developer, go for the language(s) which
will earn you the most money
2) if you're an independent programmer maybe writing your own software for
sale, go for the language that you're most comfortable / familiar with
3) if you're programming "just for the fun of it", learn as many .NET
languages as you can.