Expert to Expert: The Basics of SmallBasic

Play Expert to Expert: The Basics of SmallBasic

The Discussion

  • User profile image
    Cool. SmallBasic is doing very well.
    My 9 year old son loves it.
  • User profile image
    The choice of "Sub".  This is the same as in VB when the "code chunk" won't be returning a value.  It seems ok.  The actual keyword "Sub" is pretty vague, it's only when we expand it to the word Sub-routine that it sounds dated.  The doc files and read-me's can just refer to these blocks of code as "Subs".

    Furry cows moo and decompress.

  • User profile image

    And we now have proof that VB6 just doesn't want to die. I know this isn't VB6, but it's proof that VB.NET has too steep a learning curve for some of the very beginners.

  • User profile image
    This brings me to the following question:

    Why not just create a newer version of VB6?
  • User profile image
    Love this - am using it as part of DigiGirlz curriculum in SoCal - thanks Vijaye - keep up the great work!
  • User profile image
    Dan T
    Me (to daughter):  Did you do any more chapters in the Small Basic tutorial?
    Daughter:  Yes, Daddy, I have a program that will say "Good Morning" if it's the morning, and "Good Evening" if it's night.
    Me:  That's great, honey!
    Daughter:  Also, if you type in a word, it will display the definition.
    Me:  What??!!  [with lots of confusion and a bit of disbelief]  Was that in the same chapter???
    Daughter:  No.  I was just playing around.

    She showed me the program, and the Dictionary keyword.  I had to disable networking and see it quietly fail (returns nothing for definition) before I could believe it was web-service based dictionary.

    Congrats on thinking out of the box and including a web-service enabled uber-function as the 12th most important keyword.
    My daughter and I are *both* learning what programming is!
  • User profile image
    Thats really great!
  • User profile image
    Marvelous! Keep on coding. Pretty easy, isn't it?

  • User profile image

    You should add some Syntactic sugar to the language

    1) So at least rename the TextWindow object to T  ( i.e. the letter T )
    and the graphics window to only G
    and make the default window to selected automatically or by declaration
    I don't want my kids to waste their time in typing long words
    compare this :
    n = T.Readnumber()
    with this
    n = TextWindows.Readnumber()

    2) Remove redundant brackets  ... for empty arguments !!  so we'd have ...
       Writeln "Hello World"
       instead of
       Writeln("Hello World"

    4) add BASIC keywords and GWBASIC ... such as DATA , etc

    5) How about simple file handling ( open , read , write  ..) ??

  • User profile image
    Would it be dificult to make "Small C#" ? or is it out there already? if not I would like to help creating the equivalent editor for such a thing Smiley
  • User profile image
    While I have no particular love any more for BASIC (in all its forms) as a language per say, I think the goals of this project are utterly brilliant. When it comes to shipping this with Windows you'll need to be very careful that this doesn't end up being another attack vector. The reimaging of IntelliSense is also very fetching. It's going to be very interesting to watch this language since by its very nature it's going to be defined by what it doesn't include...

    What I really want is the C# 4+ eval loop that Anders demoed at PDC 2008 in a SmallBasic-esc IDE, not for in-anger work but just for code doodles.
  • User profile image
    The simplicity of SmallBasic is truly cool.

    GraphicsWindow.DrawText(20,50, "Loading images...")

    For i = 0 To 10
      pic = Flickr.GetRandomPicture("Channel9")
      GraphicsWindow.DrawResizedImage(pic, 0, 0, 640, 480)
    GraphicsWindow.DrawText(20,50, "Done!")

  • User profile image
    This is splendiferous. I love the fact that someone like Erik has his antennae towards SmallBasic. Vijaye does make his justifications well. Most people would just do what they were told if they were speaking with Chris and Erik.

    I wonder what Anders or Paul Vick think of this?

    With the regard to this being included in Windows, I for one would love it to be so. It is quite easy to SandBox a lot of the nefarious functionality anyway, so hopefully this can be included in Windows 8 or 9 if it matures well.
  • User profile image
    Sorry but most of those ideas are pants, especially the first.. "I don't want my kids to waste their time in typing long words".. the hell?
  • User profile image
    Is there any chance we can get a version that install on the Windows 7 beta? Smiley
  • User profile image
    I'm running it on Win7 Beta with no issues.
  • User profile image
    It would be cool with a pure version of this environment for kids as well - where you can't in fact say x += 1. Something to prevent corruption of the mind Wink
  • User profile image
    This is an absolutely amazing idea.  When I was a kid I couldn't afford to have a PC, so the first thing I'd look for on everyone elses computer was qb45 and code away.  I almost wish I had a kid just to teach them Small Basic Smiley
    Great work Vijaye!
  • User profile image

    Years ago I decided programming wasn't for me, after picking up a C++ book in a college bookstore and realizing it was over my head. This stopped me from going beyond much more than writing simple HTML web pages. But this SmallBasic TRICKED me!! Suddenly I want to program stuff. SmallBasic = Brilliant!!! Thanks for creating it! x10000

  • User profile image

    Interesting Charles. Are you running on the public 7000 build of Windows 7 and using the public Dev Labs build of SmallBasic? I get the same install error on Windows 7 at home and at work - and both of these boxes are clean installations of Windows 7. Guess I'll have to try popping open the SmallBasic MSI and see if I can't figure out how to put it together by hand...


    No need to pop the MSI. It seems that the problem is down to a issue with the CEIP in the Windows 7 Beta. After performing the following official incantations SmallBasic installs beautifully.

    An issue with the Customer Experience Improvement Program (CEIP) client in Windows 7 beta is causing Explorer and some MSI-based installers to stop working properly.

    To solve this problem, follow these steps:

    Click the Start button , click All Programs, and then click Accessories.

    Right-click Command Prompt, and then click Run as administrator.  In the User Account Control window, verify that Program name is Windows Command Processor, and then click Yes.

    In the Administrator: Command Prompt window, type or paste the following text at the prompt:

    reg delete HKLM\SOFTWARE\Microsoft\SQMClient\Windows\DisabledSessions /va /f

    Press Enter to install the solution.

    If The operation completed successfully displays, close the Administrator: Command Prompt window to complete this procedure. If "ERROR: Access is denied" displays, repeat this procedure from the top, making sure you clicked Run as administrator in step two.

  • User profile image
    That's very cuty~ Smiley
    Like that!!
  • User profile image
    Just type the first one or two letters of the word, scroll up or down to the desired (key)word and press TAB.
  • User profile image
    Documentation for InsertLine says:

    Opens the specified file and inserts the contents at the specified line number.
    This operation will not overwrite any existing content at the specifid (sic) line.

    Should say:
    Opens the specified file and inserts the contents before the specified line number.
    This operation will not overwrite any existing content at the specified line.
    If the selected line number is greater than the number of lines in the file the line will be appended.
    If the selected line number is 0 the line will be ignored - no alteration.

    my_return = File.InsertLine("C:\my_file.txt",1,"This is a test " + 1)
    my_line = File.ReadLine("C:\my_file.txt",1)

  • User profile image

    Well, i am used to write code in VS EE and/or other complex Development Environments but when i saw the SmallBasic IDE, i totally lost myself in its simplicity Tongue Out ROFL Despite its simplicity, its a great approach for beginners! But what i miss is a compiler,...Crying

  • User profile image

    I'm with you, in that I love the simplicity of Small Basic. However perhaps you're unaware that it is, in fact, a compiler!  Just look in whatever folder you load your .SB files from, and you should see compiled forms of all your projects!  For instance, I threw together a simple "Pong" clone ( Yeah, I know - why bother, right? ), and I named my project file "", so next time I looked in the folder, sure enough - there was "pong.exe", all compiled & ready to go!  I will say Small Basic leaves much to be desired in terms of performance - don't expect blistering execution speed - but it's whole purpose is to serve as a learning tool, not the next "bleeding-edge" C+++++ Uber- development tool.  To that extent, I think it fits the purpose beautifully!

  • User profile image
    Phil Conrod

    Computer Science For Kids has published several Microsoft Small Basic Tutorials that pick up where the Microsoft Small Basic Tutorial leaves off. You can find out more information about them at

Add Your 2 Cents