Wednesday, July 6, 2016


Choices you make at the beginning of a project can haunt you for years and even decades. I was a really good VB6 programmer, but Microsoft decided to kill it for dotNET. At the time everyone said "go to Java young man!" but of all the flavors I looked into, none came close to the productive level or code performance of VB6. I thought C was my only option, but I never liked C++... or header files or MFC or the list goes on.

I'd still like to write my own language, but I've got a higher priority and need to stay focused. I need to make money by writing a commercially viable product and not being distracted by anything else.

I own two of the top three compilers that tried to take over the VB's crown. The third just didn't have the code performance even though it had the best code environment. The first one I bought about a decade ago, PowerBASIC was such an ugly language I just filed it away and didn't bother with it. I have an autographed copy of the language reference signed by Bob Zale who died a few years back.

Later I bought PureBasic which includes the kitchen sink. Then found out it's SQL performance was ridiculously slow. So at this point a few years back I just kind of gave up. But something keeps nagging me not to go gently into that good night. So this is my version of raging against the dying of the light (and the light is dying. I can't really believe my physical health as I one finger type this.)

So the Win32API references I finally got together all have one thing in common. They tell you the size of the parameters but leave out that slightly important info of what they are. So I ordered this book. Note it's the 5th edition. The latest is the 6th which comes in two parts and the second doesn't seem to be available yet. After ordering it I gave some more thought to my choice of language. I can compile Euphoria with GCC. I also thought for later in my project I could use GAS to avoid reinventing another wheel. I could use Euphoria's EDS for both my client and server databases. I'm planning to use UDP messaging because I can deal with lost packages but need the speed. I also plan to do some peer to peer where I can bypass the host.

But I changed my mind.

I could try to find someone else's DB backend but I don't need to. I can just open a binary file in PowerBASIC and get blazingly fast speed. I'll be mostly reading static data. I'll have some circular message queues that just require two reads. I'll only have two data types (integers and fixed length strings) and the integers can represent fixed point floats. I'm writing my database editor now, which because of my lack of experience with PB should take me about a week (it will look ugly, but I'm the only one that will ever use it.) I'm thinking I can have the host continuously update midpoint links. Adding or deleting will only change the links by half a record which won't affect performance at all.

I can do the same thing with clients but only have to do those about a thousandth or so as often (there will be some start up cost when a user comes back on, but I think that's manageable.) Doing is how I will find out. I really have nothing to lose.

So what am I writing? I plan to make money by giving it away for free (remember AOL?) That's when you'll find out.

Here's a place that might be worth looking into? Jim got me curious.


Jim Davis said...

I own two of the top three compilers that tried to take over the VB's crown.

Borland's Delphi had it all over VB6. Far superior.

ken_anthony said...

I bought a copy of Delphi soon after Microsoft went insane because of Java. The object model was fantastic. but I could never get enthusiastic about Pascal.

ken_anthony said...

Actually, I wish I could find my Delphi compiler now. I'd definitely give it another look.