October 24, 2008

Small Basic

Microsoft made another programing language for beginners and it is called "Small Basic" (not to be confused with "SmallBASIC"). 

  Small Basic, The Logo  

Despite already having a language for beginners, and a guide for C# for Sharp Kids, among other incentives and products to get people to program Microsoft up some third party apps and support (Developers, Developers, Developers), they have made another.

Why on Earth would Microsoft make another language for beginners? According to some people at Microsoft it has to do with the charm of the simplicity and power of Basic.

Image from Introducing Small Basic

As you can tell from the image, despite using grammar quite similar to other .NET programs, library names got screwed up in the process (I booted it up after a very quick install to find out that the venerable Console.WriteLine("Hello World") didn't do anything!)

It is much more clean then Visual Studio however, while retaining Intellisense. Except Intellisense pops up in a much more graphical way. Much more graphical. Image from Introducing Small Basic

And of course, the workspace has a bit of large icons looking suspiciously like, but not completely, a ribbon, just above.

So the looks are different, and the library keywords I've used so far are a bit different. The FAQ outlines some more:

What are the unique features of the Small Basic language?

  • Imperative
    Just like the early variants of BASIC, Small Basic is imperative and doesn't use or expose beginners to concepts like scopes, types, object orientation, etc.
  • Size
    The Small Basic language consists of just 14 keywords.
  • Type System
    There actually isn't one. You can create string and numeric constants and assign them to variables. Operations performed on these variables will be interpreted according to the content.
  • Variables
    All variables are global and are always initialized. They can be used before they're assigned.
  • Events
    You can create a sub-routine and assign it to an event. This will wire the it up to an the event.
  • Libraries
    The libraries provide static "Objects" that group operations, properties and events. New libraries can be created using other .Net Languages and added to the Small Basic runtime.

I have to say that as someone learning C#, Small Basic would have been a great step to do before; at this point, I have a better grasp of objects and classes then I do of If, and While loops!

Sure, programming in a full featured language teaches good programing, but why are the youth being poisoned with so much so fast? Why not first get down some Arguments, and some Code?

This goes back to one of the rationale Microsoft gave for doing this, which was a link to an article. Here is a particularly powerful excerpt:

This is not just a matter of cheating a generation, telling them to simply be consumers of software, instead of the innovators that their uncles were. No, this goes way beyond that. In medical school, professors insist that students have some knowledge of chemistry and DNA before they are allowed to cut open folks. In architecture, you are at least exposed to some physics.

Why learn to fly an airplane when you haven't even learned to crawl?

1 comments:

Lituus Limacon said...

great find, and yeah, the "ribbon-like" UI is also interesting