Next month will see the next chapter of a saga that began with Microsofts Visual Basic (through Version 6.0), took a dramatic turn with the early 00s Visual Basic .Net and will reach a climax with the forthcoming Visual Basic 2005. If youre not a developer, you probably dont know that these names refer to substantially different languages. From me, thats not a criticism, just an observation—some developers arent merely aware, but angry.
That ire can blind those people to the purpose of Visual Basic and the reasons that its a good developer strategy to keep pace with its continuing reinvention. Its VBs role to make Windows development the path of least resistance for those who know what they want to get done: VBs past was driven by that, not by computer science doctrines about why to create a new programming language or how to make it a good one. VBs future relies on more and better science, but its still a tale of pragmatism rather than purity.
Visual Basic 1.0 put the Windows API where you could see it. Later versions introduced mail-enabled applications and multitier abstractions. With pluggable user interface controls, the long-promised scenario of a marketplace in objects came closer to reality under VB than under any other language—despite shortcomings of incompleteness and lack of object-oriented rigor. By the time wed gotten to VB 6.0, it was an effective tool for assembling components built with other, lower-level tools, encouraging platform-oriented coders to build modules business-oriented developers would apply to specific needs.
Startling to many, therefore, was the degree to which Visual Basic .Net was not an upgrade; it was a replacement. “Visual Basic .NET … is not merely Visual Basic 6.0 with a few new features added on. Instead, Visual Basic has been thoroughly redesigned and restructured,” declared Microsoft Program Manager Ed Robinson on Page 1 of his 547-page book, “Upgrading Microsoft Visual Basic 6.0 to Microsoft Visual Basic .NET” (Microsoft Press, 2001).
VB .Net opened doors to a new workplace of full object orientation, multithreaded applications and the many facilities of the .Net Common Language Runtime environment. In the process, it left behind more than 100 previous VB features or behaviors, some of them listed at vb.mvps.org/vfred/breaks.asp—a site whose URL reflects the nickname Visual Fred that some programmers coined to show their Opinion that Visual Basic .Net might be many things, but it wasnt really Visual Basic.
The pseudonymous Doctor Dobbs Journal columnist Verity Stob ironically retorted in late 2002 that the Visual Fred camp “objects to Microsofts vile and underhanded attempt to remove subtle traps from VB .NET, to clean up baffling and ambiguous syntax, and to erase pointless inconsistencies.” True, many developers whod built large collections of intellectual property in Visual Basic wished that Microsoft would not break the container in which theyd stored their work; others, though, welcomed the companys willingness to focus on possibility rather than preservation.
Visual Basic 2005, which well see released next month, makes enormous improvements in abstraction—notably, with the “My Namespace” that compresses formerly complex code into simple expressions. Automatic recognition and correction of coding errors also takes a big jump in VB 05. Some of the dynamic development convenience that was beloved by many in VB 6.0 will also return (but with less mess under the hood) in VB 05—and the visual tools get better as well.
Substantial changes are already being telegraphed for VB 9.0 that will make it much more powerful in ways that reflect developers increasing sophistication in wanting rich access to data. And many people will complain about the resulting need to keep learning.
I dont get excited about chances to work in VB. Its a pickup truck of a language—not a sports car like C, not a Humvee like Ada. But pickup trucks do a lot of the work in the real world, and VB will keep doing a lot of the work in the cyber-world as long as Microsoft keeps reinventing it to meet changing needs.
Peter Coffee can be reached at firstname.lastname@example.org.