Can Python replace Visual Basic? Should it?

J.J. Dukarm jdukarm at hydracen.com
Tue Mar 6 15:30:44 EST 2001


Python as a replacement for Visual Basic?  This is an important question
for me, because I am in the process of "betting the farm" on it. The
software product that pays all of my grocery bills was written in VB, and I
am rewriting it in Python.

I have been programming professionally since 1965, and I have done a lot of
different things in a lot of languages on everything from microprocessors
to massively parallel computers. Incidentally, I was one of the first
commercial BASIC programmers on the planet, in 1973.

Six years ago I developed an industrial software product - diagnostic
software - using Visual Basic 3 for the user interface and database
machinery, with several DLL's written in C for the mathematical stuff.
After a short period of testing and debugging, the DLL's reached a stable
state and have not needed revising or recompilation in at least five years.
The VB portion of the app went together quickly, and initially I was very
happy because I could have a nice-looking Windows user interface with all
kinds of graphical frills without learning any dirty secrets about "device
contexts" and other mysteries of the Windows API.

Unfortunately, VB 3 itself turned out to be so buggy that I ended up
learning all the Win API stuff anyway while devising work-arounds for
show-stopping bugs that cropped up in VB (not my app), delaying the release
of my product for 6 months and almost bankrupting me.  Since then, the VB
component of the product has been difficult to maintain and improve. Visual
Basic is not a language - it is a sequence of mutually incompatible
languages, and I discovered the hard way that it was more practical to keep
the VB 3 code working in new versions of Windows than to learn each new VB,
rewrite and re-debug my code, and then debug the new VB. 

In 1998, I put the renewal form for my Universal subscription to the
Microsoft Developers Network in the shredder because it was getting too
difficult and expensive to continue using MS development tools. By then, it
had also dawned on me that it was dangerous for my product's development
cycle and delivery environment to be completely under the control of
Microsoft.

I was gearing up to switch to Java, which had its own stability and
portability problems in 1998-99, when I discovered Python.  Although some
improvements have been introduced in Python since I started with 1.5.2, no
changes in Python have ever broken any of my code. I have never had to work
around a bug in Python. There are perfectly good tools (PythonWin,
PythonWorks, wxPython, wxDesigner, Webware, Reportlab are my favorites),
excellent books, and excellent support by technically-oriented people who
do not have a marketing department re-inventing the terminology for them. 

The three biggest problems for me were: (a) finding a suitable GUI (I chose
wxPython); (b) finding a robust way to communicate with commercial database
products (I am experimenting with various ways of doing ODBC, but am still
nervous); and (c) packaging the app for distribution (just started figuring
it out).

Some things in VB (especially Windows-oriented things) are extremely easy,
where you might or might not have to do a lot of digging and do-it-yourself
in Python.  On the other hand, you never know whether the things you do in
VB will work as expected - or keep working after you ship them, or after
Billy G. changes some system DLL's. The great advantages that Python has
over VB, as I see it, are stability, reliability, and portability. For
commercial software developers, those are incredibly important.

I could go on ranting, but you will start to see the practical answer to
this question in a few months. If I am still participating in this
discussion group and haven't gone bust after the all-Python version of my
product comes out, the answer will definitely be "yes".

Jim Dukarm
DELTA-X RESEARCH
Victoria BC Canada





More information about the Python-list mailing list