Personally I have used C-style languages (especially "pure" C) and different
dialects of BASIC for many years in parallel.
My conclusion is that the difference in the syntax is negligible compared to
other differences, especially semantical differences or differences in IDE
the support. For example, > 10 years ago I really preferred VB over C (for
user-level development) because it was almost impossible to provoce buffer
overruns and to dereference invalid pointers as it was possible in C without
using certain odd tricks.
As for the comparison between VB and C# I tend to prefer VB because of some
handy features it provides opposed to C#, such as 'My', declarative event
handling, XML literal support directly built into the language.
Nevertheless, I believe that even those features are only a plus for VB if
you really need them. When building a library dealing with XML (Office Open
XML or similar) heavily, XML support of VB is really a huge advantage over
C#. On the other hand, if using Lambdas etc. forms a core part of the code,
C# would have advantages over VB.
The opinions expressed are my own - and are not intended to disparage the OP's
or others opinions or to make any claims about the fitness of VB as a language
1) My - not so much. There are a couple of places where it has some handy
methods, etc (setting and resources) - but, I'm not sure overall it's a
significant advantage. Any C# developer who has to deal with sort of thing
continually, is likely to create their own wrappers anyway - basically
nullifying the advantage....
2) Declaritve Event Handling - ewwwww! Can't stand it actually. It's fine
when you have one, maybe two controls sharing a common event handler - but,
many more then that and Handles becomes a down right abomination in my opinion.
Again, this is purely subjective opinion - but, I much prefere the C# way (though,
I've never been thoroughly satisifed with the use of the +=, -= operators)
3) XML literals - Yes, in some cases this gives VB a slight advantage over C#,
but I wouldn't make it to be a significant advantage. I would put it more on
the order of auto implemented properties in C# or VB's ability to redirect a
interface method to an implementation with a different name, convienient, but not
essential. I mean, really you could accomplish nearly the same thing in C#
using a resource... Granted, it takes a bit more code and setup, but once
done - it wouldn't pose a significant issue.
I think the only domain where VB currently has a real and significant
advantage over C# is in COM interop scenarios.
What I basically want to say: The number of charactes one has to type to
achieve a certain task is often irrelevant because there are so many other
factors which play a crucial role in determining which programming language
is more suitable for a certain task.
I totally agree with the above.