BASIC, BASIC, BASIC … PowerBasic !

BASIC, BASIC, BASIC, BASIC …..

OK, what am I up too ?

The BASIC programming language is far too often maligned by seemingly well meaning “experts” on programming. Not only is this sad, but it is totally unfair and unwarranted. Let’s first take a look at the basic language to see why it is so important a programming language.

To fully appreciate Basic, one should look at programmers who have been around a long, long time. Even if today, they are using C++ or C# , likely they first were exposed to programming using Basic. Such programmers owe Basic a depth of gratitude. Now I can understand how many programmers felt the need to move beyond Basic, looking for a more powerful programming language. In the old days, Basic often was interpreted (aka. very slow) and it lacked many of the more modern language constructs programmers required. From my own experience the first “real” Basic programming language worth something to a professional was QuickBasic. It started many programmers on the road to professional level programming. Microsofts PDS 7.1 was the next step, which was a powerful professional tool. Now during that time (of PDS 7.1) there was a “lone wolf” programming language which emerged called TurboBasic. Sadly I never got a chance to use it, but I hear it was quite powerful compared to PDS 7.1. Borland for some reason gave up on TurboBasic and sold it back to its developer Bob Zale (don’t know all the details) who renamed it and sold it under a different name.

Before I continue, I need digress (and to go back in time) a little.

QuickBasic was not my first experience with a Basic language compiler (rather than interpreted Basic). Back in the days of the Commodore 64, I was dabbling with writing some commercial software for the C64. The C64 was beginning to fade by the time I got deep into it, but I was trying to find a way to do some “power” programming on it. I actually took the time to learn 6502 machine language, so I could tap into the power of that amazing computer. 6502 machine was beautiful, IMO. The command set was so simple to understand and work with. The problem is that machine language programming was just too slow to accomplish what I wanted to accomplish. I loved Basic, but it was too slow. Well amazingly, back then there was a real compiler for the Basic language on the C64, sold by Abacus software. It was quite amazing IMO. I loved it. I could write real Basic code and then compile it to fast machine language. I was hooked. The problem was not the language, Basic. It was that there was a need for a compiler which could compile to fast machine code. To write a video game (family oriented game which I sold to a Computer magazine in 1989 and even made about $1500 off it) for the C64, I actually used the Abacus compiler (Basic) and wrote my own compiler specific to writing a video game. Thats point of programming tools! A programming language should allow you to build better tools to work with, when you need to.

I learned something very important from my experience with the C64. First, Basic is a great language for real world programming. Second, you need to back that up with a great Basic language compiler. Just think, before I was exposed to CPM and also the IBM compatible generation of PC’s , I was already programming with a Basic language compiler. When QBasic came along, I was excited, but I needed a real basic compiler, so things didn’t really get going until QuickBasic came out.  Once I got Quickbasic and later PDS 7.1, I was able to start churning out some powerful applications for DOS. Those applications were so well written, that 3 of the custom applications I wrote using PDS 7.1 back in the early 90’s are still in use by local companies. The software runs fast and is “solid as a rock”.

Now by the mid 90’s, Windows was coming into its own and in 1995 Windows 95 was introduced. This was a big deal in the software industry! Windows changed things. Programming, compared to DOS programming, changed drammatically. PDS 7.1 and Quickbasic were now dying a slow death. The new kid on the block was Visual Basic 1.0. I actually liked VB 1.0 quite a lot. It was simple and had a very small runtime DLL. It was a beautiful implimentation of Basic. Albiet the object oriented coding took some getting used to, but still VB was great. But VB lacked a certain degree of power. It was great for prototyping an application quickly, but when it came to power coding (meaning writing more low level and faster code) it was not the best language to work with. It was not until VB 4.0, I believe, that Microsoft put a real compiler behind Visual Basic. I have even read (on the internet) that in VB 5.0 and 6.0 that VB is just a front end for a C compiler. If correct, it appears that Microsoft didn’t even care enough about Basic to write a compiler from scratch purely for Basic. I never did a lot with Visual Basic. I converted one DOS application to a Windows 3.1 application using VB 1.0, but I never did much more with Visual Basic. I even paid a good $450 for VB 5.0 Professional, so I was serious about programming in Basic, but I lost interest probably because Visual Basic forced me to change my style of programming for an object oriented language.

