SmallBasic - GW-Basic for a Windows World

When I first learned to program, I learned on an Apple II+ using Applesoft BASIC. I first started out just by retyping in the program listings I found in Creative Computing and then started to realize that I understand the syntax and what it all meant. I've followed BASIC in its various incarnations through the years and still favor programming in Visual Basic over C#.

At this year's PDC, one of the speakers mentioned "SmallBasic" during their introduction and then Brian Harry mentioned in a blog article in reference to a new initiative called DevLabs.

As it turns out, Small Basic is an implementation of BASIC for beginners, kind of like the old BasicA or GW-BASIC that use to come IBM PC DOS or MS DOS.

What I find really neat about this is that the development environment is really simple and a lot more effective than Visual Notepad. The editor does have Intellisense as well as a different implementation of tool tips. As you type, for Intellisense, you get dialog that shows different keywords, properties, methods, and so on, but rather for the novice developer, the dialog provides a longer description. Instead of tool tips, along the right side of the environment, it's give a lot more context sensitive help about the method, property, or function. The Small Basic is pretty...well...basic. Or is elementary a better word? An editing window, tooltip window, and simple tool ribbon. No debugging support. No breakpoints. No watchpoints. No context menu support. Not even Stop, Break, or End keywords. So don't go and try to program the classic 1971 Star Trek text game.

SmallBasic1

The major BASIC keywords are present as well some that I found pretty surprising to find. For example, there's a Flickr class that allows you access the Flickr Photo Service and Network class to provide network access. I also liked the presents of Logo, a simple but powerful programming language for drawing, using Turtle graphics. To produce a spirograph-like circle, your BASIC code using Logo would look like the following:

sides = 50
length = 400 / sides
angle = 360 / sides

Turtle.Speed = 9

For j = 1 To 20
For i = 1 To sides
Turtle.Move(length)

    Turtle.Turn(angle)
EndFor
Turtle.Turn(18)
EndFor

And it will produce an image like this:

SmallBasicLogo2

When I was watching the Turtle graphics render in the window, I started to feel like I was sitting back in front of that Apple II+ again thinking how cool it would be to write programs for a living.

Check it out. It's fun. You might fall in love with BASIC all over again.

Excelsior!

Technorati Tags: SmallBasic