The State of Visual Basic 6 to REALbasic Conversion

Visual Basic 6 is arguably the most common development language on the planet.  It’s low barrier to entry and easy-of-use and its extensibility make it ideal for many non-programmers to make a ‘working’ application that does exactly what they want.

VB6 is no longer supported by Microsoft.  This is forcing many developers into the .NET environment which is not as easy to use and many would argue that the language is no longer ‘basic’.  So what are companies that have dozens of VB6 applications to do?

Let’s also add to the mix that Apple has doubled their market share with very slick computers.  Linux has very vocal and loyal supporters.  All this means that companies that were once Microsoft-only now need to convert their VB6 code to something else.  Whether that something else is .NET, Java or REALbasic is somewhat irrelevant because every choice is going to involve pain (money, training, time, etc).

Converting from VB6 to REALbasic should be a no-brainer, right?  Wrong.  While they both have basic in the name, they really are completely separate languages, each with their own set of peculiarities.  Yes, there are many similarities between the languages but that doesn’t mean it’s easy.

REAL Software has had the Visual Basic Project Converter (VBPC) for a while and was last updated in early 2005.  It’s free for download.  I would recommend that you don’t even bother – you’re better off converting by hand.  Hey, you get what you pay for, right?

I find it inexcusable that REAL Software has taken over 2 years to release an update to software that might very well be the first thing that VB6 developers see when evaluating REALbasic.  Here’s a very brief list of what it doesn’t do:
•    Windows and controls are not converted to the proper dimensions
•    Enums not converted
•    Structs not converted
•    The converter mangles code with no errors

There is one commercial product to VBPC and that’s VB Convert! by AYB Computers.  Its price tag is a very reasonable $50.  Even if it only saves a little time it’s worth the money.

VB Convert! does a good job of converting VB6 forms to RB windows as long as you are using the standard Visual Basic controls.  If you’re using 3rd party controls you’ll at least get a canvas subclass in the proper position.

The code conversion is better than VBPC but keep in mind that there are just some things that won’t convert very well.  One such item is file I/O.  VB6 is a product of the early 90’s and is not OO in most areas.  REALbasic file I/O is pure OO.  Only a programmer can objectively convert from VB6 to RB at that point.

VB Convert! will convert enums and structs properly.  They also have a variety of options that the VBPC doesn’t have like forcing pushbuttons and editfields to a certain minimum size and converting a ADODB recordset AddNew method to using the REALbasic DatabaseRecord class.

You might think that I’m being easy on VB Convert!.  We, as a company, thought long and hard about creating a VB6 converter.  At first blush everything seems easy but then you get into the exceptions, and VB6 oddities, and all the 3rd party ActiveX controls and you start to realize that it’s a HUGE problem.  For a version 1.0 product AYB has blown away VBPC in terms of usefulness.

In the long run, no ‘converter’ will do all the work for you.  If you think you’re going to select a VB project file, run the conversion process and then hit the RUN button in REALbasic you are sadly mistaken.  The conversion process is just that – a process that takes a programmer familiar with both VB6 and RB to do the conversion.  In many cases it will be a line-by-line conversion even with tools to help.

Think about it this way:  Some companies that convert VB6 to .NET are charging $1 per line of code.  What are you paying for REAL’s VBPC?  Exactly.  At least with VB Convert! you’re funding a developer that actually cares and is willing to work with you.

In my opinion, RS should remove their converter application until (or if) they get it into a decent working state.  Until then, give VB Convert! a shot knowing that you will spend some serious time converting a lot of things by hand.  VB Convert! is a tool that can help save some time while VBPC is useless in its current state.