Education/Projects/ProcessingForTheWeb: Difference between revisions

Added some material on technical approach
(Added section on benefits to Mozilla community)
(Added some material on technical approach)
Line 5: Line 5:
== Summary ==
== Summary ==


"Processing for the Web" is a proposed Mozilla-sponsored initiative to take the Java-based [http://processing.org/ Processing] language and environment (popular for art, design, and visualization applications) and port it to the open web using standard technologies such as JavaScript, [http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html Canvas], etc.
"Processing for the Web" is a proposed Mozilla-sponsored initiative to create a complete and robust port of the Java-based [http://processing.org/ Processing] language and environment (popular for art, design, and visualization applications) to the open web, using standard technologies such as JavaScript, [http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html Canvas], etc.


The goals motivating the initiative are as follows:
The goals motivating the initiative are as follows:
* to enable Processing users to leverage the full power of the open web, and help spark a new wave of innovative uses
* to enable Processing users to leverage the full power of the open web, and help spark a new wave of innovative uses of Processing
* to serve as a forcing function to drive improvements in key aspects of Mozilla products and technologies, including [http://hacks.mozilla.org/2009/07/tracemonkey-overview/ JavaScript performance], [https://developer.mozilla.org/en/Drawing_Graphics_with_Canvas Canvas functionality], applications of [http://labs.mozilla.com/projects/bespin/ Bespin], and others
* to serve as a forcing function to drive improvements in key aspects of Mozilla products and technologies, including [http://hacks.mozilla.org/2009/07/tracemonkey-overview/ JavaScript performance], [https://developer.mozilla.org/en/Drawing_Graphics_with_Canvas Canvas functionality], applications of [http://labs.mozilla.com/projects/bespin/ Bespin], and others
* to reach out to and increase cooperation with the design, art, and new media communities, both as part of the existing [http://education.mozilla.org Mozilla Education] program and as a key component of a proposed Mozilla Media program
* to reach out to and increase cooperation with the design, art, and new media communities, both as part of the existing [http://education.mozilla.org Mozilla Education] program and as a key component of a proposed Mozilla Media program
Line 63: Line 63:


Processing for the Web offers an opportunity to strengthen existing Mozilla Education initiatives directed at faculty and students in computer science programs, and also to leverage Mozilla Labs initiatives (most notably the [http://labs.mozilla.com/2009/01/introducing-the-design-challenge/ Design Challenge series]) of interest to faculty and students in design programs. The Processing for the Web program could also be a key initial component in a possible new "Mozilla Media" program to reach out and work with artists, filmmakers, musicians, and other creative individuals working with the open web and open media.
Processing for the Web offers an opportunity to strengthen existing Mozilla Education initiatives directed at faculty and students in computer science programs, and also to leverage Mozilla Labs initiatives (most notably the [http://labs.mozilla.com/2009/01/introducing-the-design-challenge/ Design Challenge series]) of interest to faculty and students in design programs. The Processing for the Web program could also be a key initial component in a possible new "Mozilla Media" program to reach out and work with artists, filmmakers, musicians, and other creative individuals working with the open web and open media.
== Technical approach ==
The starting point for Processing on the Web is the existing [http://processingjs.org/ processing.js] JavaScript port of Processing originally created by John Resig of Mozilla and now being developed by a  [http://processingjs.org/community growing community]. Processing.js provides support for the Java-based Processing language syntax, along with an implementation of the various Processing library functions.
Processing.js is usable for many Processing applications but is [http://processingjs.org/reference/articles/comparing-processing not yet fully compatible] with the original Processing implementation. It also does not provide a web-based development environment, though projects like Robert O'Rourke's [http://www.sanchothefat.com/blog/53/hascanvas HasCanvas] provide an initial take on what such an environment might look like.
The [https://bespin.mozilla.com/ Bespin] project could provide the underlying technology to support online creation and editing of Processing code. The challenge is to provide a Processing for the Web environment that is simple enough for complete novices to pick up quickly, compatible enough with the original Processing environment that existing Processing users can be immediately productive, and powerful and extendable enough to provide good support for advanced tasks such as debugging and performance optimization.


== Notes ==
== Notes ==
* Should lay out high-level tasks in the project, and how each one might be addressed.
''This section is for reviewer feedback, suggested revisions and additions, etc.''
Confirmed users
610

edits