Page 1 of 1

Small Basic

Posted: Sun Nov 16, 2008 7:43 pm
by Trask
So, Microsoft came out with a new programming language can't do much but it's meant for those just getting started with encouragement to go to another, better language. http://msdn.microsoft.com/en-us/devlabs/cc950524.aspx
Small Basic FAQ



What is Small Basic?

Small Basic is a project that is focused at making programming accessible and easy for beginners. It consists of three distinct pieces:

* the Language
* the Programming Environment
* Libraries

The Language draws its inspiration from an early variant of BASIC but is based on the modern .Net Framework Platform. The Environment is simple but rich in features, offering beginners several of the benefits that professional programmers have come to expect of a worthy IDE. A rich set of Libraries help beginners learn by writing compelling and interesting programs.



Who is Small Basic for?

Small Basic is intended for beginners that want to learn programming. In our internal trials we've had success with kids between the ages of 10 and 16. However, it's not limited to just kids; even adults that had an inclination to programming have found Small Basic very helpful in taking that first step.



How do I learn Small Basic?

Download and install the Small Basic software. You can then use the friendly "Introducing Small Basic" document to help you get started with Small Basic.



Why another Basic language?

Why not? According to Wikipedia, there are more than 230 different documented dialects of BASIC.
Seriously, we were going to write a compiler from scratch and decided to take liberties with the language to fix some of the oddities.



What about the other “Small Basic”?

We noticed there’s another version of “Small Basic” out there. Other than the naming coincidence, our version of Small Basic doesn’t have anything to do with this other version.



How is it different from QBASIC?

* Unlike QBASIC, Small Basic is based on .Net and can consume (not produce) "Objects".
* It supports distinct Operations, Properties and Events.
* It doesn't have GOSUB :)



How is it different from VB.Net?

* Small Basic is small - much smaller than VB and supports just a subset of what VB.Net supports.
* You can actually write a compiler using VB.Net



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.



What about Scratch, Alice?

Both Scratch and Alice are great tools that help beginners learn the concepts of programming. They are doing so by enabling people to write "codeless" programs. Small Basic is taking a different approach by introducing code as a first class concept.



What about KPL?

KPL (now known as Phrogram) was a great concept that used to focus purely on beginners (and hence the name, Kids Programming Language). In the last couple years, it seems to have now extended its vision to support intermediate and advanced users too. Small Basic focus purely on the beginners; there are tons of other options for the intermediate and advanced users.



What are the limitations of Small Basic?

We wanted to keep Small Basic as small and intuitive as possible. We felt that it's okay to limit Small Basic from being the language of choice for solving every conceivable problem. For example, while it's theoretically possible to write a Small Basic compiler using Small Basic, it's probably not a good idea.



What is the extensibility story?

The Small Basic compiler and the environment allow 3rd party Small Basic libraries to be plugged in to extend the possibilites of what you can do from within Small Basic. We'll post more on how to achieve this on the Small Basic Blog.



What is the evolution strategy for the language?

One of the most important visions of this project is to focus on the beginner persona. This is very imporatant for us and we've so far successfully avoided the temptation to add any any feature that doesn't cater to this persona. We'll continue to be guided by this vision. So, don't expect Small Basic to start supporting Generics any time soon. :)



What is the future of Small Basic?

The future of Small Basic depends on you. If the idea and the project are received well, we'll continue to invest in developing newer versions and supporting the most requested features.

Discuss if you care to...

Re: Small Basic

Posted: Sun Nov 16, 2008 8:30 pm
by M_D_K
OMG another BASIC variant. What will Micosoft think of next?

Oh I know BASIC BASIC (unless it's been done then it will be BASIC BASIC 2.0)
When will Bill just let it die.

BTW I am drunk so although that still stands I may end up writing some real BS.

Re: Small Basic

Posted: Mon Nov 17, 2008 2:53 am
by programmerinprogress
I thought just to fill some time, I would check it out.

The IDE seems nice and simple, something I think a beginner would appreciate.

the syntax is VERY simple, you don't actually name your variable types, it sort of decides that for you(which I don't like at all, i'm sure it's a bad habit you dont want to pick up).

it's definately more of a"microsoft .NET beginners language" as opposed to a general beginners language, but I guess if you're totally clueless about programming, and you only want to learn some of the basics, it might not be a bad little learning tool.

the upside is that it is nice and easy to set up, which can be a bit of a problem with some other IDEs (you wouldnt believe how much bullshit I got from all of the visual studio installers, but Code::blocks was very easy to set up, and now it's just second nature, but I guess the absolute beginner would find it hard)

Re: Small Basic

Posted: Mon Nov 17, 2008 11:43 am
by Slacker
I suppose for 'kids' or 'beginning programmers' this is a good thing... though really... do they need something more simple than VB? Sounds a bit too user friendly to me...

Re: Small Basic

Posted: Mon Nov 17, 2008 3:38 pm
by programmerinprogress
Slacker wrote:I suppose for 'kids' or 'beginning programmers' this is a good thing... though really... do they need something more simple than VB? Sounds a bit too user friendly to me...
I actually think it has some minor uses.

I can remember back when I was 11, just got to secondary school, and they made us use is program called WinLOGO.

*bare in mind this was before I even contemplated programming*

you basically typed in a load of commands, and made a turtle move round the screen, and draw shapes, it was the peak of tedium, infact it was completely PATHETIC!

we were using this archaic program that's been around since god only knows when, the point is, they were trying to give us a taste of programming, without telling us we were actually programming.

now, if 11 year old me had access to something like Small basic, I reckon I would have acknowledged that I was programming, enjoyed it a little more, and perhaps I could have started earlier than when I did (15, 17 now)

perhaps this tool might spur a new, younger generation of programmers, who knows?, but everyone knows that there's loads of BASIC versions(and other beginner languages), and they haven't made everyone programmers, so why would this one be any different?