Often as a new release
of Visual Studio approaches there are posts regarding, where are the two primary languages
in .NET going? In short as has been noted
on one or two places around the net the VB MVPs posed the question of, what is the
strategic long term expectation for VB and how is VB doing in the market? Which
language should I learn, which will help me get a job? etc.
short answer regarding which language to learn is - if you are going to do just
a little programming VB is easier to learn and maintain. If you intend to be
a Professional Software Engineer and limiting your career to being a full time Cubicle Code
Monkey you need to know both. Just knowing C# or VB isn’t enough, as a developer I’ve
learned somewhere between one and two dozen programming languages, to be honest I
lost track of them all and stopped counting long ago – although interestingly enough
I still have my high school ‘Basic’ programming book...sentimental value only - the
point being casual developers will be more comfortable in VB and professional developers
learn languages and VB and C# are both necessary with .NET today.)
At any rate focusing
on the core topic, depending upon where you ‘stand’ your view of VB or C# might be
that it’s doing great or not so great. After
all if you are working in a shop where your senior management likes C# it might seem
like very few people are working with VB.
On the other hand this perception
might be a self-fulfilling prophecy for your company. After all if every project uses
a hammer then there must be a lot of nails (how’s that for twisting a proverb “if
all you have is a hammer everything looks like a nail”) If
your company “supports” both VB and C# languages but encourages that new projects
use one language well then you begin to wonder. As
I noted in the past I’d consider that pretty short-sighted for a consulting company. After
all if your goal is to sell software as a service (which consulting companies do)
you don’t want to lose a major portion of your market to language bias… so before
I go further I want to clarify where I got some of the data I’m about to toss out.
I think it’s common knowledge that
I’m an MVP (I can hear some of you: ‘could he mention it one more time…’) anyway I
bring this up to note that it shouldn’t be a shock to realize that as an MVP I have
a Non-Disclosure Agreement (NDA) with Microsoft. This
comes up because as a group we MVP’s have some communication channels (formal and
informal) with Microsoft. One of the
formal ones revolves around my specialty area Visual Basic.
In this area the VB-MVPs have essentially
an opportunity to truly speak freely to Microsoft on NDA topics. It’s
where we can say we think that feature A is useless or that we think the VB team has
dropped the ball by not having a given feature, or where we think they need to take
the ball and really run with it. It also
allows us to ask questions and get answers that might embarrass one or more people
at Microsoft. In general it is a valuable
tool. Every so often we get permission
to post some information from that discussion to help frame discussions outside that
group – things that aren’t too germane to actual company business, and that’s the
case for the numbers I’m about to post.
There are way more people online
downloading C# right? Wrong – At this
point you aren’t going to be surprised when I say the VB Express is the top download
of the Express editions. It probably
also doesn’t surprise you if I say that it’s downloaded far more frequently then C++
Express. But does it surprise you when
I note that C++ is the number 2 download behind Visual Basic. It
surprised me, after all I expected Visual Web Developer to be in the top 2 (after
all both VB and C# web developers would use that one tool).
That’s right Visual Basic alone
is more popular by a margin of 20% over C++ <credit VB Team>. What
I will say is that the other three express editions are all much closer in terms of
downloads, and registrations. The point
is that Visual Basic is noticeably more popular. Of course this is the Express Edition,
that’s for students and hobbyists, they aren’t professional developers.
So how big is Visual Basic
when someone reviews the market?
Well according to Forrester research
Visual Basic is the #1 .NET language. <credit VB team> Note
that’s not some legacy number based on COM developers, that’s just in terms of .NET
developers. That’s right the majority
of professional developers out there are using Visual Basic, and that even makes sense.
Think about it this way, prior to
.NET the two primary development languages were C++ and VB. C++
was far more powerful, but it took longer and cost more to develop applications. Sure
for someone developing tools or with a huge install base the disadvantages could be
overcome for the power. VB on the other
hand was much easier to learn and use, the code was easier to maintain and its performance
while not equal to, was certainly comparable to C++.
Along comes C#, from the standpoint
of C++ developers C# offers a familiar syntax and reduces the disadvantages of C++
- applications were easier to develop and accordingly cost less. C++
developers and Java developers have without a doubt flocked to C#. In
fact if you are a Java developer and haven’t moved to C# boy are you missing out on
the future. However, these were smaller
developer communities to start with then Visual Basic which also released a .NET version.
Visual Basic also moved to .NET
and its disadvantage – not having the same runtime environment and power as the other
major language went away. Note the fact
that VB is easier to learn, read and maintain is still true but now you also get all
the power of C# and since .NET creates code on par with C++ it means you as a VB developer
are creating first class applications.
Sure some people have jumped from
VB to C# that is to be expected, and many companies which in the past would have C++
for some projects and VB for others are moving to use only 1 .NET language. However,
as I’ve noted in the past most VB developers will find the transition to VB.NET fairly
easy and natural. When I teach I find
that the students with previous VB experience do very well, and in fact that once
they get the key elements of Object Oriented Development are ready to become productive. More
importantly the VB teams recent move from a migration wizard to the Interop toolkit
(similar to WPF Interop) and the Power Packs make the transition from VB6 much easier.
What is interesting is how the VB
team blog (http://blogs.msdn.com/vbteam/)
ranks in the top 1% of all MSDN blogs and the fact that the VB Developer center on
MSDN is one of the top trafficked sections of MSDN (http://msdn2.microsoft.com/vb).
<credit VB Team> In other words
VB is doing just fine and as I’m sure we would all agree so is C#. In
the near term there is no reason to suspect anything about this equation will change
– C++ and Java developers will tend to prefer C# and those who have mastered both
VB and C# will prefer VB J
So what about the future?
Well for starters the Visual Basic
team recently published the Beta version of the Visual Basic language specification. A
great step for defining how the language works, and one I look forward to seeing become
the basis for standardization. We also
know Paul Vick is discussing VB X (aka VB 10) over
at Panopticon Central (http://www.panopticoncentral.net/)
and is very open to input on things to deprecate in the languages specification and
new language features to add. I highly
suggest going over to get in a good suggestion or two. As
for Visual Basic – I’m confident that it’ll be around and diving into all corners
of the Microsoft development tools.
This weblog hosted by Orcsweb Managed Hosting.