Visual Basic
It is claimed that there are more VB programmers in the world than that of any other language. Its ubiquity is the proof for its utility. However, serious application developers who are not familiar with VB should not have any illusion 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 its ease of using objects, or ActiveX controls that Microsoft has been pushing since mid 90's. ActiveX control is a type of COM components that are binary objects. 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 over-head and hassle to use them in other IDE's (e.g. VC++) that the 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 software industry, but the success is probably not nearly as much as Microsoft has 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 authentication process that 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 graphic user interface made by Microsoft such as the Chart control, 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 Data Environment and ADODC control highly hailed my Microsoft. You can replace them with Connection objects and Recordset objects that can be created with a few lines of code.
Here is conclusion regarding using VB for serious application developers who command multiple languaes (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 STATISTICA package).
if you want to put together a mall application with 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 and make the commitment to support it.
(originally written on 5/19/02)
