From my point of view, VB is OK to start and learn the basics of programming. But it is true that it is not as powerful as other languages, such as VC++ or Delphi. If you want to "get dirty" and do more advanced stuff, you'll have to switch to another language. VB mostly sucks because it doesn't do real calls to the API, everything passes through the MSVBVM??.DLL
quote:
From http://www.palmdigitalmedia.com/product/book/excerpt/4844
Although distributing the 1.4-megabyte runtime file with your VB6 applications is annoying, it is essential for two reasons:
1. The VB Runtime provides services such as automatic memory management, string allocation/deallocation, and saftey checking on code. If, for example, your VB code tries to reference an array outside its boundaries, the VB Runtime steps in and informs you that an illegal operation is being performed. This is in contrast to languages such as C and C++, where memory access is not monitored, resulting in potentially catastrophic failures if code misbehaves. And, unlike C and C++, the VB Runtime will automatically clean up after you, destroying objects and variables once they go out of scope.
2. The VB Runtime also houses intrinsic VB functions such as MsgBox, Ubound, and InStr. For years, VB developers have routinely used such functions for string manipulation, type conversion, and user input. The code for these functions is contained in the VB Runtime. When you call Mid() to extract a substring from a string, you are really calling a function in the VB Runtime that performs the work. Without the VB Runtime, a VB application would be reduced to a meaningless collection of function calls.
From these two observations, it can be said that a Visual Basic 6 application runs within the VB Runtime. In fact, the name of the runtime file is indicative of this very purpose: MSVBVM stands for MicroSoft Visual Basic Virtual Machine.
I love Delphi because it doesn't have a runtime like that (you don't need to distribute a dll with your project, yet it offers the same functionality like the VB's runtime as described above), it's easy to understand, very organized and very powerful. You have freedom, you can code using pure API (smaller EXEs) or using the VCL - Visual Component Library (bigger EXEs, but easier to code). And then everything can go in one single and small EXE