http://supercalifrigginawesome.com/sites/default/files/SmallBasic_0.png

Looks like Microsoft may be taking a page out of their old DOS book, and encouraging younger computer enthusiast to get into programming.
Small Basic v0.7 was released somewhat recently, however I only found out about it late last week. Instantly upon writing my first Hello World program in Small Basic it reminded me of playing with QBasic back in they day. I mean, it's not an ugly DOS interface or anything. In fact, it's a really nice looking environment so far. That being said, it's still in early development so the IDE isn't exactly the most functional.

Back to the QBasic comparison though, Small Basic really reminds me of QBasic for the obvious reason that it's a BASIC derived language. But also because it operates in much the same way - no need to compile the program, no need to understand a complicated IDE, and no prerequisites to jump in and start learning it.

The interface is actually really nice, with some features on the horizon that could really make this a simple and productive way for beginners to learn programming. The language is clearly built with hooks into the .Net 3.5 framework (if not entirely within).

Small Basic IDE

There are a few things about the interface that indicates it is intended for use by younger users, and beginner programmers. The way the text selection highlight is colored with nice gradients and the size of the buttons in the toolbar, the lack of complicated n depth menu bars etc. It all points to keeping it so simple that beginners will feel comfortable just jumping in and typing in some code.

Text selection

One fun feature that Microsoft added to this BASIC implementation is the Turtle object. This is based entirely on the Logo Turtle, all the functions are there: Turn, PenDown, PenUp, etc, etc.
It's fun to code in some patterns and loops for the turtle and watch it draw out the patterns. As a school kid, I remember having lots of fun with the turtle in computer class. :-)

Turtle

I do, however, have some minor gripes with the whole concept of Small Basic - and I don't claim to be unique in these opinions. In fact, I won't really bother going into much details here, because most people who care about these issues have probably heard the arguments many times before.
Basically the problem is that learning a BASIC derived language can really hurt learning modern object oriented type programming languages in future. This isn't so much because of the syntax, but more because the fundamental way the language works. BASIC is what's known as a procedural language. It is fundamentally different to just about all modern programming languages, which are mostly object oriented. There may be upgrades to the Small Basic language on the cards for the future, but for now, it isn't looking fantastic. Later versions of BASIC implimentations are designed with object oriented code in mind, but I've never used one so I couldn't say how well they pull it off.

Issues and opinions aside, I will be playing with Small Basic and publishing some code here for you to play with. Hopefully before the weeks end.

If you are so inclined, go have a play, read the current manual (needs work too), and let me know what you think in the comments below.