>>Having a low-level language like C# is a good thing. If you need to drop down a level for a certain reason, it is good that a language, which is not that difficult to grasp, is available to you.
>
>What makes C# lowlevel and VB non lowlevel?
Depends on how you define the term low-level versus high-level. One viewpoint is that since C# and VB both generate IL code they are basically on equal footing.
Another viewpoint may consider VB a "higher level" language by comparing the language's built in features. Take a look at VB's vast function list for example. Yes you can duplicate all 162 functions using C# but look at all of the code you would have to write to do it. Having these functions available saves the developer a lot of coding. It also "buffers" the developer from having to learn the .net framework classes in such detail.
How about VB's ability to do implicit conversions, I would consider that a feature of a "high-level" language. I've also noticed that VB handles some of it's interfacing with objects in a “smarter” manner. For example try returning a key value that does not exist from the session object. VB will return an empty string where C# throws an error. In C# you must wrap the code with Try Catch to handle the missing key or session timeout.
>
>>From an efficiency standpoint however, VB *is* better - hands down.
>
>Why? If anything, technically, the only difference in the languages that I found is that VB.NET doesn't support default methods and properties, where C# does. Thats the only "effeciency" difference I have found, and it is in C#'s favor.
If you agree that one "could" consider VB a higher-level language then you should also agree that programming in a high-level language is typically more efficient than programming in a lower level language.
Michael McLain