BASIC, 50 years old, is still the best language to learn how to program a computer


This is not little Paulo

You are already weeping and grinding your teeth only reading this title, I know. Maybe you think that a guy talking about Commodore 64 programming couldn’t say anything different from that, or even you are laughing at my stupidity because BASIC with its line numbers and goto’s is often seen as ugly and disorganized, grows without control and it is a nightmare to maintain.

But my point comes from my experience as a  13 years old boy who doesn’t know better and were amazed about that little ZX-81 clone with 2 Kbytes of memory. When you are 13 you don’t plan, you are usually very disorganized and when you want something you want it right way – the results have to be there as soon as you finish typing the commands.

So let’s take a look at two different scenarios:

Modern Languages

“It is 2013 and little Paulo decided to make a simple game on his Windows 888 machine so he gets started altavistaing for how to do it – remember he’s young and foul!. After typing “How to Make a game” on AltaVista using Netscape, he gets back 5,430,000,000 different answers. He doesn’t even know how to pronounce that number so he closes the window, turn off the computer and go back to play with his brand new Falcon.

Few days later, after his Falcon had lost all his fingers during a zipline operation, Paulo decides to go back and make a computer game. Few days before at school, his friend gave him few tips and a step-by-step “how to” about where to start so he doesn’t need to rely on Altavista or Lycos anymore. His friend told him to make a game using HTML5/CSS/JavaScript or Unity 3D with C# scripts, pretty safe choices, he said!

So he decides to use HTML5, following his friend’s notes. He opens Notepad and start typing the HTML code that according to his friend, doesn’t do anything other than display a page where your game will be placed. After he types everything, he saves it and open another text file to type the Javascript code. After a while, he also finishes it. His friend said that he needs some images to represent the player and the enemies, and that has to be created by himself using Paint or he can grab some from the Internet BBS. He chooses the latter of course. He grabs the images, rename them accordingly to his friends indications and …. and what? Oh yes, to run the game, he has to open the browser and then the html file he created minutes (hours) ago. The game loads, but nothing happens so he decide to open the html file to see what is wrong – oh wait, the html file has nothing useful, it must be the JS file! He closes the html file, opens the JS and start proof-read it. He finds some typos and fix them, saves the file, opens the browser and now the game does something, but the images are all in the wrong size, or cropped. He goes back to the Internet BBS and finds new images, downloads them and changes the names. Now he knows he has to adjust/scale the images, so he realizes he couldn’t avoid Paint anyways. After the images are fixed, he repeats the whole cycle until he gets some sort of game done.

All happy he saves the game on a pen drive, goes to his friend house to show him. When he opens the game, everything is messed up and doesn’t work properly. His friend then says: “oh! You wrote it and tested only on Netscape, but I’m using Chrome! You know, you have to get it working on Opera, Firefox, Internet Explorer and Safari as well!”. Little Paulo stares at his friend for few seconds, than he turns back and leave without saying a word. At home, he takes his fingertips Falcon and start playing with it again.”

Commodore BASIC 2.0

“It is 1985 and little Paulo decided to make a simple game on his Commodore 64 machine, so he gets started researching first on how to do it – He goes to the closest news stand and buy an issue of Compute! Gazette, which he was told was dedicated to Commodore computers. He gets back home, seats in front of the computer, turns the switch and sees on the screen:


Ready is good! First, he tries few programs listings on the magazine, typing in the whole thing for hours, fixing typos and running the result over and over. Soon enough the commands start to make sense with the line numbers to organize the code and presenting it in an orderly way. Even the command GOTO is so clear and easy to use. It is as easy as one of those “connect the dots” on kids’ activities books: you want to go to line 100, just add GOTO 100! How can that be easier!? After more few hours his game is ready!

After a while little Paulo tries his own creations, typing in the commands and executing to see the results so far. At some point while writing his game, he needs some figures so he just create some variables using the graphic characters the C64 offers and he’s go to go – no download/edit/test images from Internet BBS!

All happy he saves the game on cassette, and goes to his friend house to show him. After getting there he asks his friend where is his computer so he can show his new awesome game. The friend takes him to his room and point his machine, and after little Paulo attempts to load the game with no success, his friend says “oh! You wrote it and tested on a Commodore 64, but I’m using an Atari 800!” Little Paulo stares at his friend for few seconds, than he turns back and leave without saying a word. At home, he takes his fingerless Falcon and start playing with it again.”


Despite there is no happy ending on both scenarios (I’ve got you, eh!) my point is to show that, although a Commodore 64 with BASIC in ROM is way more limited than modern machines, the latter, with all the technologies, structured languages or over-the-top engines, scares away the less prepared who easily will get overwhelmed by the overflow of information.

A Commodore 64 with BASIC is a much more friendly environment, and the BASIC itself as language is way more inviting as first (and maybe only) language. Even things that are considered limitations, like lack of functions, existence line numbers and goto are really some of the things that makes BASIC so inviting to learn because functions and other structures of modern languages are simply not part of our day by day activities, while numbered lists and “connect the dots” logic is natural for all people.

BASIC can be messy, but our mind is also messy and both will get along just fine.


Author: Paulo Garcia

6 thoughts on “BASIC, 50 years old, is still the best language to learn how to program a computer

  1. I remember those days well, though my experiences were with the Atari line of computers. I’ve been using personal computers since 1979, and some of my fondest memories are those of learning the innards of my machines, initially; and for quite a while afterwards with BASIC.

    1. Thanks for the comment. We tend to think that our old days are the best, but being totally biased I think our time with the first personal computers was much more fun.

  2. Ok, this is going to sound crazy, but my name is Paulo and I got my first computer at age 13 and it was a Commodore 64! (ROM Generation 1!) I kid you not. I’d have to say the coolest thing about programming a Commodore 64 back in the 80s was the fact that you didn’t have to have special drivers and libraries to do things (for example: reading a joystick). All you had to do was PEEK the location.


    1. Hey, I knew by your name you were a good fellow! Yes, it fascinates me even today is that the machine is very easy to get started, even if you think the main interface was a programming language. I’ve been learning 6502 ML now, which expands a lot what you can do, but I keep coming back to BASIC just because I love writing programs with it. I hope you keep coming back!

  3. I just got a Maximite BASICBOXX and it is programmed in good old BASIC. Been a fan of the language since I first became aware of it on the venerable TRS-80 Model I PC back in the early 80s, soon after followed with enhancements like those offered in the CoCo, Atari and Appple II variations, recently only beginning to make my way with GFA Basic on the Atari ST. Loved the note about the messy brain of ours, it’s got to be filled with GOTOs to last a lifetime, and that is good.

    1. Hey, thanks for the comment. How do you like the BASICBOXX? I saw the project sometime ago but I didn’t know it came to life? Did you buy the kit or the fully assembled version? Thanks!

Leave a Reply

Your email address will not be published. Required fields are marked *