[Gambas-user] Migrating to Gambas
John Anderson
johna at starflightinc.com
Thu Jun 10 18:31:22 CEST 2021
On 6/9/2021 10:58 PM, Christof Thalhofer wrote:
> Am 09.06.21 um 14:17 schrieb Bruce:
>
>> So I will repeat the question, why is this industry so psychologically
>> dependent on trying to turn something that does not work into something
>> else that probably wont work because they insist on re-using poorly
>> engineered code with myriads of known and yet to be discovered faults
>> that has been hacked at by a large farmyard full of script chickens ...
> Nice story, but: If one has *reliable working code* in *discontinued
> VB6* there is no reason to rewrite it from scratch instead of migrating
> it to Gambas and be as carefully as possible to keep the old work.
>
> For example: I have a large method which creates invoices automatically
> based on some data in the database. It started as a couple of macros in
> Microsoft Works(!), then was migrated to MS Access. In the first ten
> years it crashed a lot:
>
> New client with shipping address: Crash.
> New client with shipping address not in Germany: Crash.
> New foreign customer with shipping address in Germany: Crash.
> New client with "&" in it's name: Crash.
> New foreign client with a company and special tax circumstances: Crash.
>
> And so on and so forth...
>
> After about ten years, we had grazed the vast pasture of crash
> possibilities, the method has worked smoothly ever since and now it
> contains lots of fine distinctions (that might look a little twisted if
> you don't analyze exactly what they do).
>
> If anything, I only touch it very carefully with tweezers. I'd be crazy
> to throw it away and develop it new from scratch!
>
> This is what Joel Spolsky is talking about. When he says that the code
> is "tested", he means that it has been tested on the reality.
>
> Alles Gute
>
> Christof Thalhofer
>
I agree 100%. In our case we are converting away from VB6 NOT because
anything was wrong with VB6 code - it has served perfectly well for
decades, and it is OO in a friendly way. We're only changing anything
because field customers don't want Windows based OS's on the factory
floor any more. We're on industrial WES7 now, which is still valid for
a few more years - but after that there is little interest in Win10/Iot
for many reasons. And no we can't run the existing system in a VM or Wine.
So my conversion project is out of necessity, and not for any real
perceived performance gain - because the equipment under the GUI control
works as perfect and as fast as it ever will. We want as few changes as
possible in the existing source code - for reduced labor expense,
reduced possibility of errors introduced, plus any major change could
trigger a massive acceptance cycle testing as I've explained before, and
that could take years. A project of that size is not in the budget, nor
it it practical. The GUI interface has to work and look exactly the
same as VB6 version...except without the "C:" drive. We don't want the
operators to really notice they aren't on Win98/XP/7 anymore.
I think in the whole time we ever encountered a true major bug problem
in VB6 was with a third party spin button control in 2002. All the other
changes to code were NOT VB6's fault, it was something like the customer
had to go to a new product bar code format, or they wanted to connect to
a different downstream test jig and needed wafer placement information
in a different format, etc. All code changes over time were feature
additions, not bug patches.
In any CompSci language you can do the code correct or not - It's the
same concept that a good or bad typewriter / notebook / word processor
doesn't make or break a good or bad novelist. It is the final outcome
we're looking for: is the GUI rock solid and reliable.
From what I see so far, Gambas is like the love child of VB6 and Java.
It looks a lot like VB6 Daddy, but has mom Java's eyes. So close to
VB6, but some places frustratingly different - but that's just me...
<Laughing>. Gambas is a good product!
-J
More information about the User
mailing list