|
Visual Basic (VB) is an event driven programming language and associated development environment from Microsoft. VB has been replaced by Visual Basic .NET. The older version of VB was derived heavily from BASIC and enables rapid application development (RAD) of graphical user interface (GUI) applications, access to databases using DAO, RDO, or ADO, and creation of ActiveX controls and objects. A programmer can put together an application using the components provided with Visual Basic itself. Programs written in Visual Basic can also use the Windows API, but doing so requires external function declarations. In business programming, Visual Basic has one of the largest user bases. According to some sources, as of 2003, 52% of software developers used Visual Basic, making it the most popular programming language at that time. Another point of view was provided by the research done by Evans Data that found that 43% of Visual Basic developers planned to move to other languages.• Visual Basic currently competes with PHP and C++ as the third most popular programming language behind Java and C.
Derivative languages Microsoft has developed derivatives of Visual Basic for use in scripting. It is derived heavily from BASIC and host applications, and has replaced the original Visual Basic language with a .NET platform version: Many users have found that automated conversion of anything more than trivial VB6 programs is essentially impossible, with many TODO's marking incompatible sections. A rewrite does take care of this, but a complete rewrite of a complex program is often not practical for several reasons. First, a small company considering a rewrite must usually choose between spending its budget on new features and maintenance, or on conversion of a static program, which in itself adds no value. Second, a rewrite in a new language means an extensive testing cycle, again an expense with no corresponding market value. As a result, the migration path has not as often been from VB6 to VB.NET, but rather to other languages and platforms such as Java, C# and Delphi. Language features Visual Basic was designed to be easy to learn and use. The language not only allows programmers to easily create simple GUI applications, but also has the flexibility to develop fairly complex applications as well. Programming in VB is a combination of visually arranging components or controls on a form, specifying attributes and actions of those components, and writing additional lines of code for more functionality. Since default attributes and actions are defined for the components, a simple program can be created without the programmer having to write many lines of code. Performance problems were experienced by earlier versions, but with faster computers and native code compilation this has become less of an issue. Although programs can be compiled into native code executables from version 5 onwards, they still require the presence of runtime libraries of approximately 2 MB in size. This runtime is included by default in Windows 2000 and later, but for earlier versions of Windows it must be distributed together with the executable. Forms are created using drag and drop techniques. A tool is used to place controls (e.g., text boxes, buttons, etc.) on the form (window). Controls have attributes and event handlers associated with them. Default values are provided when the control is created, but may be changed by the programmer. Many attribute values can be modified during run time based on user actions or changes in the environment, providing a dynamic application. For example, code can be inserted into the form resize event handler to reposition a control so that it remains centered on the form, expands to fill up the form, etc. By inserting code into the event handler for a keypress in a text box, the program can automatically translate the case of the text being entered, or even prevent certain characters from being inserted. Visual Basic can create executables(EXE), ActiveX controls, DLL files, but is primarily used to develop Windows applications and to interface web database systems. Dialog boxes with less functionality (e.g., no maximize/minimize control) can be used to provide pop-up capabilities. Controls provide the basic functionality of the application, while programmers can insert additional logic within the appropriate event handlers. For example, a drop-down combination box will automatically display its list and allow the user to select any element. An event handler is called when an item is selected, which can then execute additional code created by the programmer to perform some action based on which element was selected, such as populating a related list. Alternatively, a Visual Basic component can have no user interface, and instead provide ActiveX objects to other programs via Component Object Model (COM). This allows for server-side processing or an add-in module. The language is garbage collected using reference counting, has a large library of utility objects, and has basic object oriented support. Since the more common components are included in the default project template, the programmer seldom needs to specify additional libraries. Unlike many other programming languages, Visual Basic is generally not case sensitive, although it will transform keywords into a standard case configuration and force the case of variable names to conform to the case of the entry within the symbol table entry. String comparisons are case sensitive by default, but can be made case insensitive if so desired. Controversy Visual Basic is seen as a controversial language; many programmers have strong feelings regarding the quality of Visual Basic and its ability to compete with newer languages. It was designed to be a simple language. In the interest of convenience and rapid development, some features like explicit variable declaration are turned off by default, something that can be easily changed. This leads to some programmers praising Visual Basic for how simple it is to use, but can also lead to frustration when programmers encounter problems that the features would have detected. For instance, in Visual Basic a common mistake is to incorrectly type the name of a variable, creating a new variable with a slightly different name. Performance Early versions of Visual Basic were not competitive at performing computationally intensive tasks because they were interpreted, and not compiled to machine code. Although this roadblock was removed with VB5 (which compiles to the same intermediate language and uses the same back end as Visual C++), some features of the language design still introduce overhead which can be avoided in languages like Delphi or C++. These are more likely to be encountered in code involving objects, methods, and properties than in strictly numerical code. Error Handling Visual Basic does not have exception handling with the same capabilities of C++ or Java, but the On Error facility does provide nonlocal error handling with features similar to Windows Structured Exception Handling, including the ability to resume after an error (a feature that is not provided by either of the other two languages, although of dubious utility in production code). Simplicity Many critics of Visual Basic explain that the simple nature of Visual Basic is harmful in the long run. Many people have learned VB on their own without learning good programming practices. Even when VB is learned in a formal classroom, the student may not be introduced to many fundamental programming techniques and constructs, since much of the functionality is contained within the individual components and not visible to the programmer. Since it is possible to learn how to use VB without learning standard programming practices, this often leads to unintelligible code and workarounds. Second, having many of the checks and warnings that a compiler implements turned off by default may lead to difficulties in finding bugs. Experienced programmers working in VB tend to turn such checks on. Many of the criticisms fired at Visual Basic are in fact criticisms of its ancestor, BASIC. A famous formulation by Edsger Dijkstra was, "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration *" (Dijkstra was no less scathing about FORTRAN, PL/I, COBOL and APL). Debugging Visual Basic has a comprehensive set of debugging tools comparable to those available in the Visual C++ products of the same time period. Features include breakpoints, the ability to watch variables and modify watched variables while paused, the ability to modify the point of execution, and the ability to make modifications to code while paused, often not requiring a program restart. Arbitrary code could be executed in the "immediate window", an online interpreter, a very powerful feature. In some cases, these features were more capable than their counterparts in Visual C++—for instance, edit and continue in VC was inspired by the VB feature, and there has never been a VC equivalent of the immediate window. Furthermore, since VB5 it has been possible to generate debug symbols for a native executable and step into VB code in external debuggers, like the Microsoft debugger or the VC debugger, although the implementation of VB objects makes it difficult to debug code that uses them heavily. Simplicity While some detractors argue that the simplicity of Visual Basic is a weakness, many proponents of Visual Basic explain that the simple nature of Visual Basic is its main strength, allowing very rapid application development to experienced Visual Basic coders and a very slight learning curve for programmers coming from other languages. Additionally, Visual Basic applications can easily be integrated with databases, a common requirement. For example, by using controls that are bound to a database, it is possible to write a VB application that maintains information within the database without writing any lines of VB code. Visual Basic is also a conglomerate of language features and syntax, with less consistency, but more tolerance, than many modern programming languages. Many language features like GoSub, On Error, and declaring the type of a variable by the last character in the name (i.e. str$) are legacies from Visual Basic's BASIC roots, and are included for backward-compatibility. The syntax of VB is different from most other languages, which can lead to confusion for new VB programmers. For example, the statement "Dim a, b, c As Integer" declares "c" as integer, but "a" and "b" are declared as Variant. Another source of confusion for new programmers is the different use of parentheses for arguments of functions and subroutines. Other characteristics include the entry of keyword, variable and subroutine names that are not case sensitive, and an underscore "_" must be used for a statement to span multiple lines. Some Visual Basic programmers perceive these as strengths needed to avoid case-sensitive compiler errors, and accidentally omitting line-termination characters some languages require (usually semicolons). For example, the ability to enter variable and subroutine names in any case, coupled with the IDE's automatic correction to the case used in the declaration, can be used to the programmer's advantage: by declaring all names in mixed case, but entering them in lower case elsewhere, allows the programmer to type faster and to detect typos when a token remains in lower case. The language continues to attract much praise and criticism, and it continues to cater to a large base of users and developers. The language is well suited for certain kinds of GUI applications (e.g., front end to a database), but less suited for others (e.g., compute-bound programs). Its simplicity and ease of use explain its popularity as a tool for solving business problems — most business stakeholders do not care about technical elegance and effectiveness, and concentrate instead on the cost effectiveness of Visual Basic. Programming constructs not present in Visual Basic Many of these features are implemented in Microsoft's replacement for Visual Basic 6 and prior, VB.NET. On Error" statement, which provides similar functionality to Windows Structured Exception Handling.While Visual Basic does not naturally support these features, programmers can construct work-arounds to give their programs similar functionality if they desire. Characteristics present in Visual Basic Visual Basic has the following uncommon traits: Evolution of Visual Basic VB 1.0 was introduced in 1991. The approach for connecting the programming language to the graphical user interface is derived from a prototype developed by Alan Cooper called Tripod. Microsoft contracted with Cooper and his associates to develop Tripod into a programmable shell for Windows 3.0, under the code name Ruby (no relation to the Ruby programming language). Tripod did not include a programming language at all, and Ruby contained only a rudimentary command processor sufficient for its role as a Windows shell. Microsoft decided to use the simple Program Manager shell for Windows 3.0 instead of Ruby, and combine Ruby with the Basic language to create Visual Basic. Ruby provided the "visual" part of Visual Basic—the form designer and editing tools—along with the ability to load dynamic link libraries containing additional controls (then called "gizmos"). Ruby's extensible gizmos later became the VBX interface. Timeline of Visual Basic (VB1 to VB6)
See also | |||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||
![]() |
|
| |