Now lets go back in time again, back to when Borland introduced TurboBasic. TurboBasic gave Microsoft Basics a run for their money, but whether it was marketing or some other problem, Borland gave up on it. But Bob zale did not let it die! Powerbasic was born and while it started slowly (Powerbasic was not a big company) it slowly began to mature and continued to grow into one of the most powerful programming languages I have ever seen. PowerBasic first marketed their Windows compiler as an addon for Visual Basic, calling it PowerBasic DLL compiler. I actually bought PB DLL version 1.0 (16 bit) and used to to write a DLL for that DOS application I converted to VB 1.0. PB DLL just had things in it, I could not do with Visual Basic.

I lost touch with PowerBasic for some years after that, but I later came back to it with PB DLL version 5.0 (write 32 bit apps). Now remember my experiences with Basic and how I appreciated the need for a powerful compiler. PowerBasic gave me that power I was looking for, but … there was a problem. PowerBasic had not developed any GUI commands for their compiler and they were still selling it as an addon for Visual Basic (for writing DLL’s). You could write an actual application with PowerBasic, but it required learning the Windows API, like old time C programmers used to have to. Microsoft programming languages were all Visual with drag and drop environments, but PowerBasic was not there yet. I took the plunge and began to start learning the Windows API. It wasn’t easy and it took me a couple of years to get comfortable with it. So why use a language that was not Visual ? Because I saw the raw power of the compiler and thats what hooked me. It was like the old days with my C64 and the Abacus compiler.  I didn’t mind writing code. Sadly the Visual enviroments tend to shield programmers from writing code, so in my opinion, programmers who can write quality code is becoming rarer.

So what was I to do ?

Thats how EZGUI was born. EZGUI was my first GUI engine (written in PB DLL 5.0) to make writing Windows applications easier. I even wrote my own rudimentary drag and drop visual designer (which itself was a 100% EZGUI application) and code generator. Remember, the point I made earlier about how a good programming should allow you to build your own tools if you need them ? PowerBasic  allowed me to write my own GUI engine (a user interface library) andVisual Designer. Thats what a power tool should be able to do!

It is interesting, and curious, that after my release of EZGUI 1.0, the next version of PowerBasic added a rudimentary GUI command set (called DDT or Dynamic Dialog Tools) for the first time. It didn’t have all the features of my GUI engine, but it told me that PowerBasic was serious about making their compiler a tool for writing Windows applications rather than just as an addon to Visual Basic for writing DLL’s. Interestingly it was the last version to be refered to as a DLL compiler. Later versions had their name changed to PB for Windows. PowerBasic also came out with PB Forms their first real Visual Designer. True it was rudimentary compared to say Visual Basic and even somewhat even to my own EZGUI, but it was their big step into Visual Design.

While I don’t personally use the DDT command set and I differ on how it is implimented (meaning I don’t agree with all its syntax and design), I do feel that DDT has been successful and it does appeal to many programmers. It is a simple and clean GUI implimentation and it works well. I have even written some freeware (and one commercial) DDT Designers to help support it.  Because it has taken some time for PowerBasic to grow as a language, especially in the area of writing Windows applications, it does not have the exposure of other languages. Do a search on your favorite computer or programming magazine web site for the word “PowerBasic” and you won’t find much. This is not because PowerBasic isn’t valuable. I feel it is because PowerBasic took some time to grow, the company was a small company (but is growing too) and also because many programmers have lost the love of Basic and are also trapped in the world of Microsoft tools. It is quite likely that if Borland had kept TurboBasic it would eventually have surpassed Microsofts compilers. But TurboBasic is still here and better than ever, but in the form of PowerBasic. Also PowerBasic as a small company can maintain the core concept of Basic without all the politics and marketing hype of the big companies. PowerBasic has come into its own and in my opinion it is one of the best kept secrets in programming.

