As I was sitting in the MSDN Event today listening to the “”OO in VB.NET” talk, something kind of occurred to me (actually, it re-occurred to me as this is something I thought about a ways back but kept forgetting to blog it). I'm not sure what you call it, so I'll just try to explain it.
Compare a few OO keywords in C# and VB. For example:
- C# has abstract, VB has MustInherit
- C# has virtual, VB has Overrideable
- C# has static, VB has Shared
When learning OO concepts, in school or otherwise, terms like abstract, virtual, and static are taught. Each of these terms have their own definitions, which might go like something like this:
- abstract: used to define base classes from which other classes must inherit from; an instance of an abstract class cannot be created
- virtual: used to exhibit polymorphic behavior so that a given method is overrideable, thus allowing one class to implement the method differently from another class
- static: used to define a method that is shared between all instances of a given class
My highlighting should show you the connection: C# uses actual academic OO terms as keywords in its language while VB uses the “friendly” normal english definition as its keywords.
I find this very interesting as it really does show the distinctions in the languages and how better suited to acedemia C# is than VB, and the flip side of that in how much VB is better suited to hobbyists. Hobbyists will have a much better shot at understanding words like shared and overrideable than static and virtual.
Print | posted on Tuesday, October 26, 2004 10:07 PM