Brian Bailey Preface to the Revised Edition

What is the next step in programming software for kids?

I've written often about experimenting with programming tools for kids. Ben loves to play with software, especially game making programs. Scoble's link blog (a great resource) brought an interesting application to our attention - Scratch from MIT. It's another visual programming tool and Ben has already had fun creating things using it.

I think what's missing from all of these block-based, visual applications (like Lego Mindstorms, Alice, Squeak, Processing, Power Game Factory, Microsoft's now defunct experiment - Bitman's Place, etc...) is something to help kids transition from blocks to code. Many of these tools are free, open source, labors of love, so the fact they exist at all is a testament to the incredible effort and sacrifice of many people.

The limitations of the existing options is they are essentially sandboxes - places to play and experiment (again, good things), but they don't help you get from one level to the next. I think there's potential, though, for something truly special to be created that could really teach, encourage, and entertain students to dive deeper into development. What exists now exposes kids to concepts and promotes experimentation (both important things), but if you want to move beyond this, the next step is a blank page in a text editor (or an alternative such as Dreamweaver or Visual Studio Express) and a book on HTML/CSS, PHP, Python, Ruby or C#. Tutorials are available for all of these, but all of these tools and resources exist in a vacuum. And who likes to vacuum?

What I envision is software that is more all-encompassing and presents the entire process as a journey and incorporates some of what makes games so successful. The current environments lack steps, goals, and guidance. A ninja theme (or black belts, Hogwarts, or the Star Wars world of padawans and Jedis) would be perfect for this - an interactive training environment where kids learn, are tested, and slowly work there way to higher levels, eventually reaching ninja or Jedi status. There should even be cool things (even full games) that are unlocked as they go, a huge motivator in most games.

The industry regularly bemoans the lack of developers and engineers. Can you imagine the result if a core group of talented people created something like this with the cooperation and financial support of the largest software and game development companies?  What if Halo 3 was only available for the first month as part of a programming universe where the only way to unlock it was reach ninja developer status?

It looks like Electronic Arts has already taken a step in this direction by underwriting and helping develop Alice 3.0, including incorporating a lot of the art and objects of The Sims. The goal is for the "new programming environment to become the national standard for teaching software programming." Look for it next year.

In the meantime, Ben and I are going to brainstorm this a little more and imagine the possibilities. I think there's something here.