Home

About Adit Limited

Contact us

Legal

Software Potentials

What comes next after Visual Basic version six (VB6)?

The way ahead for desktop and networked developments.

Please feel free to email Mike Griffiths if you have any comment on this page.

Why did Microsoft decide to create their new version of the basic language as class dependent? Visual Basic version 6 supported the creation of classes and their deployment within applications written using the syntax and functionality of the VB language. VB.NET has only limited primitive data types and a host of classes and interfaces must be created and managed to run even a simple program.

VB.NET is part of an integrated family of development languages sharing a common class library and all compiling (?) to a common runtime byte code. It was a clever idea to allow the development of modules using different language tools and being able to bring them all together into a single application. Except for the fact that I am not sure why anyone would actually want to do that.

Where was the demand for the integration of Visual Basic development tool family into a common programming language set coming from? Not, I hazard from it’s users.

The user requirement was pretty clear – fix the bugs in VB6 and enhance the capabilities of the language that supported the building and deployment of classes. The step to VB.NET from there was a big one – backwards!

Where was the demand for yet another OOP programming language? VB6 had been a nice balance. It was object oriented in the right way and retained the power of the procedural language approach when that was needed as well. The language syntax was rich and the data types fully integrated into the syntax and structure of the language. Visual Basic had even been experimenting with a generic data type (the variant) that could even hold object references. Visual Basic was a high level language that supported high level logical structures while allowing the programmer to get down and dirty at quite a low level as well.

Even if the case for OOP languages was proven, which is somewhat doubtful to say the least, it is clear to even a casual observer that VB.NET is less object oriented than VB6 [links 0 & 1 below]. Just take the time out to try writing a functioning program in VB.NET. You will soon find that the style and structure of the language is more complex and requires multiple layers of objects to achieve simple programmatic ends.

Yes I do hear you when you say that some people are finding it easier to knock up the odd database linked web page using VB.NET but what has that really got to do with the key issue? VB.NET does not appear to be a RAD tool for desktop and networked applications in the same mould as it’s Visual Basic predecessors.VB.NET code is developed at a lower level of abstraction than Visual Basic 6 code. The programmer has to work harder to achieve the same ends – writing more code and spending more time with the documentation to decide upon the classes and interfaces to be applied.

The .NET framework is a set of classes that very closely resembles the Java 2 class library in it’s functionality. However the .NET framework is massive in comparison while only supporting the latest versions of MS Windows operating systems. With Java you can theoretically deploy the same code across multiple platforms although I suspect that it is a “write once, debug each platform” situation rather than programming nirvana.

If VB.NET is stylistically similar to Java but with a Basic language syntax then prospective users might like to consider how little impact the syntax of the language itself might make upon any given program. In a class based development environment like Java and VB.NET it is the classes that occupy your time and not the language itself. I would hazard that mastering Java would be as straightforward as mastering VB.NET although neither are likely to prove as simple to learn as Visual Basic was for so many.

What of the rivals to Visual Basic? Many of us reviewed Borland’s Delphi when it became available. Some made the switch to Delphi and others took up the language as their first foray in Windows development. Delphi has continued to develop although the most recent version seems to have also included rather close ties to the .NET framework instead of maintaining it’s previously independent approach to Windows program development. Well perhaps not completely independent – Borland have been quick to include support for such things as third party controls but they have also maintained a clear differentiation between their product and Visual Basic. If VB.NET does not meet our needs should we migrate to Delphi?

We certainly can’t go backwards in time. When did you last talk to a C++ programmer? They happily talk about spending months developing a program (poor things) while we would normally expect to knock out something pretty robust in a day or two. At least with C and C++ we can look to non Microsoft compilers and editors to keep us afloat but life is too short for me to take this route and I can only see that such a cost increase would reduce rather than enhance the market for our software.

What of operating systems and why are they pushing us towards a decision? It is very difficult at the time I write (August 2003) to source a PC without a pre-installed copy of Windows XP. It is also quite difficult to source installation kits or licenses for earlier versions of the Windows operating systems. As companies are buying replacement PC’s they are being pushed into deploying XP on the desktop. Where Windows 98 could be seen as a bug fix release fro Windows 95, XP is a whole new ball game. With Windows XP on the desktop trouble starts for all business with NT4 servers. Things no longer work properly and the inevitable move to more recent server operating systems follows in the wake of the desktop PC changes. All this time, trouble and expense is just to stay still. As the Microsoft marketing machine pushes our business clients inevitable forwards (well in OS release dates anyway) the pressure on our existing development tool increases.

Just a point to bear in mind. There are millions of Visual Basic developers. The programming language choices (and purchases) we collectively make will have an immediate economic consequence among tools providers and a long term impact upon Operating System development. Far fetched? Would the Windows family of operating systems be as dominant without Visual Basic? It is possible that the Windows/Office software snowball would have got us to the same place anyway but it is equally likely that without Visual Basic the OS on your desktop might have looked rather different.

What are our options?

  1. Stick to Visual Basic version 6. We could co-operate together to create up-to-date controls to keep things moving forward but this will become problematic as Microsoft continue to develop their operating systems. Early releases of Windows 2005 (or whatever it is going to be called) introduce some interesting new developments in the graphical display and data storage areas. Plus, of course, Microsoft can erect a barrier to new entrants by finally withdrawing new VB6 licenses from the market.
  1. Switch to Java. If we are going to end up writing class based code and only class based code then lets work in a free (if you can afford the download time) language that keeps our development options open into the future. IDEs for Java exist (Borland’s probably the best of the commercial ones) and more will surface to meet the demands of such a large number of  experienced programmers. Java has it’s faults (all of them inherited by the .NET class library) but it also has strength – we can step nimbly from OS to OS if that market starts to divide or fragment.
  1. Switch to Borland’s Delphi and make sure that Borland know why we are switching. That way they can invest the R&D money our purchases generate into the directions we want to travel – in a stand alone high level Rapid Application Development language.
  1. Start a new Visual Basic like language. Open source of course. This would be quite a big commitment and early versions would have to be a work of love until the language became a practical tool at least as good as the current product. The trouble is, I suspect that Visual Basic programmers want to build systems and experiment with the application of software rather than build the underlying tools themselves. There are some “tool builders” out there though – any takers?
  1. Is there something new out there waiting in the wings? There is a huge gap in the market opening up.

Where am I going? Well, I am combining options 1 and 2 for the moment. Where my client’s hardware allows effective deployment then VB6 still represents the best development tool available and thus best value for money for my customers. Java is looking like the most effective OOP language available – slower to develop in than VB6 but once a fat library of boilerplate and program templates has been developed then the development time and costs should drop again to more economic levels.

Links
0. A rant on Rod Stephens VB-Helper site illustrating that VB.NET is less object oriented than VB6.
1. The case against OOP in programming.

Google
  Web www.adit.co.uk