Visual Basic

It is claimed that there are more VB programmers in the world than there are of any other language.  Its ubiquity is proof of its utility.  However, serious application developers who are not familiar with VB should not have any illusions about it. 
VB is much more than just a language.  The semantic part of VB is very simple and sloppy as a computer language.  It is essentially of BASIC as its name indicates.  Most of its power comes from the ease of use of objects, or ActiveX controls that Microsoft has been pushing since the mid-90s.  An ActiveX control is a type of COM component that is a binary object.  It is independent of language, but dependent on Windows.  Although any language can use ActiveX controls, VB is by far the best IDE to use them. There is so much overhead and hassle to use them in other IDEs (e.g., VC++) that VB is almost the only practical place to use them extensively.  Microsoft's enormous effort in preaching ActiveX has achieved high availability of ActiveX controls developed by vendors spanning a wide range of the software industry, but the success is probably not nearly as much as Microsoft had wished. ActiveX has almost completely failed in competing against Java applets for small applications on Web pages.  It is the victim of its own power - it is so powerful that running an ActiveX control from a Web page has to go through an authentication process, which is a big overhead for development and a hassle for end users.
Developing an application with VB is essentially assembling objects that come with VB, or can be installed and are made by Microsoft or other vendors.  Therefore, the quality of the application is largely determined by the qualities of the objects.  Some objects (e.g., ADO) are very good - robust and efficient.  Many (probably most) are shaky, inconsistent in their behaviors, and inefficient.  Typical examples of shaky ActiveX controls are those with a graphic user interface made by Microsoft, such as the Chart control and the Microsoft Hierarchical FlexGrid control.  As a rule of thumb, whenever you can replace a control with a few lines of code, do it.  Do not use the Data Environment and ADODC control, highly hailed by Microsoft.  You can replace them with Connection objects and Recordset objects that can be created with a few lines of code.
Here is the conclusion regarding using VB for serious application developers who command multiple languages (e.g., C, C++, Java) :
You use VB
If it is the only choice to use some ActiveX controls that you plan to use (such as the library of the STATISTICA package).
If you want to put together a mall application with a GUI very quickly and use it as a tool instead of a final commercial product. 
If you have to use a lot of ActiveX controls or integrate with MS Office applications or similar other applications.
You never use VB
if you plan to develop a complex, large-scale, high-performance application.
If you plan to develop a robust application that will be distributed widely as a final product, make the commitment to support it.


(originally written on 5/19/02)