I used to get hung up over this back in the day, also. I was a VB purist
(whatever that means). When I switched to .NET, VB.NET frustrated me for a
while. It was a while before I ventured into C# (perhaps 2 years). Many of
the things I wanted (and still want) to do could very easily be simplified
with some of the features that VB6 had (such as control arrays). But as I
started to do some very complicated stuff (and tons of wheel reinventing) in
VB.NET mainly for the sake of having some good VB.NET code out there
(everything tends to be C# these days) I began falling in love with C#.
Now, I do VB.NET at work some of the time and C# most of the time and at
home I've mostly discontinued my use of VB.NET. When I got into the early
betas of VS.NET 2005 I took a preference to C#. For some reason, and one I
can't explain, VB.NET just doesn't make me feel at home anymore. I haven't
investigated VB.NET 2005 very much. I will soon enough when our company
migrates but in the meantime, I'm a C# guy.
In any case, the event wiring mechanism in C# is, lets say, convenient. I
like the way it is done in VB.NET/VB6 quite a bit, but the C# way is
actually a step forward (to me, your mileage may vary). In short, many of
the things that .NET does vs. VB6 ruffled my feathers but once I opened up
my mind I learned how to be productive with them and even started to like
them. Now we have .NET 2.0 and with all the new stuff my feathers are
ruffled again and, well, we just have to keep an open mind. Personally, my
career depends on it. But rather, I enjoy it. All the new stuff is
awesome. Sure, it isn't achieved the same way it was (in some cases), but
that's the price of progress. I suspect that given a short amount of time,
you'll start to prefer the new way (unless you do more development in legacy
environments than you do next-gen).
Thanks,
Shawn
http://www.zenofdotnet.com
Well just to be clear I didn't mean to come across like I want to hang
onto VB6 forever. It actually irks me to see people doing new
development in VB6, and/or trying to make classic ASP and VB6 apps
live forever without at least attempting to upgrade.
I love C# and VB.Net probably equally with regard to the language
itself. I do a mix of both at work, although most of my Winforms
experience is with VB.Net. But, while I don't want to go back to VB6,
I do feel its important to notice whats improved, and what's a step
back. In terms of overall productivity, there is no denying that .Net
is a step back.. what we gained was huge improvements in the way web
applications are written when compared to classic ASP with VB6 dlls,
and a lot of very nice features.. Is it worth the tradeoff? Sure, I
think so. But its also worthwhile to point out what VB6 did do
better, regardless of the fact that it is human nature to get
comfortable with whatever language you've worked in most and to lean
toward that language. If I were starting a new application right now
and had a choice, I would choose C# because I like coding in it, and
learning various things about it (like what I learned today about the
IDE.. I had been manually typing the events both in the code module
and in the "stay the hell out" portion of the designer generated code
until today!
But honestly, despite the fact I love coding in C#, if I were a
manager of a software team today, I would probably mandate that my
team stick to VB.Net, for several reasons:
1. Easier to transition classic ASP and VB6 developers to.
2. Tends to lead to higher levels of productivity (even Microsoft
bills it as the more productive of the two languages). In my
observations, given equal skill in both languages, a C# developer
seems to take longer to complete a task, and the results of the task
tend to be heavier in the way of code-complexity and less heavy toward
actually solving the problem at hand
3. VB.Net has a background compiler which has many productivity
advantages
4. Its easier to read someone elses code, because the IDE does such a
good job (better than C# that is) of enforcing consistent code
formatting.
5. VB.Net seems to be higher in priority with Microsoft. VB.Net code
E&C first, it was added to C# only after much whining. Reporting
Services 2000 only supports VB.Net for scripting inside reports. I
suspect C# is supported in the 2005 version, but Im not sure about
that one, maybe someone else can comment?