Education/Projects/ProcessingForTheWeb: Difference between revisions
(Expand material) |
(Expand material further) |
||
Line 3: | Line 3: | ||
== Summary == | == Summary == | ||
"Processing for the Web" is a proposed Mozilla initiative to take the Java-based Processing language and environment (popular for art and visualization applications) and port it to the open web using standard tchnologies such as Canvas | "Processing for the Web" is a proposed Mozilla initiative to take the Java-based [http://processing.org/ Processing] language and environment (popular for art and visualization applications) and port it to the open web using standard tchnologies 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 | ||
* to serve as a forcing function to drive improvements in key aspects of Mozilla products and technologies, including JavaScript performance, Canvas functionality, applications of 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 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 | ||
The initiative will incorporate the following activities: | The initiative will incorporate the following activities: | ||
* extending and improving the core functionality of the current processing.js port of Processing to JavaScript | * extending and improving the core functionality of the current [http://processingjs.org/ processing.js] port of Processing to JavaScript | ||
* implementing a web equivalent of the current Processing development and run-time environment, with additional features to leverage the full power of the web (e.g., to support collaborative development) | * implementing a web equivalent of the current Processing development and run-time environment, with additional features to leverage the full power of the web (e.g., to support collaborative development) | ||
* encouraging creation of new Processing applications explicitly designed for the web | * encouraging creation of new Processing applications explicitly designed for the web | ||
Line 23: | Line 23: | ||
<blockquote>Processing is an open source programming language and environment for people who want to program images, animation, and interactions. It is used by students, artists, designers, researchers, and hobbyists for learning, prototyping, and production. It is created to teach fundamentals of computer programming within a visual context and to serve as a software sketchbook and professional production tool.</blockquote> | <blockquote>Processing is an open source programming language and environment for people who want to program images, animation, and interactions. It is used by students, artists, designers, researchers, and hobbyists for learning, prototyping, and production. It is created to teach fundamentals of computer programming within a visual context and to serve as a software sketchbook and professional production tool.</blockquote> | ||
Processing arose out of work in the [http://acg.media.mit.edu/ Aesthetics and Computation Group] at the MIT Media Lab. It | Processing arose out of work in the [http://acg.media.mit.edu/ Aesthetics and Computation Group] at the [http://www.media.mit.edu/ MIT Media Lab. It has attracted a user base of digital artists, designers, people doing data visualizations, and others. | ||
Processing language syntax is based on Java, and the original Processing environment requires an underlying Java run-time. The Processing language includes standard functions for doing drawing and related operations, and the Processing environment offers a straightforward way and simple to edit and run Processing programs ("sketches") without the complexity of Java compilers and other tools. | |||
== Why Processing for the Web? == | |||
Why do "Processing for the Web"? Given Processing's Java syntax and heritage, wouldn't it make more sense to encourage people to move to using web technologies like JavaScript and Canvas directly, perhaps supplemented by JavaScript toolkits? And even if porting Processing to the web were a good idea, why should Mozilla get involved? | |||
We believe that this project can bring real benefits to the Processing community, to Mozilla products and the Mozilla community, and to the open web. | |||
First, Processing has a large and enthusiastic community of people who have demonstrated creativity and innovation. | |||
to enable Processing users to leverage the full power of the open web, and help spark a new wave of innovative uses | |||
* 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 | |||
== Notes == | == Notes == | ||
* Should address the question of why bring Processing to the web, from the perspective of why this is good for Processing and its users, why it is good for the web in general, etc. | * Should address the question of why bring Processing to the web, from the perspective of why this is good for Processing and its users, why it is good for the web in general, etc. | ||
* Address educational tie-in explicitly. | * Address educational tie-in explicitly. | ||
* Need to address objection of why we shouldn't just focus instead on JavaScript + Canvas, perhaps with new toolkits. (i.e., Processing API but with JavaScript control logic, not Java syntax) | * Need to address objection of why we shouldn't just focus instead on JavaScript + Canvas, perhaps with new toolkits. (i.e., Processing API but with JavaScript control logic, not Java syntax) | ||
* Should lay out high-level tasks in the project, and how each one might be addressed. | * Should lay out high-level tasks in the project, and how each one might be addressed. |
Revision as of 17:17, 31 July 2009
This is a draft in progress describing a "meta-project" to bring a complete implementation of the Processing language to the web.
Summary
"Processing for the Web" is a proposed Mozilla initiative to take the Java-based Processing language and environment (popular for art and visualization applications) and port it to the open web using standard tchnologies such as JavaScript, Canvas, etc.
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 serve as a forcing function to drive improvements in key aspects of Mozilla products and technologies, including JavaScript performance, Canvas functionality, applications of Bespin, and others
- to reach out to and increase cooperation with the design, art, and new media communities, both as part of the existing Mozilla Education program and as a key component of a proposed Mozilla Media program
The initiative will incorporate the following activities:
- extending and improving the core functionality of the current processing.js port of Processing to JavaScript
- implementing a web equivalent of the current Processing development and run-time environment, with additional features to leverage the full power of the web (e.g., to support collaborative development)
- encouraging creation of new Processing applications explicitly designed for the web
- improving the underlying Mozilla infrastructure technologies required to support a powerful, robust, and conformant Processing implementation for the web
Some activities in the initiative, in particular working on the required Mozilla technology infrastructure, would be carried out by existing Mozilla core contributors. Other activities would be done in cooperation with others; in particular we propose to package many of the needed tasks as student projects to be done by design, programming, and other students under the auspices of the Mozilla Education program
What is Processing?
To quote from the Processing project home page:
Processing is an open source programming language and environment for people who want to program images, animation, and interactions. It is used by students, artists, designers, researchers, and hobbyists for learning, prototyping, and production. It is created to teach fundamentals of computer programming within a visual context and to serve as a software sketchbook and professional production tool.
Processing arose out of work in the Aesthetics and Computation Group at the [http://www.media.mit.edu/ MIT Media Lab. It has attracted a user base of digital artists, designers, people doing data visualizations, and others.
Processing language syntax is based on Java, and the original Processing environment requires an underlying Java run-time. The Processing language includes standard functions for doing drawing and related operations, and the Processing environment offers a straightforward way and simple to edit and run Processing programs ("sketches") without the complexity of Java compilers and other tools.
Why Processing for the Web?
Why do "Processing for the Web"? Given Processing's Java syntax and heritage, wouldn't it make more sense to encourage people to move to using web technologies like JavaScript and Canvas directly, perhaps supplemented by JavaScript toolkits? And even if porting Processing to the web were a good idea, why should Mozilla get involved?
We believe that this project can bring real benefits to the Processing community, to Mozilla products and the Mozilla community, and to the open web.
First, Processing has a large and enthusiastic community of people who have demonstrated creativity and innovation.
to enable Processing users to leverage the full power of the open web, and help spark a new wave of innovative uses
- to serve as a forcing function to drive improvements in key aspects of Mozilla products and technologies, including JavaScript performance, Canvas functionality, applications of Bespin, and others
- to reach out to and increase cooperation with the design, art, and new media communities, both as part of the existing Mozilla Education program and as a key component of a proposed Mozilla Media program
Notes
- Should address the question of why bring Processing to the web, from the perspective of why this is good for Processing and its users, why it is good for the web in general, etc.
- Address educational tie-in explicitly.
- Need to address objection of why we shouldn't just focus instead on JavaScript + Canvas, perhaps with new toolkits. (i.e., Processing API but with JavaScript control logic, not Java syntax)
- Should lay out high-level tasks in the project, and how each one might be addressed.