“Either he’s
dead or my watch has stopped.” Groucho Marx
“It's not pining, it's passed on.
This parrot is no more. It's ceased to be. It's
expired. It's gone to meet its maker. This is a
late parrot. It's a stiff. Bereft of life it rests
in peace. It would be pushing up the daisies if
you hadn't nailed it to the perch. It's rung down
the curtain and joined the choir invisible. It's
an ex-parrot.” Monty Python’s
Flying Circus
“The report of my death was an exaggeration” Mark
Twain
I have to confess that I rather
like VB .NET. Indeed, I’ll go further. This is the first
version of the Visual Basic language that I am reasonably
happy with. Using earlier versions was a struggle. VB
.NET, on the other hand, feels like a language that has
been designed rather than just grown in the telling.
It is well structured, object orientated, has an excellent
class library and a superb development environment. So
why are so many people moaning about it…?
It all comes down to the question: what is it for?
In the early days, it was easy to answer that question.
VB was practically synonymous with ‘rapid application
development’. There were some types of application
(particularly those in which the user interface was paramount)
which would take ages to code in C++ but which could
be got up and running in a matter of minutes using VB.
Nowadays, drag-and-drop visual design tools are nothing
special. Borland’s Delphi has had a superb integrated
design-and-coding environment for over ten years. Microsoft’s
Visual Studio for .NET provides a similar toolset for
the C# language. There are other visual design tools
for languages ranging from Smalltalk to Java.
Which brings us back to the question: what is VB
.NET for?
Or, to put it another way: why
should anyone choose VB .NET over some other language? If you’d asked
me that a couple of months ago, I would have been ready
with a glib answer something along the lines of: “VB
.NET has the benefit of familiarity for existing VB developers
and it provides an easy migration path for existing VB
projects.”
Shows I much I know!
It was only when I began browsing the Microsoft VB
newsgroups recently that I realised that such an ‘answer’ is
no answer at all. There are certainly some happy bunnies
who, like me, think VB .NET is just one heck of a lot
nicer than VB6. But there are also a good number of other
folk who feel let down by Microsoft. These are people
who have standardised on VB over many years and have
a huge amount of VB code which they have been unable
to migrate to VB .NET. This is due to the fact that VB
.NET is, quite simply, a different language from VB6
and the conversion tools supplied by Microsoft don’t
cut the mustard.
Compare this with the situation that faces programmers
of Borland’s Delphi. The Win32 version of Delphi
uses a class library called the VCL (Visual Component
Library). Naturally, this library is not compatible with
.NET. So what did Borland do? Tell their customers, “Sorry,
you’ll just have to recode your old programs from
scratch?” Not at all. What they did was they wrote
a new version of the VCL which lives on top of .NET.
I’ve tried converting some fairly substantial Delphi
Win32 projects and, while they don’t all convert
seamlessly (API and pointer operations generally require
extra attention), I’ve been able to load many old
programs without having to do huge amounts of rewriting.
Indeed, in projects which lack API calls, I can often
load, compile and run them straight from disk - with
no recoding at all!
This puts me in a quandary….
On the one hand, I’ve heard the complaints of
long-term VB users who feel that their loyalty to VB
over the years has been ill repaid by Microsoft’s
lack of continued support for the Win32 platform and
lack of a Delphi-like migration path for old projects.
I heard the complaints and I sympathise with them.
On the other hand, given the choice between coding
a project from scratch in either VB6 or in VB .NET, I
wouldn’t hesitate for a moment in choosing the
latter. VB .NET is, in my opinion, far superior to VB6.
But then again, if someone gave me the choice of coding
in C# or in VB .NET, which one would I choose? Without
a moment’s hesitation I’d go for C#. And
there is the nub of the problem. If the raison
d’être of VB .NET is to satisfy existing VB users, what is its
purpose if it isn’t satisfying them…?
This month we look at both sides of the argument. In
The
Strange Death of Visual Basic, Dermot Hogan considers
the problems faced by VB6 users. In our exclusive interview
with Jay Roxe, the VB Product Manager gives a rather
more positive perspective on the issue.
Good reading!
Huw Collingbourne
(Editor)
If you wish to comment on anything in Bitwise, you may write a letter to the editor.
See our Letters
Page for comments on last month's Bitwise.