Mantorok said:
Hi all
We are an organisation that use C# currently and we have some members who
are not yet trained in .Net or C#, some staff have requested they use VB
instead (probably due to their background).
Given that we are already using C# I think adding VB into the mix is a bad
idea - not with regards to the language itself but the fact that the
VB.Net coders won't learn C# and possibly vice-versa.
Apart from the business reasons not to introduce a 2nd .Net language, are
there any sites with un-biased views as to why both languages are in
effect - equal?
Thanks
Hi Mantrorok.
As part of my work I train VB6 developers becomming .NET developers. Both
in-house, but we also sell this service to our customers. Hence, I have
trained VBers in both VB.NET and C#, and I have noticed some important
issues with the two languages.
VB6 devs learning C# - pretty soon learns to forget everything they know
about what they used to do, and adopt OO-principles. C# is new and they
think in new directions.
However, the VBers that moves to VB.NET typically have a lot slower
learning-curve. As the syntax is so like the old basic, they tend to think
of VB.NET as just another complex Visual Basic alas more complex.
And the latter group typically don't adopt OO-principles. They still view a
class as some module you just put code and som Dims in, they keep on
concatinating strings, declaring their arrays, and don't get why an
ArrayList or a StringBuilder could ever be useful. The think in terms of
variables and don't get the 'reference on stack, object on heap' model and
can't undestand why passing a huge array to a method would be the bad thing.
Just this monday I visited a customer to do some simple maintainance for
them, and their VB.NET devs still prefix their types like they was variants:
strName, lngAge, objSqlConnection. It is so bleeding obvious why they
choosed VB.NET, not becuase they like it, but becuase they liked what they
had. They want to continue coding in same old way as they are used to. I
think most of them are also frustrated with .NET and just think it's complex
and bothersome.
Another thing about VB.NET and OO is the weird syntax, C# maps pretty well
to common concepts in the OO world, while VB.NET is harder to teach:
If I want to make this method abstract do I mark it as abstract?
C# - - Yes.
VB.NET - No Sir! You write mustinherit.
While I hate VB in any form and truly think that Visual Basic Sucks So Hard
It Bends Light -
I tried to give you some real exemples of my experience with teaching .NET
to VBers.
Hope this helped
- Michael S