The other day, my young son asked me to teach him how to write apps. I was thinking about what programming language I can start him with. I didn’t want to start him with mobile apps as I felt that would curtail his possibilities. This meant Android Java, Objective C & Apple Swift won’t cut it. Being an ardent Microsoft languages engineer, I never favoured Java, but that discussion is for another day.
My friends know well about my love “affair” with Visual Basic. Starting with VB6 (there is a charm to this acronym’s sound) will mean he will be learning more about GUI/Drag ‘N’ Drop rather than programming and language fundamentals. Also, the GUI guidelines of VB6 are rooted in Windows 95 days, which are outdated in today’s iOS7/Metro/Material design world. The next option was Visual Studio 2013 Express with VB.NET or C # .NET languages. Either of these would mean learning about objects and OOP concepts in the first class itself. I felt he would find it difficult to digest the vast surface of the .NET Framework, without understanding which, even Console.WriteLine(“Hello World!”); will appear to be magic for him. If he remembers software as magic (sorry Steve Jobs), he will not be curious enough to work his way through the entire process of how a program executes.
Speaking to one of my mentors (an expert teacher & coach on programming), I added Python to the list. For the last few weeks, I have been learning Python too as my side project, but I am not at a stage where I will be able to teach my son. So, reluctantly, I gave up Python as the choice. I wish to teach my son Python some other time. After much thought, I settled on Basic Language, which is celebrating its 50th year at Dartmouth College, where it was invented in 1964. Teaching my young son BASIC language in 2014 will be a fitting tribute that I can offer to this great language. Thinking of GW-BASIC brings in a nostalgic feeling for me. I started learning programming when I was about 13 (8th Standard) with GW Basic/BASICA.
Having selected BASIC, I went looking around for MS-DOS and GW-Basic; there are articles on how to get and install this combination even in Windows 8. If you want QBasic, which included a compiler and a text-based IDE for Microsoft BASIC, it was shipped with every version of a Microsoft Operating System from DOS 5.0 till Windows 95 (you can get it from an old Windows 95 CD). I was not comfortable with either of these (running GW-Basic or QBasic) in Windows 8, as it won’t give my son a chance to write true “Windows” programs or access modern necessities in later stages, as well as the archaic 8.3 file names he will not understand. I wanted a BASIC language in a modern avatar.
Looking around, I found the following three options. I went with Free Basic, you can choose any of them, all 3 are great options.
1) FreeBASIC is a free, open-source compiler that’s fully compatible with Microsoft QBasic language. In fact almost all programs written for QuickBASIC will compile with FreeBASIC. I found an IDE to go with it called FBIDE. Combination of FBIDE and FreeBASIC was awesome, it provided the simplicity of BASIC language along with the ability to compile and run natively in modern Operating Systems, including Windows, Linux in both 32 and 64 bit, as well as in DOS (I suppose that means MS DOS, DR DOS and FreeDOS).
2) QB64 is a self-hosting BASIC compiler for Microsoft Windows, Linux and Mac OS X, designed to be compatible with Microsoft QBasic and QuickBASIC. QB64 implements most QBasic statements and can run many QBasic programs, including Microsoft’s QBasic Gorillas and Nibbles games. QB64 also contains an IDE resembling the QBASIC IDE.
3) Small Basic from Microsoft: This is a noteworthy effort by Microsoft, especially aimed at students. The site even includes a complete curriculum to teach Small Basic. This is based on the .NET Framework, so it has the same OOP (Object Oriented Programming) issues, but I guess the way it’s been presented here will be easier to approach.
I also came across Real Basic (now Xojo), which is a BASIC-inspired environment allowing you to write commercial-grade apps for Mac OS. Since it is a business-grade and paid environment, I didn’t give it a try.
Before settling on “BASIC”, I seriously considered Pascal. Turbo Pascal was my favourite language in college, when we programmed using it on our lab’s Novell Netware, Practical lab. I consider losing Turbo Pascal (and its Delphi avatar) a big loss to the software programming field in the last two decades, and I still feel sad for it. In the mid-90s, I worked with a friend to develop a complete student course material in Pascal for a local college. I still have the materials and accompanying projector transparency sheets. I remember the long hours I spent typing them in the AmiPro word processor. AmiPro was one of the best in its heyday and light years ahead of MS Word in those days. I am surprised AmiPro even has a Facebook fan page.
Coming back to Pascal, I found a Free Open Source compiler called “Free Pascal” along with an IDE (Lazarus IDE) to go along with it. I will be trying it out in the next few weeks; it might turn out to be a good introduction to OOP, as FreePascal supports objects.

Overall, I am happy to see the numerous options to teach kids basic programming.
Discover more from Mangoidiots
Subscribe to get the latest posts sent to your email.

