BASIC: Making a case for an old favorite
Are you looking for a way to increase productivity when it comes to your software development? Are you willing to try something different? How would you like to speed up software development, decrease time spent on software maintenance and improve the reliability of your software?
Many a long-time C programmer will likely tell you that C (or C++, C#) is the only serious programming language worth using today in business or the enterprise. To even suggest otherwise would likely make one a laughing stock by one's peers. Yet think about this for just a moment: Of all the software projects you or your company have undertaken, how many of them have come in over budget? How many have actually failed completely? How many, though finished, were plagued with bugs that never seem to get resolved? How easy has it been to maintain such projects, years after they were developed?
If you or your company has never experienced any of these problems, then congratulations. You need not read any further, since you obviously have a good team of programmers who have earned their keep.
But if you have experienced these problems and possibly even in excess, then, please, for a moment be willing to consider a different approach to software development. I would like to reintroduce you to a programming language, despite all the efforts to make it go away. It is a language that most of us once knew, which we may have forgotten about, which has grown and matured while we have been courting the current generation of programming languages.
It is kind of like a young boy, who befriended the girl next door when they were children. They played games together and laughed together and were best friends. But as they grew older, they left their childish ways behind and grew up, going their separate ways. But a strange thing happened one day. As young adults, they happened to meet again and started sharing their memories of the past. As they begin to learn more about each other, they realize that both had matured and that they see new things in each other, which makes them appreciate one another even more. They begin to develop a deeper affection for each other beyond what they had when they were children. You know how the story ends, don't you?
Nice Story But What Does It Have To Do With Programming?
Actually a lot! Some developers have actually experienced something similar with programming languages. When I mention the name of one specific programming language, I think some of you will get the point of the story immediately. If you don't get it, I doubt you ever will, so don't read any further and please don't ruin this beautiful story for the rest of us who do.
What? You have to be kidding right? Actually, no I am not and if you consider the story above, I think you know where I am going with this. Now some may say, isn't the BASIC programming language truly obsolete and old fashioned? Shouldn't BASIC finally be let out to pasture? Isn't BASIC a bad programming language?
That's what some of the educators in our colleges may tell you. Thats what professional programmers, the elite of the developer world, may tell you.
I read an interesting blog, where an article discusses this subject and the author quotes someone who supposedly said the following:
It is practically impossible to teach good programming style to students that have had prior exposure to BASIC; as potential programmers they are mentally mutilated beyond hope of regeneration.
The author's reply impressed me, when he stated "I grew up on BASIC" and proceeded to explain about his feeling towards it.
Going back to my story earlier, one can imagine the boy when grown older, despite maybe not seeing the girl for years, because of his fond memories of her he is willing to defend her reputation to anyone who may attempt to say a bad word about that girl next door.
So why so much passion and feeling for a programming language, which by all rights is suppose to be dead and obsolete?
"I started learning programming using BASIC!"
I find it interesting that many an experienced programmer, when describing how they first learned to program a computer, often says something like "I started learning programming using BASIC". Often their story ends with them moving on to other languages that they may refer to as being more modern, professional or mainstream. Programmers who move on to languages like C++ may even deride their first language (BASIC) as being obsolete, deserving to be forgotten forever.
BASIC Has A Rich Heritage
No matter how any developer today views BASIC, one thing that is indisputable is the long and rich heritage the programming language has. Personally my first exposure to BASIC was in 1975, over 37 years ago. I learned how to write simple BASIC programs on a terminal connected via a phone line to a college mainframe computer. My high school math teacher wanted to expose his advanced students to programming.
Years later my next exposure to BASIC was my first home computer, a Texas Instruments TI-99A computer. Then came an Atari 400 and a Commodore 64. Some may be surprised to learn, that even back then BASIC was more than simply an interpreted language burned into a ROM chip. Abacus created a real BASIC compiler for the Commodore 64 and that was my first experience using Basic as a compiled language. That compiler produced some very fast running code.
Over the years I moved on to GW Basic, QBasic and then my first truly professional programming language Microsoft QuickBasic. My last DOS BASIC compiler was the Microsoft PDS 7.1 compiler. I wrote a lot of custom software over the years using PDS 7.1.
Then Came Windows
When Windows came along, now it was time to move to a GUI based programming language. The transition to Windows was difficult at first, because some of the Basic languages I tried were not as easy to learn as their DOS cousins were. I experimented with GFABasic and CA Realizer. But it was Visual Basic which finally caught my attention and VB 1.0 was quite easy to learn and use. The problem with the early versions of VB was that they generated PCode and not machine code, so speed was an issue. I was spoiled by DOS BASIC compilers. My last version of VB was 5.0 Professional and that could generate quality machine code.
A lot of programmers made a good living using Visual Basic, but sadly it died a slow death when its .NET cousin came on the scene. Many long time Basic programmers may feel like me, that BASIC lost its way when VB went the route of .NET.
So Is BASIC Dead Now?
What is so amazing about BASIC is that no matter how many people try to put it out to pasture, there are those who keep bringing it back to life and often with some amazing results. Also like the girl next door in my story, at least one (possibly more) Basic programming language never disappeared, but simply grew and matured over time, never losing what made it BASIC, but simply improving with time.
While Microsoft has left BASIC as we know in the dust, other companies, some simply one-man operations developing indie versions of Basic, keep bringing BASIC back and today it has many different flavors, from scripting languages to full-blown Windows compilers. Some of these BASICs amazingly maintain the ability to be backward compatible with BASICs used over 20 years ago, while providing many modern constructs found in more main stream languages like C++. If you like BASIC, then likely there is a flavor just for you. So where are all these BASIC programming languages and why even consider them?
Going back to my original questions, BASIC has something that other languages have often failed to appreciate. The reason BASIC was so popular in the past and the reason it is so popular today is one simple thing: It is a natural language. Let's be honest here. When you look at a language like C++, while it is a very good programming language, it can never compare to BASIC in its naturalness. It was designed to be easy to learn, easy to read and easy to code. That is why it is one the favorite languages for hobby programmers. Now some may suggest that this is the very reason BASIC is not well fitted to professional programming.
But like the king in the story "The Emperors new clothes", maybe it takes a child to remind us that things may not be as they appear. In an effort to find something better, the king and his court ended up a little bit embarrassed. Maybe the simple and obvious is not so bad after all.
The purpose of this article is to debunk that reasoning. BASIC's ease of use and excellent readability is actually a pro and not a con. If you ask a professional programmer who still uses BASIC today, why he or she uses it, most of the time the first answer will be its ease of use, its naturalness. You can write code in BASIC, shelve it for a couple of years, then come back to it years later and usually pick up right where you left off. Its naturalness is a benefit. It increases productivity significantly. It improves code maintainability significantly. It is also easier to code for many and it even can be fun.
The naturalness of a programming language is something few consider today, but it really does make a difference. I know. I have been seriously coding in some flavor of BASIC for over 20 years. I used a BASIC compiler in the days when most were only using the interpreted Basic in ROM's (ie. Commodore 64). I even wrote my own BASIC like compiler, using the Abacus Basic compiler (for C64) just so I could create an even faster basic so I could write a video game. It actually earned me over $1,000 when I sold the game to the Compute Gazette magazine. I was writing commercial quality applications for local businesses using BASIC even before the IBM PC became popular (on Kaypro computers running CPM).
To quote Richard Mansfield: "Given the freedom to choose, the public -- amateurs and small business programmers -- greatly prefers Basic and 4GLs". Why? Because there are advantages to "languages that are deliberately constructed to resemble natural human language as much as possible" as Mansfield suggests. I agree.
After all these years of programming using BASIC, I can attest to its ability to be used to write commercial quality software and I still write software using BASIC today. Its naturalness is not only appealing, but it increases productivity significantly.
The Girl Next Door
Like the girl next door in the story, BASIC has grown and matured over the years. What one loved about her in her youth, is still there, but today she has qualities that make her even more beautiful than ever. Yes, she has turned out to not only be a beauty, but also a faithful friend, a devoted worker and she has new charms one never thought she ever could have. She has even more reasons to be loved today, than she did in her youth and her beauty is not just skin deep. It runs to the core of who she is.
This is no fairytale, no imaginary story. She really lives (I mean BASIC of course).
BASIC still lives on because it is an excellent and productive programming language. Its lives and breathes ease of use and naturalness. If BASIC is so easy that a child can use it, imagine what a professional can do with it?
This much I can say from experience. BASIC's naturalness is why I use it professionally. Code readability is exceptional with BASIC, which makes coding faster, in my opinion. Believe it or not, when I get in a real coding mood (productive) I almost think in BASIC. The code flows.
BASIC Here, BASIC There, BASIC Everywhere!
Whether for Windows, Linux or the Mac, there is likely a BASIC somewhere just for you. Please check out the following web sites and their extensive list of BASIC programming languages:
Some of these BASICs deserve special mention. While I have not personally used these Basic languages, from my own research I have found that they are quite popular with many users, so they deserve to be highlighted.
(If you have found another flavor of Basic which you think deserves mentioning, please post a comment to this article and note it.)
My Personal BASIC Favorites
So what about me personally? What are my favorite BASIC languages? The first one, I am only in the learning process with it, but it still is a favorite simply because of how it was created and the popularity it has developed. The language is called ThinBasic.
It is free and a BASIC scripting language. It was written using my favorite BASIC language (see below) and if you are a hobby programmer who wants to learn BASIC, I think it might just be the one for you. It has an excellent website with an online forum to help you get started learning how to use it. It is a quality scripting language and very well designed.
The language can even be extended with modules; for example there is an excellent 3D graphics module available. I feel that it would be an excellent BASIC to use in educational settings, too, so if you are a teacher and want to start teaching your students how to program using BASIC, then please check out ThinBasic. It also should be noted that the ThinBasic language was patterned after the professional version of BASIC that was used to create it. Students who enjoy ThinBasic, can later move on to a professional compiler with a similar language and syntax.
So what BASIC do I use professionally ? It is called PowerBASIC and, boy, does it have a rich heritage. Back in the DOS days, if you were programming then, likely you heard of Borland's famous TurboBasic. It was the only BASIC compiler that some may feel ever came close to unseating Microsoft's QuickBasic compiler.
Borland sold the rights to TurboBasic back to its developer, Bob Zale, and he renamed it PowerBASIC and he started his own company to sell this powerful compiler. PowerBASIC is a small company that has had to work very hard to build its reputation over the years without the backing of a huge software corporation behind it. Today it is one of the software industries best kept secrets. Why?
Because there are a few things that make PowerBASIC stand out from the rest. First is its commitment to quality. I personally am a stickler when it comes to reliable software. My goal is to create software which is as close as possible to being 100% bug free. The programming language one uses is critical to this goal. PowerBASIC has proven itself to be reliable. I have used PowerBASIC for a good 10 years now, and I can honestly say I have been very satisfied with its reliability.
Second, is executable speed. As long as I have been programming, I have concentrated on developing software that runs as fast as possible. In my opinion, PowerBASIC produces fast executables, which are on par with what any C compiler can produce today and if you find you can't get enough speed out of the compiler using BASIC, then it also supports inline assembler.
Third, I want to write software with as small a footprint as possible and once again PowerBASIC has come through. I know this from experience. PowerBASIC programmers like to joke about being able to write large software applications which can still fit on a floppy disk. If you want to write applications which are well-suited to the limited hardware of todays Windows tablet PC's, then PowerBasic is worth your investigation.
PowerBASIC also has an online peer to peer forum, which over and over again has proven itself to have a community of programmers with some of the most experienced Windows API programmers I have come across. PowerBASIC takes this community forum so seriously, they even do not permit members to use an alias. It is a community of real people, who over the years have been sharing their knowledge and experience with one another.
PowerBASIC also has in recent years been supported by some quality third-party developers who have produced tools and libraries for use with Powerbasic (I am one of those developers). You can find more information about these add-ons for PowerBASIC on their website, but just to name a few that I am most impressed with there is an excellent Grid control called EGrid, an amazing Graphic engine called GDImage, a powerful skin engine called WinLift, an excellent third party Visual Designer called FireFly and others.
If you are a Visual Basic programmer who still uses VB 6.0, then PowerBASIC would be a great addition to your toolbox for building fast DLL's. With PowerBasic you have full access to the Windows API, plus a rich BASIC command set.
Maybe you doubt that any business with any sense would use Basic. Well take a look at this list of PowerBASIC customers and see if there are any reputable companies on it.
BASIC Still Lives!
Yes, BASIC is not only still alive, but it is thriving. There is likely a BASIC which can fit your specific needs, whether it be for Windows, Linux , Mac or even Android. Why not check out the lists provided in the links above and download a few versions today.
Chris Boss is an advanced Windows API programmer and developer of 10 year-old EZGUI, which is now version 5. He owns The Computer Workshop, which opened for businesses in the late 1980s. He originally developed custom software for local businesses. Now he develops programming tools for use with the PowerBasic compiler.