|
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?
- 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.
- 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.
- 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.
- 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?
- 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.
|