I think wara may be correct. Scratch could emerge as the best current choice for introducing young people to programming concepts. Here is a summary of some of the features:
Lineage and Interface:
Scratch is written in Squeak (SmallTalk)
It impressively combines features from:
- LogoBlocks and Squeak EToys (programmable building block approach),
- Logo microworlds (user interface and page navigation),
- Boxer (program variables are visible manipulable screen objects),
- AgentSheets (encourage sharing of projects and components on the web),
- PicoCricket (artistic creations with lights, sound, music, and motion)
It's possible that they've taken the best features of all these programs and combined them successfully into Scratch!
The design criteria are based on experience with computer clubhouses in disadvantaged areas and include:
Building block approach to programming skills: Learners build procedures by snapping together graphical blocks much like LEGO bricks or pieces in a jigsaw puzzle. Different data types will be represented by blocks of different shapes, with pieces fitting together in only syntactically-correct ways. This approach eliminates the possibility of syntax errors (which have proven to be a major obstacle for learning text-based languages), allowing youth to focus on the problems they want to solve, not the mechanics of programming
Programmable manipulation of rich media: Young people like to manipulate images, video, and music - for example, Scratch includes image filters similar to the ones in PhotoShop or GIMP, but provides programmable control over these filters, so that youth can create videos in which the parameters of these filters vary over time
Deep shareability: Meaning that youth will be able to share objects at all levels (from procedure blocks to animated characters to full projects) and to exchange them between all types of devices (desktops, laptops, tablets, handhelds, mobile phones, embedded devices)
Seamless integration with the physical world: Youth can program physical objects (such as motors, lights, MIDI synthesizers) in the same way they program virtual objects on the screen – and use input from physical sensors (distance sensors, motion detectors, sound sensors) to control the behaviors of both physical and virtual creations
Support for multiple languages - they have committed to multilingual development
Developers:
The developers include experts from the Squeak community (eg. John Maloney), the Logo / LEGO community (eg. Mitch Resnick, Brian Silverman) as well as at least one expert on girls in computing (Yasmin Kafai)
Licence, Source Code, Platforms:
Scratch is a “closed development, open source” project ... the source code will be available by mid-2007 under the MIT License so that others can experiment with extensions and variations. However, unlike a conventional open source project, they do not seek code contributions from the community
Scratch is currently available for Windows and the Macintosh and they hope to have a Linux version available by the end of 2007
Harvard surprise: Harvard University is using Scratch as an introduction to programming concepts for a Java course and feedback from their students has been very positive!
Unknowns / Questions:
Scratch has been released but is still undergoing further development. I've only had a brief play with it so far. So maybe some of the items mentioned in the initial planning have not yet been implemented. I'm not certain about the ability to transition to text code for more complex programming or the seamless integration with the physical world feature mentioned above.
Reference:
A Networked, Media-Rich Programming Environment to Enhance Technological Fluency at After-School Centres in Economically Disadvantaged Communities by Mitchel Resnick, MIT Media Laboratory, Yasmin Kafai, UCLA and John Maeda, MIT Media Laboratory
Scratching the Surface: Interview with John Maloney (Squeak developer)
Videos - the Intro and Image Effects videos provide a quick first impression of what the program is capable of
Scratch for budding Computing Scientists - use of Scratch by Harvard University