Tony Thijs said:
A MS produkt manager indicated that with the 2005 generation things like
refactoring object interfaces won't belong to the VB realm anymore.
I can believe that. As far as I know, even 3rd party refactoring tools are
only available for C# at this point, though at least one vendor has stated
plans to roll out a VB version.
Furthermore, my impression is the C# language environment is better geared
for reusibility and security control of code and components over VB
I don't know about reusability. Depends on what you mean by it. You can
build classes and control visibility as well with either language in my
experience, though VB does encourage some unsavory practices such as its
Module feature which I feel provides ease of use at the expense of safety
(by encouraging global variables).
... where it comes to explicitness and things like inline raw performance
monitoring and error handling.
Error handling works the same, unless you use legacy VB error constructs.
With Option Explicit and Option Strict propertly set you can make VB as
explicit as C#, but of course, the possibility is there for you to be sloppy
if you choose. That is the basic difference -- C# provides what a classic
VB developer would probably consider "bondage and discipline". VB offers it
too, but only as an option.
Another thing are performance considirations like late and early binding.
Are they really as sustainable in both languages?
Both languages can do both late and early binding -- VB actually makes late
binding a bit easier to do in some ways. I don't know that actual
performance would be influenced by the language used, however.
I prefer and use C# whenever and wherever possible -- but I was compelled to
take on a substantial VB.NET project recently, and it wasn't the end of the
world. It is easier to be a slob programmer in VB.NET, but you don't HAVE
to be.
By the way, when I mentioned political considerations connected with
language choice, I did not mean to imply that those were inconsequential.
For example, I take the completely unscientific position that if I use C#
rather than VB.NET, stakeholders will tend to perceive a project as more
"serious", and I will tend to get more "serious" programmers when I
advertise for help, etc. There's something inherently romantic about all
those curly braces that impresses the people with the purse strings and
fends off the more casual / sloppy type of developer. It's nutty, of
course, but sometimes, perception is more important than reality, and even
*creates* reality.
Look at it this way, some people hold a core belief that VB* (meaning VB6,
VBScript, VB.NET, VB.anything) is a "toy" langauge. This is utter nonsense,
of course, particularly in the case of VB.NET. But if you have the ability
to choose, why not pick a C-family language where no one is going to kick
sand in your face? It just makes life easier all on down the line.
--Bob