Motivation: Making some sense of VB-Visual
Basic and VBA-Visual Basic for Applications
The popularity of VB was based on the fact that it made the complex event driven programming of the Windows GUI very approachable with some pioneering (along with Gupta's SQL Windows-) drag and drop design tools, property sheets, plus click and code aids. In addition, with unflagging efforts if not success, the VB developers also tried to simplify database connectivity; however, the problems was a proliferation of mutually incompatible data access methods: DAO, RDO, VBSQL, OLE/DB, etc. More success was achieved with simple code generation tools and database designers. And a legion of third part developers were providing literally hundreds of components for use with the VB/Visual Studio design tool.
However, VB6 and now VB.NET have introduced a fly in the ointment. VB6 moved the language clearly into the OO-Object Oriented camp. With full encapsulation, inheritance, and polymorphism capabilities; yet strict OO inheritance from single line of source was not followed. Performance took a hit relative to VC++(down to 70-85% of VC++ speeds). And ADO was introduced - causing yet another switch in "the official" database access method. However, VB6 offered improvements in security and reliability.
The introduction of VB.NET was a watershed. The basic syntax of the language was changed so drastically that Microsoft could not offer a conversion facility that would reliably convert VB6 projects to VB.NET. Some Microsoft employees started calling VB.NET Visual Fred because it was so different from the now obsolete VB6. Other developers insisted that VB.NET was too much like C#; having nearly all of its features but also complexity - notably single source of strict inheritance as VB became fully object oriented. VB lost a great deal of its simplicity and ease of development for beginners for the sake of its new role.
VB.NET is the official language for ASP.NET (but so is C# or any .NET language which supports the appropriate .NET BaseClass libraries). VB.NET supports ADO.NET; requiring yet another database access conversion for developers who have seen a rapid succession of RDO, OLE/DB, ADO and now ADO.NET become the "official" VB and/or Microsoft database access method. (Caution - LINQ may require an easy, but also another set of VB DB conversions). VBA in the meantime has a new but not totally compatible counterpart on the Server side called VSA. Client side VBA will continue to be supported but it will not produce .NET managed code - and will require special interfaces to .NET code.
We agree with the dissident Microsoft supporters , we
believe that VB.NET is too close to C# and in fact dominated by it.
No wonder that C#, according to TIOBE, is one of the fastest growing programming
languages while VB is declining steadily relative to other languages
including PHP, Perl and Java. Yet we believe that VB and VBA represent
a better "safe haven" for VB developers than does VB.NET.
This conclusion is predicated on 4 assumptions:
Make Microsoft stand and deliver on its VB/VBA conversion efforts and most importantly upgrade path. VBx->VB.NET has been such a dastardly downloading of extra work to developers - make sure your IT developers are not going to be carrying the load for an unenviable succession of nasty upgrades.
VBA Becomes VSTO
The new Office 2007 has VBA in it but that is only a temporary fixture. The writing is on the wall. To get to Vista and Office 2007 GUI features developers will have to adopt VSTO-Visual Studio Tools for Office. However, the current version of VSTO does not support all of the specific features and APIs of VBA for the various Word, Excel, and other Office and Microsoft apps. So VBA remains in Office 2007 but with the advice - do not use it to program new macros and apps. VBA on Office for Mac is completely abandoned - creating a furor there. In short, Microsoft with Office 2007 is caught between here, VBA - and there, VSTO. The next version 3 of VSTO will support Word and Excel. No word on availability of VSTO 3. Meanwhile here is the rationales being offered for moving from VBA to VSTO:
So our coverage of VB
will continue but it will be confined to VB6 and VBA . It is decidedly biased towards VB6 plus VBA with only a smattering
of tutorials and articles about key issues regarding VB.NET because we feel the VB/VBA model of programming was so much better. For the legion
of VB/VBA developers,
we shall try to remain as a support center for what was once one of the easiest
entry points into Windows programming.
Top of Page Tutorials Home