Visual Basic is a controversial language; many programmers have strong feelings regarding the quality of Visual Basic. It was designed to be a simple language, and many features found in languages like C++ and Java are not found in Visual Basic. In the interest of convenience and rapid development, some features like compile time type-checking and variable declaration can be turned off. This leads to programmers praising Visual Basic for how simple it is to use, but also leads to frustration when programmers realize they need to use a feature that has been removed.
Many critics of Visual Basic explain that the simple nature of Visual Basic is harmful in the long run. First, it is often used to teach programming due to its simplicity, but learning to program in Visual Basic does not introduce the programmer to many fundamental programming techniques and constructs. This often leads to unintelligible code and workarounds. Second, allowing the programmer to turn off many of the checks and warnings that a compiler implements may lead to difficulties in finding bugs. Experienced programmers working in VB tend to leave such checks on.
Much criticism of Visual Basic is simply criticism of 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 [1] (http://www.cs.virginia.edu/~evans/cs655/readings/ewd498.html)." (Dijkstra was no less scathing about FORTRAN, PL/1, COBOL and APL.)