ETech Does the world need more programmers? Of course, it does, says Jay Silver. Everyone should be a programmer.
That's not to say everyone should make their living as some sort of ponytail-ed, Python-obsessed shut-in. But just as everyone should know how to write, everyone should know how to program. And that's the computing Valhalla sought by Scratch, the MIT Media Lab project Silver flaunted this morning at the Emerging Technologies Conference in the heart of Silicon Valley.
"Should everyone be a writer? No, we need people to do all kinds of things," Silver tells The Reg. "But should everyone know how to write? Or, maybe even more importantly, should everyone have a situation when they could learn how to write and express themselves? I'm going to say 'Absolutely.' And I think Scratch offers the possibility that everyone can program, that everyone can express themselves through digital media creation."
Scratch is a (highly-)visual programming language aimed at the every man - even if the every man has yet to reach his ninth birthday. With this WYSIWYG environment - available as a free download here - you can piece together interactive digital apps in much the same way you'd piece together LEGOs. And that's not hyperbole. At a workshop this morning inside San Jose's Fairmount Hotel, more than a few programming novices built their own mini-apps in (literally) a matter of minutes.
Building apps from Scratch
Granted, these were exceedingly simple applications. Little more than a year into its launch, Scratch is focused on games and playful apps that revolve around images, animation, and music. But its building blocks - which can rightly be called building blocks - are remarkably intuitive. Five minutes after launching the environment for the first time, you can snap together an app that, say, pixelates a digital photo when you clap your hands.
"Scratch is tinkerable," says Silver. "The language is designed so that nothing ever breaks. Nothing never runs. You can learn things just trying to keep them in place...And we're willing to make design trade-offs to keep that. For instance, we don't do functions that can specifically take variables, because we haven't been able to design this in so that it would be completely intuitive."
Coded in Squeak SmallTalk - and compiled into Java for use on the web - Scratch is part of the default software build for the OLPC (One Laptop Per Child) notebook cooked up by MIT Media Lab founder Nicholas Negroponte. To date, more than 54,000 contributors have snapped together more than 350,000 apps, shared with world+dog via Scratch's YouTube-like app aggregator. Some contributors claim they're as young as four-years-old.
Whether they're lying about their age or not, Scratch is certainly intuitive enough for the precocious pre-schooler. The question is whether it's at such a high level of abstraction that it can no longer be called a programming language.
"When I first heard about Scratch, I hated it...I didn't like the idea of teaching kids how to program," says MIT's Seth Raphael, who now works on the project. "But this isn't a programming language. It's an environment where people can become creators of content for the internet. It's like crayons for the web. Though some people may disagree." ®