Family Tree Mike said:
The .Net language is ML. I would say few dive into that...
Which BOTH languages compile down to, producing very similar and in many
cases identical IL. The "low level" .NET language is indeed IL, but true
procedural .NET code is in my mind just one language. VB and C# represent
different dialects of that same language. To me, VB is the London Cockney
and C# is the Glaswegian. Both are speaking English, but have very
different ways of speaking it. Chances are good that if you can understand
English, you can understand most of what each person is saying.
As to unifying VB and C#, that is a sure way to kill both.
I don't see how? As long as each language's syntax stays true to its roots,
it will always command the audience which is loyal to it. If they change
things in VB like using "switch" instead of "Select Case" then yes, they'd
end up with a large migration of coders from VB to C# - but they haven't.
They've actually made some significant changes to architecture with some of
the new WPF technologies such as DependencyProperties and RoutedEvents -
these are things they made available to BOTH languages. I didn't see it
killing either one off, though.
Same is true for LinQ. The language enhancements to VB were not
insignificant, and they were shared with C# as well for the most part. That
didn't kill off both languages either, did it?
Might have been nice to have a native way of using unsafe code in VB as
well. Despite treading close to the C# boundaries, I submit that it STILL
wouldn't have killed both languages. It merely broadens the horizons for VB
coders, and allows coders to essentially dabble in either language
effortlessly.
Specialised languages like F# will remain doing what they do best. Even
having said that, we're now seeing the beginnings of merging a declarative
model into the procedural model of C#/VB courtesy of XAML. Despite such a
huge change addition, guess what? Still isn't killing both languages.
The changes to the compiler is probably prohibitive. It seems like a big
chnage to the syntax vs the gains that are possible for the vb comunity.
Then that's for MS to figure out. It's up to them and their language
engineers to roll such a facility into VB without it being ambiguous,
prohibitively complex, uselessly restrained, or requiring big changes to
existing syntax. They managed to do all of this with LinQ, Lambdas,
Generics, and various others.
This is, after all, their job. ;-)