Because of the previous differences between Visual Basic
and C/C++, many developers assume incorrectly about the capabilities of Visual
Basic .NET. Many Visual Basic developers think that Visual C# is a more
powerful language than Visual Basic. In other words, Visual Basic developers
assume that you can do many things in Visual C# that you cannot do in Visual
Basic .NET, just as there are many things that you can do in C/C++ but cannot
do in Microsoft Visual Basic 6.0 or earlier. This assumption is
incorrect.
Although there are differences between Visual Basic .NET
and Visual C# .NET, both are first-class programming languages that are based
on the Microsoft .NET Framework, and they are equally powerful. Visual Basic
.NET is a true object-oriented programming language that includes new and
improved features such as inheritance, polymorphism, interfaces, and
overloading. Both Visual Basic .NET and Visual C# .NET use the common language
runtime. There are almost no performance issues between Visual Basic .NET and
Visual C# .NET. Visual C# .NET may have a few more "power" features such as
handling unmanaged code, and Visual Basic .NET may be skewed a little toward
ease of use by providing features such as late binding. However, the
differences between Visual Basic .NET and Visual C# .NET are very small
compared to what they were in earlier versions.
The "Differences
Between Microsoft Visual Basic .NET and Microsoft Visual C# .NET" white paper
describes some of the differences between Visual Basic .NET and Visual C# .NET.
However, remember that the .NET Framework is intended to be language
independent. When you must select between Visual Basic .NET and Visual C# .NET,
decide primarily based on what you already know and what you are comfortable
with. It is easier for Visual Basic 6.0 developers to use Visual Basic .NET and
for C++/Java programmers to use Visual C# .NET. The existing experience of a
programmer far outweighs the small differences between the two
languages.
No matter which language you select based on your personal
preference and past experience, both languages are powerful developer tools and
first-class programming languages that share the common language runtime in the
.NET Framework.