As I worked with Visual Studio .NET, however, I could see that this was much better than what we had in the past. VB Classic had grown from basically a scripting tool to a sophisticated development platform capable of creating line-of-business class systems. It also became bloatware, meaning the package became so large and cumbersome that with each new revision, we had to learn a whole new set of tools and wizards.
In the wider world of programming, VB Classic is an anomaly. It has its own proprietary IDE, its own runtime, a peculiar syntax, and its own proprietary forms package. None of these items works very well with other languages. VB Classic grew out of the early BASICs that came with old microcomputers. I remember Level II BASIC, the language that ran on my old (circa 1979) Radio Shack TRS-80 Model I, also known as the "Trash-80." While it still used line numbers , GoSubs, and Returns, it had the same basic syntax as VB Classic. That language evolved into GW-Basic that came with the original MS-DOS.
We then had Quick Basic, a cheap compiled version of GW-Basic. Then there was the Basic Professional Development System, a fully compiled and linked BASIC language for MS-DOS development. Finally came VB 1.0, which kept much of the syntax, statements, and functions of the older languages to try to win those programmers over to Windows development. If you don't believe that VB Classic evolved from those early languages, you should know that VB 6 still supports line numbers, GoSub, - Return, and GoTo. It also supports On GoSub, an early form of a Select - Case statement. Microsoft doesn't advertise this, but it does work. Try it sometime. VB Classic has maintained that evolutionary path up until VB .NET.
With VB .NET, we now have a fully object-oriented programming language that rivals other languages, such as Java. The forms package is generic and no longer limited to use with just VB. You can actually pass entire forms across a network connection. While much of the syntax is the same (it is, after all, still BASIC), it has been standardized and brought into conformance with other languages. You no longer pass values into functions by reference as the default. The default is now by value, which is how virtually all other languages do it. Unfortunately, this will make transitioning difficult for many VB Classic programmers. This book is designed to ease that transition, and avoid the mistakes and wrong turns I made while hacking through it myself .