1. Technology

Small Basic - A New Language for New Programmers from Microsoft

If you've tried VB.NET Express and you're still confused, try this.

By

Updated July 12, 2009

In my own four part Beginning Tutorial to Learn Visual Basic .NET tutorial here at About Visual Basic, I've done my best to make it as easy as possible. In the first paragraph, I write, "It's written for complete beginners so I have tried to explain everything." But there's nothing I can do about the fact that it's still based on exactly the same VB.NET 3.5 language that the professionals use to write some of the most sophisticated systems being created today. Nothing before now, that is.

Now, from Microsoft DevLabs, we have Small Basic (Version 0.5).

Since VB.NET is a full implementation of the .NET development environment, people might forget that BASIC was originally invented at Dartmouth College by Kemeny and Kurtz way back in 1964 as a way to teach programming. The name itself is an acronym for "Beginner's All-purpose Symbolic Instruction Code". Since then, the history of programming languages is littered with half-baked "learning" languages that aren't really documented or supported. (One such language is called "Liberty Basic". I've been hired as an instructor for courses that use Liberty Basic. Trust me, you don't want to go there.) BASIC has been so successful that Wikipedia has compiled a list of over 250 versions of BASIC from ABasic for the old Amiga computer to ZBasic for ZX microcontrollers.

Microsoft DevLabs bills Small Basic as ...

"... a simple and easy programming language with a friendly environment that provides a cool and fun way of learning programming. From making turtles animations to running a slide show on the desktop, Small Basic makes programming natural and effortless."

You might also notice that this is "Version 0.5". That means that it's not quite production yet. After languishing as an internal project, it was first introduced to the world just last October. It's the brainchild of Microsoft developer Vijaye Raji. As as example of what "not quite production" means, in the "Introducing Small Basic" file that is packaged with the downloaded system, you'll find things like this:

Rules for naming Variables
[TODO]

[TODO] means they haven't written that part yet. In fact, the version I downloaded ended abruptly with the note "Pending completion". The documentation is fairly sparse in general with no Help system and no formal documentation beyond the Introduction. For example, Small Basic supports an unknown number of events (At least two are used in the Introduction.) but there is no list of what they are that I can find.

The very best documentation is in the Blog maintained by the developers and the Forum available at Microsoft. Search the MSDN code library to find a Gorilla game and a serial port extension written specifically for Small Basic. If you browse either the Blog or the Forum, you'll quickly see that some people have taken the challenge and have written some fairly sophisticated programs, given the limitations of the language itself.

And what are those limitations? Small Basic is limited by ... well ... making it "small". For example, there are just 15 keywords in Small Basic, no type system (you can assign numbers to strings and vice versa), and variables are all global and don't have to be declared.

One "extra" that you get in Small Basic is "Turtle Graphics". I can remember that Logo was all the rage for kids back when I was a computer science student. Evidently, the folks at Microsoft DevLabs must remember it too because they added it to Small Basic. Instead of drawing lines with a simple version of GDI+ (which they also show), you get to watch a turtle crawl across the screen trailing a line behind it. (I thought only snails did that.) Great! Now we can watch a computer run as slow as they did back when I was a student.

Really Good Stuff!

In reverse order, here are the top three things I liked most about Small Basic.

3 - It works! It does what they say it will do and does it reliably. It's a "no crash" system.

2 - It's a great introduction. Most of the things you will need to know to take the next step up are here. Things like Intellisense, properties and methods of objects, and event oriented programming. There's even a simple way to publish programs to a web server provided by Microsoft.

1 - It's based on .NET! Of course!

What's not to like about it ...

I'm not sure why Microsoft made these design decisions, but here are the top three things I didn't like.

3 - No "Help" menu. Microsoft just hasn't had a solid and consistent design philosophy for Help in their products for years now. Maybe that's why they just decided to leave it out here. But there's no simple way to even discover what is available in the language.

2 - No components. I can see where the full ToolBox that you get in VB.NET Express would be a problem, but couldn't they have included just a few?

1 - Goto. Goto!!?? Yep! Right there on page 17 of the Introduction. They don't tell you about subroutines until page 45! They call Goto a "special statement". It's "special" all right. Unlearning Goto is one of the hardest things for programmers to do. It's like giving impressionable young minds a hit of heroin and then spending the next ten years trying to convince them that it's no good for them. Vijaye should be condemned to hard labor pasting holes back into punched paper tape. (Full disclosure: In the second month of the Small Basic blog, Vijaye attempts to justify his inclusion of Goto in Small Basic. I remain unconvinced, partly because I lived through the awful dark age of sphaghetti code and saw first hand what horrible things were done with Goto. I even did a lot of them myself. But I'm a reformed Goto addict today.)

Bottom Line: It's the best choice I know of for a complete beginner's language. Try VB.NET Express first, but if that isn't working for you, then try this one. You can download the system for free at this link.

  1. About.com
  2. Technology
  3. Visual Basic
  4. Using VB.NET
  5. Small Basic - A Language for New Programmers from Microsoft

©2014 About.com. All rights reserved.