Yesterday on our Mozilla Education call, I was giving a quick update about what's happening with the work on the Processing for the Web project, which I introduced here. A lot has happened since then, but we've waited to talk about it so as to give the students time to find their way.
Since my last post the students have managed to pick-up 60 of the outstanding issues, a third of which went in today. Another batch of fixes are currently being reviewed (including the first support for Processing's 3D functions on top of WebGL) and the last batch for 2009 are due in a little over a week. After the Christmas break, we get started again, and I anticipate the entire port will be done by late winter or early spring (there are another 60 tickets to get done).
Up until this past week, the majority of the work was done by a group of 9 students in my class at Seneca, Al MacDonald, and myself. However, lately we've seen a doubling of the community, as a whole bunch of talented developers and data visualizers has shown up looking to get involved. They've been fixing code, filing bugs, and creating amazing demos. In addition, Didier Coutard's students arrived on the scene this week--his students are also working on Mozilla projects in France. The influx of new people and energy is making an already great project even better, and it's amazing to be a part of it all. It's also amazing to see some of the cool demos and applications being built by this community with processing.js and html5, for example:
- Askken visual search engine
- Multi-touch demo
- Crayon Physics demo
- Motion Tweening demos
Just wait until the rest of the Processing language is there! Every little bit of work that gets done makes more and more existing Processing work "just work" on the web, which is a big motivator.
I've been really pleased with the work thus far, and with how amenable Firefox, Canvas, and JavaScript have been to the task of porting Processing to the web--John Resig deserves a lot of credit for having the vision to see that this was possible and doing the initial heavy lifting. One of the best ways for students to learn how to write good code is to read the code of good developers, and you couldn't hope for a better model than John for JavaScript.
I've also been blown away with the work and dedication of Al MacDonald (f1lt3r on irc) on this project. It has brought to life something that I've read Mark and Mitchell blogging about in the context of Mozilla Drumbeat. As Mitchell says, the goal of Mozilla Drumbeat is to:
find, energize and build a Mozilla community of people who are — or want to be — working with technology to build participation, understanding and control into Internet life.
Mission accomplished. Sometimes its easier to understand things when you have concrete examples, and Al is the best example I've seen yet of what Drumbeat is all about. As an independent web developer, he needs to put as much time as he can into finding and finishing work for clients. However, he also knows that innovating on top of the open web means that his work is easier in the long run. And so he pours a lot of time into helping me manage these students, reviewing code, answering questions, guiding the community, etc. It's a non-trivial investment of time, but it's paying off in spades, and has the potential to completely change the web and how we build graphical content. You need vision and commitment to stay on that path, and that's what I see in Al.
If you're interested in finding out more about this work, or want to get involved, I'd encourage you to:
- visit the main Processing.js page and Mozilla's Processing for the Web page
- join us on irc in the processing.js channel
- get involved in the bug tracker, helping triage, manage milestones, etc.
- help us finish remaining issues, fix bugs, write tests
- test, port, and create Processing content on the web. This is the time to see what works and what doesn't, what's fast, what's buggy, and report it
Processing.js began as one-man project and has grown into an energized community. It's still growing, and there's room yet for you.