BrainOut!
The mumblings of a Christian autistic husband, dad, IT guy and amateur radio operator - Will Brokenbourgh / AF7EC
Paused Projects - WBbasic
A long time ago I used to be a REALbasic user, starting with the non-unified-windows version (5.x?). It was a very good product in those days and made it pretty easy to crank out cross-platform apps. Sure, it had some little bugs here and there, but overall was a good path forward from Visual Basic 6.
As the years went on, REAL Software (now Xojo) changed RB to year versioning when they released their new version of the development system. I'm a little cloudy on it now, but I think they only gave updates for a year after purchasing, then you had to hop on the subscription bandwagon thereafter.
Lean times
At that time, I wrote an app in REALbasic called 'VB Convert!' that did pretty much what it says -
converted VB 6 forms and code to REALbasic's text-mode project format (instead of their 'normal'
binary project format). Because I was still in a time of turmoil in my life and didn't have a good
relationship with my Lord and God, things were pretty tight and I charged just under $20 for the app
(I think? Maybe it was just under $30...can't remember right now).
Being that 'annoying guy'
Back then, I was an undiagnosed autistic person. I had trouble interacting with folks - especially
online. I had recently gone through a whole slew of personal challenges and felt like the only way to
drive a point across was to be annoying. Now, even during those times, I never wanted to be
a pain in anyone's neck, but I just didn't know I was autistic and never had any kind of training or
support to better interact with the mostly neurotypical world. So yeah, I irritated some folks and
especially those on the REALbasic forums.
As RB trudged along with their revamped IDE, there were a lot of weird bugs and issues with it. It differed a lot because it was more laggy and sluggish compared to the 5.x version. I was able to purchase a bare-bones license for a 2007 version and wasn't liking the 'fit and finish' of the IDE as a whole. The previous iteration of REALbasic, with its more responsive and nimble interface made the newer version look awkward and almost amateurish. I complained, and often complained a lot because: 1) I wanted the best IDE I could get for the money I had paid and 2) I truly wanted to help REAL make a better product. Apparently the way I worded things back then was offensive and rubbed people the wrong way, so they began to ignore me.
Stomping the little guy?
After a year or so of selling my 'VB Convert!' converter, REALbasic promptly shut down my little app
sales by introducing a free-to-download VB 6 to REALbasic converter. Back then, I was very angry
about this and wrote Geoff Perlman, the CEO of the REAL Software. I told him that this converter they
were offering was messing with my tiny little app sales. While I cannot remember the details of his
response, it was basically corporate executive-speak for "Sorry, but deal with it".
Again, this was at a time where I loved God, but wasn't really serving him. Before, I had gone through nearly a decade of missteps, blunders and very hard times, including homelessness. I felt like REAL was being a big meany, stomping their big nasty combat boots on my head and treating a small business owner unfairly. Did they develop this converter just to spite me? Were they messing with me because of my annoying interactions with others in the community? I will never know for sure. Back then, I said "To heck with it, I'm making my own language and IDE". Most people would react with "LOL" about that news, though. Languages and IDEs are not easy things to create from scratch.
WBbasic is born
Determined to give REAL a taste of their own medicine, and because I wanted a responsive and less
bug-free BASIC-language IDE experience, I started to develop WBbasic. Yes, a very narcissistic name,
but to be honest, it was more of a 'working title' that I would change to something un-WB-ish later.
Not being the best C / C++ programmer, I dived into Windows Win32 API programming and started to build
the WBbasic IDE. These early times were very challenging, and I often had to stop and take week-long
breaks because my silly brain just couldn't comprehend certain programming concepts. I had been a
Visual Basic 6 programmer for a great deal of my career and C / C++ was a totally different ball-game.
Also programming in Win32 API was very weird for me because it seemed to be a step backward from the
more convenient object-oriented ways I was already acquainted with.
A very early screenshot of WBbasic
(Yes, the app icon is a burger from the old Dev-C++ IDE)
Months went by and I continued to hammer on WBbasic in addition to my normal remote internet support duties. I'd make tiny programming victories every once in a while, but man was it challenging. I lived in the upstairs of an apartment where the temperature during the summer would often reach well above 100 degrees Fahrenheit (38 degrees Celsius). I'd have a fan blowing on me and spraying myself with a water mister just to keep from passing out sometimes. These were not the kind of conditions most professional programmers were used to, but I pressed on.
While working on WBbasic, I started to move away from REALbasic and the RB community. A few of the friends I made from that community had things changing in their lives and now would barely interact with me. Some others stopped talking to me because I talked about Jesus and God 'too much'. It's a shame - I miss them - but my desire is to serve God and if that means others don't want to stick around, that's the way it is. Again, I miss most of those folks, but they are living out their lives in the way they think is best. Prayerfully they all will give their hearts to Jesus - sooner rather than later.
I did use RB for small little apps and simple tools for customers, but never really trusted it a whole lot. I had the opportunity to convert my large VB6-based medical billing app over to RB, but I always worried REAL would make some change or mess up the IDE and language even more, and I'd have a lot of unhappy customers. Medical billing is no joke and requires accuracy, reliability and stability - things you just couldn't associate strongly with RB at the time. I continued to make things that mattered in VB6, even though it was long-in-the-tooth at this point.
Early attempts at the graphical designer
One of the hardest things about making the WBbasic IDE was the graphical form designer. While it would have been the easiest route, I couldn't just create a bunch of controls and position them on the form designer as this consumed a lot of handles and resources. I did a stress test to see how many controls I could create and it was disappointingly small. So I had to change my approach and instead drew controls using graphical methods. This added a lot more complexity to the designer code, but cut down a lot on resource usage and I eventually got it working satisfactorily.
I got to the point where the graphical designer was working pretty good, but I only had a few controls coded up, such as buttons, labels, panels, tab controls and the like. You could add new windows to the project and I added a rudimentary properties editor, too. I also started working on the actual coding part of the IDE where you type code in, but that stalled as I wanted to make sure the graphical designer was working well. I still had not made any real progress on the actual language part of WBbasic, though.
Recent screenshot of WBbasic
Around this time I met my current (and hopefully last) wife. I'll spare you the details of our courtship, but before long we were married. Unfortunately, not long after we married I was hit with a near-deadly medical condition. God was merciful, healed me and got me through it, but it had made an awful impact on my new marriage and family life. Thankfully God worked out the issues and, as a married couple and as a family, we moved forward with hope and trust in God. Many other challenges came our way, and through all of this, WBbasic was put on the shelf - customers had to be served and family needed food on the table. I started to focus more on other business issues and didn't really pay WBbasic any mind for the longest time.
Throughout the years that followed, I would always come across my backups of WBbasic and briefly run the IDE to remind me what it looked like. In these more recent years, I often am thoroughly surprised at how complex some of the IDE coding is, and almost can't believe it's something that I personally wrote. While I've never really gone much farther with WBbasic, I did learn a lot about C / C++ programming (and programming in general) through the WBbasic experience.
WBbasic graphical designer
Since I had some extra time and because it was so warm in our house last night (and I couldn't sleep), I made the first real improvement to WBbasic in more than a decade. It consisted mostly of a bug fix. I had a child window that popped up when you want to edit an event for a control or window. Before the fix, you'd click on either the 'Cancel' or 'OK' button on the window and it would close the whole app! Not correct behavior, for sure. I took some time to try to understand 2008-Will's thinking in some of the code, then corrected it. After a little while, I had a properly-functioning child window with an added feature, as well.
WBbasic event selector
(This is the child window I recently fixed)
WBbasic code editor
So where to from here? I don't know. I'm currently going through a tough part of my life right now. There are very urgent and important family issues going on. Health issues are trying to drag me into the mud too. Since I have fewer customers than I had in 2008, I have a little more free time between support calls, but there's also the ever-present pile of laundry to be washed, dishes to put away, rugs to vacuum, a child to feed and care for and more. I have even more things on my 'honey-do' list that are waiting for a day when I feel strong enough to take care of them.
Is WBbasic worth the effort in 2023? Maybe. When it finally is done, can it compete with Xojo, Visual Studio, Gambas or other languages and IDEs? Probably not. At this point, it probably would be an interesting open-source project that people could use, free of charge, to make their own apps. My opportunity to compete in the IDE market has come, and gone. If I had thrown myself almost 100 percent into it back in 2007 - 2008, I might have finished it and been able to sell it, but those are now days gone by. There are many free apps and development systems out there now that anyone can download and start using right away, so trying to charge for something like WBbasic would not sit right with some people. I dunno, time will tell.
God willing and depending on how things shake out in my personal life, WBbasic might see the light of day again. It would be cool to see my past project reach some sort of completion, although any good software developer will tell you that a coding project really is never completely done.
God bless you, and thank you for reading!
Comments
(No comments yet)