As was the intention of older
BASIC variants, VB was intended to have a low
learning curve. Further, the IDE was intended to promote productivity; even for complex
GUI applications. Programming involves
visually arranging
components or
controls on a
form, specifying attributes and actions for those components, and writing
code that directs behavior. Since components have default attributes and actions, a programmer can develop a simple program without writing much code. Programs built with earlier versions suffered performance problems, but faster computers and native code compilation made this less of an issue. Since a VB program is compiled as a native code
executable instead of interpreted as old BASIC variants, it runs relatively fast and requires relatively little storage space. But,
from version 5 on, it requires relatively large library files to be loaded at runtime; about 1 MB. Core runtime libraries are included by default in
Windows 2000 and later, but extended runtime components require extra installation consideration. Earlier versions of
Microsoft Windows (95/98/NT), require the runtime libraries to be distributed 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. Development in the IDE is organized as a
project which can be configured to output as a
program (
EXE), a
dynamic-link library (DLL) or an
ActiveX control library (OCX) which is a specialized DLL. Controls provide the graphical functionality of a GUI application, and programmers attach code to event handlers to perform actions. For example, a drop-down control displays a list of items. When the user selects an item, an event handler is automatically called that executes the code that the programmer attached to the handler. For a DLL, the VB code generally provides no user interface, and instead provides COM objects to other programs. This allows for capabilities such as
server-side processing or an add-in module. Via the COM technology, unused memory is recovered for reuse using
reference counting; recovering when the count reaches zero. VB reduces the count when a variable goes out of scope or when assigned to Nothing. This design prevents
memory leaks that plague some, older languages such as C & C++. It differs from the more modern types of
garbage collection. VB provides a large library of utility objects, and it provides basic support for
object-oriented programming. Unlike many other programming languages, VB code is not
case-sensitive though the IDE transforms
keywords into a standard case and variable names to match the case used elsewhere in the project. Of note,
string comparison is case sensitive by default. The VB compiler is shared with other Visual Studio suite languages, C and C++. Nevertheless, by default the restrictions in the IDE do not allow creation of some targets (Windows model DLLs) and threading models, but over the years, developers have bypassed these restrictions. ==Features==