Comparing Visual Basic to C#
Visual Basic.Net and C# (C Sharp) are the main programming languages using the .NET Framework.
Visual Basic (encompassing VB6, VBA and VB.Net) is one of the most widely used languages in the world. Business administration systems are mostly written in Visual Basic. Most enterprise companies have a large investment in Visual Basic. Visual Basic for Applications (VBA) is still used in the Microsoft Office suite of programs – Microsoft Word, Excel, Outlook, Access.
The TIOBE Index for August 2018
The TIOBE index (created by an independent Dutch company) is a measure of popularity of programming languages. The index is calculated from the number of Browser queries containing the name of the language. Here is a list of the top 10 languages:
Visual Basic .NET
As can be seen, Visual Basic.Net is holding its own very nicely against C#.
The commonalties between C# and VB.Net
VB.Net and C# have very different syntax.
However different the two languages appear, they share the same Base Classes of the .NET Framework, run the same .NET Framework runtime libraries, and compile to the same intermediate language.
Both languages have the same garbage collection, cross language inheritance, exception handling, and debugging. The same binary output can be produced from either .NET programming language.
But the main difference lies in the way the two languages are used. C# users are more likely to create Systems based on Object Oriented Programming concepts, while VB.Net users are more likely to concentrate on Business rules and a user-friendly User Interface.
Why administration systems should be standardised on VB.Net
There are many persuasive reasons that makes VB.Net the ideal programming language for Business Systems.
- VB.Net is much easier to learn than C#
- VB.Net is not case-sensitive – Case sensitivity can make C# coding difficult to write, debug and maintain
- VB.Net requires less comments and reads more intuitively
- The Visual Studio development environment is smarter and more intuitive when working with VB.Net
- Event handling is easier in VB.Net
- There are many features in VB.Net which the C# languages does not have, that make programming easier
- Legacy Visual Basic 6 and Microsoft Access applications can be more readily converted to VB.Net
- Knowledge of Visual Basic for Applications (VBA) is required for programming Microsoft Office programs – Access, Outlook, Word, Excel
- VB.Net is safer than C# and less likely to cause system failures
- For code execution efficiency, there is nothing to choose between the two languages
- VB.Net programmers are likely to charge less for their services than C# programmers
- VB.Net programmers are less likely to get involved in the complexities of Object Oriented programming
- The two languages are highly compatible – there is very little that C# can do, that VB.Net cannot do (or want to do)
- Where a routine written in C# is available, it can be translated to VB.Net using freely available software
- VB.Net programming has far fewer complexities – and simplicity, above all, reduces the cost of maintaining applications
- VB.Net is more verbose that C# – but with IntelliSense fewer keystrokes are actually needed
Visual Basic is written in a pseudo-English style format
VB.Net is easier to program compared to C#, as this syntax comparison shows:
Two conditions are both true
One or other condition is true
A condition is not true
The pseudo-English of Visual Basic is much easier to understand, read and to debug. The Visual Basic language attempts to make programming as easy as possible – without loosing performance efficiency or functionality.
VB.Net versus C# – Efficiency and Functionality
There is not much to choose between the two languages in terms of functionality. There is little performance difference, if any, between a VB.Net and a C# routine.
In any event, performance of a Company's administration systems is more dependent on database design optimisation, network traffic and data record access efficiency – than programming language efficiency.
Cost of Maintenance
Some of the latest enhancements to Visual Basic.Net have kept the language in line with C#. But these enhancements have added an unwelcome degree of complexity. And complexity leads to increased maintenance costs.
These enhancements were:
- Option Infer
- Lambda Expressions
- Anonymous Types
- .Net Core
VB has strayed far from its roots as a simple programming language. None of these recent additions improve productivity in developing commercial Business systems.
Thankfully, Microsoft have now decided not to maintain parity with C#. With the next release of VB.Net, Microsoft will let the two languages go their different ways. Expect improvements to the Visual Basic User Interface and the controls. All welcome news. Yippee!
Both languages will still use the same .Net APIs, and both will still be part of Visual Studio.