Small Basic is live.

This is a wonderful tool that Vijaye has been working on for a long time and now has been released via DevLabs.   As someone that cut their “programming” teeth on versions of GW-BASIC running on TRS-80, CoCo, and the Commodore64, the simplicity of BASIC opened a whole new world of computers for me.   Introducing children to the joy of programming with VS2008 can be…well…overwhelming to both parents and children.  Vijaye’s blog post introducing Small Basic helps illustrate the reasoning behind his project….


It all happened in August of last year when someone sent me a pointer to the article Why Johnny Can’t Code and it got me thinking.  After all, when I was a kid, I started programming in ZX Spectrum with a built in Sinclair BASIC interpreter and did so until I ran into Turbo BASIC.  To me that transformation was groundbreaking and was the single most important reason why I chose to write software for a living, for the rest of my life.

An informal poll along the corridors in Microsoft revealed that most developers within Microsoft had started programming in some variant of BASIC.  It had all the good characteristics of a good beginner programming language – simplicity, minimal ceremony, instant gratification and ubiquity.  It helped them “get” programming and assisted them with understanding the need for more advanced concepts.

When I asked them how they’re going to teach programming to their children, they were stumped.  Almost everyone wanted to, they just didn’t know how.  Some said KPL, Python and Ruby.  Some said Alice and Scratch.  But they all felt that none of these have the charm of BASIC.  Of course there were some that took the Dijkstra’s stand, but they were few.

Of the numerous programming languages, BASIC, from its inception in the 1960s has undergone some major transformations.  Even among Microsoft’s BASIC offerings, the language and the environment (VS) has been repeatedly updated to include more powerful features with every release.  On the one hand this makes the language and the environment very powerful and capable, but on the other hand, it makes it daunting for a beginner. 

That got me thinking as to why isn’t there a “Small” variant of BASIC that brings the simplicity of the original language to the modern day.  And after a year, here we are, announcing Small Basic.  Small Basic is a project that will help make programming easy and approachable for beginners.  Now, that’s a pretty big claim – let’s see how Small Basic does it.

Check it out!



Comments (3)

  1. steven says:

    Very interesting. It certainly brings back fond memories of GW-BASIC, Turbo Basic and even QuickBasic. I tried it out a little and had great fun in doing so.

    The good things:

    • Documentation, though unfinished, is very clear.
    • Nice touches: turtle and Flickr integration and who knows what else.

    • Friendly interface, especially the intellisense.

    • Reasonably sensible error message (although I still think it would be better to do "GraphicsWindow doesn’t have a property called ‘Show’, did you mean ‘Show()’?" — that’s a bit more understandable to beginners than "Unrecognised statement encountered. Cannot find property ‘Show’ in Type ‘GraphicsWindow’")

    What I miss:

    • No "step -1" or even a Pascal-like "downto" to count down in a for loop?
  2. No auto-unindent-on-backspace in the editor

  3. My only major gripe is that it’s quite slow, taking 12 seconds to compile and run the simplest "Hello world" program (on a Core 2 Duo with 2GB of RAM).

    Also, I’m seeing a nasty bug in the turtle graphics. After using any of the Turn methods, the Move method causes the program to crash (often sending the turtle shooting off the screen to the right just before it does so). This even happens with the sample programs from the documentation.

  • Steven, Thanks for the comments.  I’ve forwarded them on to Vijaye.