Now before you start comparing PowerBasic to all those shareware Basics found on the internet, let me set you straight. Most of those small startup Basic venders cater to designing games, not quality business applications and it shows. The DarkBasic’s, BlitzBasic’s, IBasic’s, etc. mostly cater to game design. They are weak in normal user interface stuff. None of those languages IMO, have the richness of the PowerBasic compiler. This often shows in things like such lanuages breaking the long time Basic syntax, which dates back to say QuickBasic. I have yet to find another Basic compiler which has that true BASIC look and feel and which is “solid as a rock”. I should also point out that when a programming language caters to multiple operating systems, like Purebasic or RealBasic, it will have to give somewhere on how it deals with Windows. PowerBasic is a true blue Windows compiler and it is built solidly on that operating system (and so is EZGUI). Also I really doubt that other Basic compiler makers have the hard core knowledge of the Intel CPU like PowerBasic does. I envision the guys at PowerBasic still count CPU cycles when writing the runtime code for the language. Whether they do or not, its their repution as quality compiler builders which provides such confidence in them. While PowerBasic (the company) is not perfect by any means, there is one thing for sure. Those guys know how to write a compiler and then know how to generate fast executing (and reliable) machine code in the EXE’s or DLL’s the compilers creates.

So for this programmer, PowerBasic gives me:

(1) BASIC, BASIC, BASIC as it was meant to be!

(2) A Basic compiler which produces the most reliable and fast executing code I have ever seen.

(3) The richest Basic language command set one could imagine.

(4) A community of programmers (on their forums) with such a rich variety of experience that it boggles the mind.

I never got that from Visual Basic!

Thats why I write tools for (and with) PowerBasic.

Just wait until you see EZGUI 5.0 ! It could never have been written in any other language IMO. It had to be PowerBasic.

Do you get the feeling that I love the BASIC programming language ? Sure do!

True, I am advanced Windows API programmer, so I may be able to do things not so easily done otherwise, but remember, my software was written 100% in PowerBasic. Actually I wrote EZGUI 4.0 Professional in PB 6.1, even though there were later versions available (I don’t need some of the extras they added to the later compilers). Now I finally had to switch to PowerBasic 9.0 for EZGUI 5.0 because I maxed out the PB 6.1 compiler. That won’t happen with PB 9.0 and I have already started to use some of the neat little “perks” in 9.0 to make EZGUI 5.0 even faster than what I could do with PB 6.1.

Now before you say that my comments above are biased and unfair, remember that I develop tools “for programmers”. That means with PowerBasic I have to be “better” than the average programmer, because I write tools for them. After over 10 years using PowerBasic, 10 years of developing a powerful GUI engine which is now in its 5th generation and with decades of experience in programming using Basic (in different flavors), I think its fair to say I know something about BASIC ! Is PowerBasic perfect ? No. Does PowerBasic lack in some areas ? Yes, it has its weaknesses like all software does. But this much I can say …

No other BASIC language (possibly no other compiler) could have given me the tools to build such an amazing GUI tool such as EZGUI. EZGUI is being used by other programmers to build quality commercial software which is being used all over the world and that is the proof in itself. And EZGUI “was written 100% using PowerBasic”. I really believe it couldn’t have done with any other compiler. That is how I honestly feel. True its my opinion, but my sofware (written in PowerBasic) speaks for itself and wait until you see EZGUI 5.0 ! EZGUI 5.0 will break all sorts barriers and will provide programmers with all sorts of new and exciting tools.

So thank you BASIC !!!

So thank you PowerBasic !!!    http://powerbasic.com

One comment

  • Do you really love PB, Chris? (just kidding) A real problem for us PB users is we love it so much we are unable to comment on it without sounding fawning and reverential. I bet it turns “real” programmers off.

    Regards,

    G