Could Scratch be today’s Basic?
It seems that this is your first time to my blog. Welcome! In this blog I will share my ideas on how you can make a living in a way that feels good to you, your family, your environment and everyone around you. If you want to know more about me and this blog, check out my about page. And if you want to stay updated on my new posts, subscribe to my RSS feed. Thanks for stopping by!
As a kid I shared a Commodore 64 with my brothers. For a while we had a lot of fun playing games like Giana Sisters, Kickstart or Outrun, but pretty soon the urge to learn how to make the computer do what I tell it to do became irresistible. At the time programming was everywhere, even the operating system was a BASIC interpreter and when you were using the machine you were always running programs. No compilers or any special setup was needed. Even the Commodore 64 user’s manual was teaching how to program using BASIC!
That was more than 15 years ago, and times sure have changed. Getting started with programming is getting harder and harder all the time while the programming languages and environments are made more efficient and productive for the professional minds. The new languages, frameworks and class libraries are great for a seasoned professional, but they raise the bar so high that a 10-year-old kid will likely just click a few buttons and then give up saying: programming is too hard, or that programming is just plain boring.
APPROACHABILITY. That’s what’s missing from today’s programming environments.
A few days ago I bumped into a promising tool called Scratch, created by the Lifelong Kindergarten research group at MIT. Scratch is aimed at children of age 8-16, but if your kids can read, they will probably enjoy Scratch even at a younger age. My newborn is just four days old as I write this so I don’t yet have experience on how well this system really works for the target audience. But my initial impression is that Scratch has a great deal of approachability and it definitely is a step to the right direction in order to get children excited about programming and practicing their logic skills!
To try out Scratch I created a simple space ship duel game. There is no collision detection or scoring mechanism, but otherwise it’s kind of playable already. You can get the game from my Scratch profile page.
The best innovation in Scratch is that no typing and thus no remembering of code structures is required, but the programming is rather done by combining control structures and commands in a Lego-like way. For example, the following image represents the code needed for rotating my space ship left and right:
Really simple, and at least to me also really easy to understand. When we go on adding the logic for moving the space ship it starts to look a bit more like programming. For a professional programmer it was fascinating to see these familiar structures on the screen without any real lines of code. I started even wondering why programming isn’t always like this.
And piece by piece a game was built. Some of the terminology is a bit strange (for example different animation frames are called “costumes”) and there is no object instantiation (to make two space ships I had to copy paste the ship “sprite”). Running the games is a bit slow, but that might be acceptable if we keep in mind that Scratch is meant to be the initial learning tool for programming - and when you collect more experience, you can actually move to real programming languages that then have better performance.
Maybe Scratch isn’t quite today’s Basic, as it’s not as widely available. Nothing really beats having the programming language as a part of the operating system. But on some other aspects I think Scratch is even better: it lets the user concentrate on the programming logic and forget about language details like semicolons at the end of the lines. The logical skills and feelings of success that can be gotten from playing with Scratch are anyway the most valuable parts of programming for kids even if they don’t become programmers when they grow up.
If you enjoyed this post and don't want to miss any of my new content, subscribe to my RSS feed or have the latest posts delivered straight to your e-mail inbox.








