Well I started with Sinclair Basic, I know plenty of others that started with some flavour of MS Basic on various 8bit micros. This seems like a sensible step from Microsoft to go back to their roots somewhat with this. imo Apple really needs something like this for their ipad
'Someone needs to make a Small Ruby.'
Thats exactly what _why was doing with Hackety Hack and Shoes - in fact, I have no doubt that they got their inspiration from _why. I believe the .net guys helped sponsor the art and code event why spoke at just before his departure from the internet.
In fact... _why, is that you?! No, probably not - there are no cartoon foxes or bunnies.
One is teacher familiarity. Many people have used a variant of BASIC before, whether in 80s home computers, via Qbasic or VB on PCs in the 90s, or via VBScript in Office. This may make potential teachers less intimidated, more confident, and more willing to teach it to kids.
Secondly, I can imagine that some schools use VB.NET for later courses, and this could provide a simple introduction to move towards using the full-blown VB.NET, and being able to easily transfer what they already know.
That said, I don't really see why it needs to have a pedagogical advantage. My initial feeling was that it was just someone looking to scratch an itch for nostalgia's sake, missing the days when every computer came with a BASIC, and a quick look through the blog pretty much confirms that (http://blogs.msdn.com/smallbasic/archive/2008/10/23/hello-wo...).
MSFT tries to introduce kids to imperative programming because this is what 99% of programmers use. The "MSFT .NET model" also includes F# (printfn "Hello World!") as well as implementations of every language known to man (Ada, Python, Ruby, Lisp, Pascal and dozens of unique languages).
I think part of the op's argument was to consider what the best way to learn programming is. Imperative/OO programming is important to learn someday, but it's not necessarily the easiest or best one to start on.
So Microsoft's motivations might not be clearly aligned with learning. Should or shouldn't they be?
Perhaps I was misguided by the insinuation that Microsoft is behind some imperative language conspiracy. In any case, 99% of the code that runs this world was written in an imperative language and most universities (I believe MIT is an exception with Scheme?) will teach an imperative language before any other. It may not be the easiest (I'm biased, my mind mapped instantly) or best to start with, but it certainly is the one most commonly started with and most commonly used.
I'm pretty sure Microsoft's motivations are simply to make the best development environment they can because at the end of the day that's what developers will use meaning more server licence purchases. This is evidenced by the relative freedom their dev techs get and by the insane amount of programming genius they have hired in this area.
I think you nailed it: I'm pretty sure Microsoft's motivations are simply to make the best development environment they can.
But children aren't developers (yet) and learning to program isn't necessarily easiest or best using imperative languages. It's not judgment, it's a difference of goals.
More specifically, that's just object oriented programming. Albeit with static objects. Ever written in Java?
System.out.println("Hello world");
Don't bash or insinuate things about Microsoft just because they happen to use the same wording that their Console object uses. Oh by the way, which makes more sense in that context: "Console.WriteLine()"? or "TextWindow.WriteLine()"? ... hm... it looks like a text window to me, so I'm gonna have to go for the second one.
System (system object) out (output stream of the system object) println (method of the output stream object of the system object that prints a string to the output stream followed by a newline character). How is that not OOP?
That was released 20 years ago (1990), the licensing situation for Tetris has changed a lot since then. There's actually a specific set of guidelines The Tetris Company enforces for a game to carry the Tetris name. They dictate everything from the piece colors to the playfield size:
Does anyone else notice that they seem to be using a variant of Logo for this project? Complete with calling the things on the screen 'turtles'? I Logo does take out a ton of the work for programmers who just want to get something on the screen as fast as possible.
28 comments
[ 201 ms ] story [ 1044 ms ] thread(Also, who the hell gives a teenager a touch tablet! I want those parents :( )
In fact... _why, is that you?! No, probably not - there are no cartoon foxes or bunnies.
Here's the current shoes: http://github.com/ashbb/shoes
And Hackety Hack: http://github.com/steveklabnik/hacketyhack/
And, for good measure, the cartoon foxes: http://mislav.uniqpath.com/poignant-guide/
One is teacher familiarity. Many people have used a variant of BASIC before, whether in 80s home computers, via Qbasic or VB on PCs in the 90s, or via VBScript in Office. This may make potential teachers less intimidated, more confident, and more willing to teach it to kids.
Secondly, I can imagine that some schools use VB.NET for later courses, and this could provide a simple introduction to move towards using the full-blown VB.NET, and being able to easily transfer what they already know.
That said, I don't really see why it needs to have a pedagogical advantage. My initial feeling was that it was just someone looking to scratch an itch for nostalgia's sake, missing the days when every computer came with a BASIC, and a quick look through the blog pretty much confirms that (http://blogs.msdn.com/smallbasic/archive/2008/10/23/hello-wo...).
TextWindow.WriteLine("Hello World")
Obj.method(arg) is the Dot Net model.
Write Hello World is easier, but is not the Dot Net model.
Learning the first, you'll be more inclined to continue in the Microsoft track ;)
So Microsoft's motivations might not be clearly aligned with learning. Should or shouldn't they be?
I'm pretty sure Microsoft's motivations are simply to make the best development environment they can because at the end of the day that's what developers will use meaning more server licence purchases. This is evidenced by the relative freedom their dev techs get and by the insane amount of programming genius they have hired in this area.
But children aren't developers (yet) and learning to program isn't necessarily easiest or best using imperative languages. It's not judgment, it's a difference of goals.
System.out.println("Hello world");
Don't bash or insinuate things about Microsoft just because they happen to use the same wording that their Console object uses. Oh by the way, which makes more sense in that context: "Console.WriteLine()"? or "TextWindow.WriteLine()"? ... hm... it looks like a text window to me, so I'm gonna have to go for the second one.
Window print "Hello World"
or something like it.
OOP is so much more than object-dot-methot...
Certainly they'd send a cease and desist if someone made a "Linux Halo" so why do they think it's ok to make a "Small Basic Tetris"?
The company that owns Tetris hasn't exactly been shy about enforcing their rights, either: http://mashable.com/2008/08/26/iphone-tris-app/
http://en.wikipedia.org/wiki/Microsoft_Entertainment_Pack
http://tetris.wikia.com/wiki/Tetris_Guideline
Aside from that, if they were using it under license, there would be a licensing blurb, similar to what you see in the footer of tetris.com.