what he meant by other computers is, if u compile a vb code on an xp machine and with like visual studio 2003, there is a chance tht it wont run on older os's unless u update the vb runtime files.. and it wont definately wont run on any other os other than Windows,
"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."
http://en.wikipedia.org/wiki/Visual_BASIC
and the reason he said VB is not really is a programming language can be found in the article below. if u read it carefully then u will find tht it doesnt have the most important characterstics for being an Object Oriented Languages. I think i am not good at programming but when we were taught we were specifically told never to use VB, well i used it though and it sux.. its buggy and its slowwwwwwwww...(not vb but the runtimes and executables). i will always say C and C++ is the best.. u can use it to create anything.. VB is good if u just wanna code and show that u r a programmer.. atleast it has got windows ( and its easy to design one.. ).. but its the trend isnt it.. windows

..
but c or c++ or even VB is not photoshop or close to it..
Controversy
Visual Basic is 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
compile time
type-checking and variable declaration are turned off by default. This leads to some programmers praising Visual Basic for how simple it is to use, but also can lead to frustration when programmers encounter problems that the features would have detected (e.g., a typo generating an "undefined variable" error message).
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
[2]." (Dijkstra was no less scathing about
FORTRAN,
PL/I,
COBOL and
APL.)
However, 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 than 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. 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 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). The language is simple and human readable which eases maintenance and support, especially when performed by developers that did not originally author the software. 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.
[
edit]
Programming constructs not present in Visual Basic - Inheritance. Visual Basic versions 5 and 6 are object oriented languages but do not include implementation inheritance. VB5 and 6 do however include specification of interfaces. That is, a single class can have as many distinct interfaces as the programmer desires. VB.NET implements the full set of object-oriented features. Visual Basic provides a specific syntax for access to attributes called Property methods, and this is often implemented using getters and setters in C++ or Java. Python has an equivalent notation to VB6's property Let and Get.
- Threading support not present prior to Visual Basic .NET.
- Structured exception handling prior to Visual Basic .NET. Error handling is controlled by an "On Error" statement.
- Built-in support for bit shifting. This feature appears only in Visual Basic .NET 2003 (7.1) or higher.
- Typecasting. VB instead has explicit conversion functions.
- Equivalents to C-style pointers are very limited.
- Visual Basic is limited to unsigned 8-bit integers and signed integers of 16 to 64 bits. Many other languages provide wider range of signed and unsigned integers.
- 32-bit and 64-bit Visual Basic is internally limited to UTF-16 strings, although it provides conversion functions to other formats (16-bit Visual Basic is internally limited to ASCII strings).
- Visual Basic doesn't allow constant variables to contain an array. Therefore extra processing is required to emulate this.
While Visual Basic does not naturally support these features, programmers can construct work-arounds to give their programs similar functionality if they desire.
[
edit]
Behaviors present in Visual Basic
VB has the following uncommon traits:
- Boolean constant True has numeric value -1. In most other languages, True is mapped to numeric value 1. This is because the Boolean data type is stored in the same way as a 16 bit signed integer. In this construct -1 evaluates to 16 binary 1's (the Boolean value True) or 16 0's (the Boolean value False). This is apparent when performing a Not operation on a 16 bit signed integer value 0 which will return the integer value -1. This inherent functionality becomes especially useful when performing logical operations on the individual bits of an integer such as And, Or, Xor and Not.
- Logical and bitwise operators are unified. This is unlike all the C-derived languages (such as Java or Perl), which have separate logical and bitwise operators.
- Variable array base. Arrays are declared by specifying the upper and lower bounds in a way similar to Pascal. It is also possible to use the Option Base statement to set the default lower bound. Use of the Option Base statement can lead to confusion when reading Visual Basic code and is best avoided by always explicitly specifying the lower bound of the array. This lower bound is not limited to 0 or 1, because it can also be set by declaration. In this way, both the lower and upper bounds are programmable. In more subscript-limited languages, the lower bound of the array is not variable. This uncommon trait doesn't exist in Visual Basic .NET and VBScript.
- Ability to run the application without performing a full compile or making an executable, allowing for edit-and-continue changes.
- Relatively strong integration with the Windows operating system.
- Banker's rounding as the default behavior when converting real numbers to integers.
- Integers are automatically promoted to reals in expressions involving the normal division operator (/) so that division of an odd integer by an even integer produces the intuitively correct result. There is a specific integer divide operator (\) which does truncate.
- By default, if a variable has not been declared or if no type declaration character is specified, the variable is of type Variant. However this can be changed with Deftype statements such as DefInt, DefBool, DefVar, DefObj, DefStr to name a few. There are 12 Deftype statements in total offered by Visual Basic 6.0