This year’s FSOSS was a bit smaller than usual which is to be expected given the state of the economy and a flu virus that seems to be jumping around like a mad grasshopper. However there was still a quite a bit of neat stuff going on. I didn’t get to go to as many talks as I would have liked to but I did catch Al MacDonald’s (side note, Al’s site does NOT use Flash!) talk on Processing.js.
I was really interested in it because it is similar in some ways to my own project, the Canvas 3D JS Library. Processing.js is a language for programming graphics and animations by drawing onto the Canvas Element using the Processing Language. I had learned a bit about Processing.js before hand but seeing Al McDonald explain it was much much better.
The neat part about Processing.js is that not only will it allow you to create stunning visual effects but being part of a web page means that you can drive the visualization with data from the web. Al showed a demo of a search engine that visualized search results with processing code. Drawing with processing requires only that you include the Processing.js files as part of your page (similar to how c3dl works). It does not require add-ons.
There are several students at Seneca working on adding more functions to Processing.js (it is not the complete processing language after all). Part of this will include adding 3D functionalities to processing.js using WebGL. As c3dl has already done a lot of work in this area, we are looking forward to working on this aspect with the Processing.js project.
One strange thought I had while attending the Processing.js talk was that for some reason it reminded me of Apple Logo (or was it Apple Turtle?). This was the second programming language I ever learned (the first was BASIC). It ran on my old Apple II and basically you can use it to draw pictures by giving commands to a “turtle” (think of it as a cursor that told you where the pen was). As the turtle moves, it draws a line. You could tell it to go forward, backwards, turn a certain amount lift the pen or put it back down and a probably a whole bunch of other stuff that I cannot remember now. It was not a fast language but it was really cool because I could visually see what my instructions were doing. Although I had not used it in years nor was it a practical language it was part of what sparked my interest in programming when I was young.
With that in mind, I can’t help but to think how this could be a really good way to introduce to programming for students at younger grades. It has some very unique benefits:
- It’s seems to be a simple language to learn.
- It’s highly visual and graphical (its not just text… /yawn /boring)
- It’s open source (no proprietary licensing required to develop or publish with it…just a text editor and a browser)
- It’s part of the web, you can do some really neat stuff that interacts with the web and data on the web.
- What you do is on the web…you can do something, publish it and show off your work.
I have done workshops for high school students in past to trigger their interest in programming. I think something like this would be far more interesting than plain old web pages.