cogito ergo blogito

Scratching An Itch for an Easy Programming Language

Date/Time Permalink: 05/16/07 07:53:20 am
Category: LINKS and Lists

The surprising thing about the new Scratch programming IDE from MIT is that it's only made for Windows and Mac right now, and is under a license that might not be fully open source. So I'm kind of hesitant to cover it - but this is MIT we're talking about, the project could change as it matures. They do say they're planning a Linux version by the end of the year.

This is the Scratch website, but since they've just made the front page of Slashdot, Digg (with 1647 votes currently), BBC News, and probably half a hundred blogs like mine, I wouldn't expect their server to come up any time soon.

So, Scratch (and I haven't used it yet, of course) is a kind of application meant to teach kids programming. Instead of learning a syntax, they work in a graphical environment to snap modules together like Lego blocks. It's good for creating animations, games, and general demos. It sounds like I wouldn't want to code a server in it.

If this idea sounds familiar to you, you're right: The last closest thing we had to this was Logo, the famous "turtle graphics" of the 80s. Logo still has a version hanging around in KDE, by the way, answering to KTurtle:

KTurtle in action

Beyond program-by-picture, if you get to programming languages which were (at least originally) specifically introduced as "easy to learn" or "good teaching languages", you have Pascal, BASIC, COBOL, Python, Ruby, and Java, just to scratch the surface.

In fact, I've never heard of a serious programming language effort released where the creator said, "Well, we decided that computers were just not hard enough to understand, so we introduced 'MindShock', an mandatory object-oriented form of assembly which takes 125 low-level commands composed entirely of punctuation marks entered in hexadecimal. 'Hello world' runs to 582 lines, for instance. Our own designer quit when we asked him to beta-test it." See, usability does go into the design of every language.

I watched the demo video on the BBC article, and to me it looks more like another Flash IDE has been born. Nice enough toy, and I could recognize the loop-block metaphor Mitchel Resnick uses. This could be handy. It would be handier still if you could toggle back and forth between block-view and code view. And even handier if it was Turing-complete.

But taking a look at the Big Picture: We've been struggling to explain humans and computers to each other for close to a century by now, and so far we're still at square one. I'm aware of all the snags people will point to with Scratch - you'll just be learning the IDE and not programming, etc. But we keep trying to solve The Problem. The whole difficulty is that the meaty brain of a human and the electronic brain of a computer work in fundamentally different ways. And the difficulty with learning to program is that programming is simply the process by which we explain to the computer what we want it to do, but first we have to learn how the computer "thinks" so we know what it expects.

Good luck... we're going to need it!

Follow me on Twitter for an update every time this blog gets a post.
Stumble it Reddit this share on Facebook

suddenly the moon