Processing (programming language)
|
Processing is an open-source project initiated by Casey Reas and Benjamin Fry of the Aesthetics and Computation Group at the MIT Media Lab. It is "a programming language and environment built for the electronic arts and visual design communities", which aims to teach the basics of computer programming in a visual context, and to serve as the foundation for electronic sketchbooks. It is a meta language that builds on Sun Java, simplifying features and creating a few new ones.
- Excerpts from copyleft Processing 75a readme file:
WHAT IS THE SKETCHBOOK?
We think most "integrated development environments" (microsoft visual studio, codewarrior, jbuilder) tend to be overkill for the type of audience we're targeting with Processing. For this reason, we've introduced the 'sketchbook' which is a more lightweight way to organize projects. As trained designers, we'd like the process of coding to be a lot more like sketching. The sketchbook and the 'history' menu under 'sketch', are attempts in that direction.
WHY JAVA? OR WHY SUCH A JAVA-ESQUE LANGUAGE?
We didn't set out to make the ultimate language for visual programming, we set out to make something that was:
- a sketchbook for our own work, simplifying the majority of tasks that we undertake,
- a teaching environment for that kind of process, and
- a point of transition to more complicated or difficult languages like full-blown Java or C++. (a gateway drug)
At the intersection of these points is a tradeoff between speed and simplicity of use: i.e. if we didn't care about speed, python or other scripting languages would make far more sense. If we didn't care about transition to more advanced languages, we'd get rid of the crummy c-style (well, algol, really) syntax.
Processing is not intended as the ultimate environment/language (in fact, the language is just Java, but with another graphics api and some simplifications), it's just putting together several years of experience in building things, and trying to simplify the parts that should be easier.
WHY IS IT CALLED "PROCESSING"?
At their core, computers are processing machines. they modify, move, and combine symbols at a low level to construct higher level representations. Processing allows people to control these actions and representations through writing their own programs.
The project also focuses on the "process" of creation rather than end results. The design of the software supports and encourages sketching and the website presents fragments of projects and exposes the concepts behind finished software.
"Proce55ing" is the spelling we originally used for the url. Even though it's a combination of numbers and letters, it was simply pronounced "processing." Casey and I saved our pennies and had a can drive so now we've acquired the processing.org domain name. As a result we are no longer using the name "Proce55ing". When we see it with the 55's it annoys us and we want to punch people in the face. Or punch ourselves in the face for using it in the first place. Actually, we don't care that much but we're trying to kill off the previous naming. However, to make it more confusing, we still use "p5" as a shortened version of the name.
HOW MUCH DOES PROCESSING COST
We think it's important to have Processing freely available, rather than selling it for a million dollars under some godawful yearly contract update scheme. To that end, we encourage people to distribute the word widely and refer them to the site: http://processing.org
DO WE HAVE TO CITE PROCESSING? CAN WE DISTRIBUTE OUR SKETCHES?
We like it when people include a "built with processing" note with a link back to the site, since it helps create interest / brings in more people to the project. We don't/can't/shouldn't require it, but it makes us happy because the project is free and this is our way of getting advertising and generating interest.
IS PROCESSING OPEN SOURCE?
We plan for this project to be "open source", everyone's favorite phrase that means that you'll be able to get your grubby little mitts all over our code (all the code that's behind the processing development environment and the graphics engine used in tandem with it). We can't promise, since we're still working on getting the licensing taken care of with our employers, but we think this should likely happen soon.
The export libraries (internally known as 'bagel') will probably be LGPL, which means they can be used as a library and included in your project without you having to open up your code (though we encourage people to share anyway).
More information about the gnu public license can be found here: http://www.gnu.org/copyleft/gpl.html
Processing also includes other open projects, namely the older version of the oro matcher (http://www.savarese.org/oro/), the jikes compiler, and the jedit syntax package. The oro tools are distributed under a bsd style license as part of the apache jakarta project, and jikes is covered by the ibm public license: http://oss.software.ibm.com/developerworks/opensource/jikes/
We're sorry that our source code isn't available just yet, we're cleaning and scrubbing it, it was a decision between getting the alpha out to people to try versus taking a few more weeks to clean up the project and deal with the technology licensing departments at mit. These things are far more difficult and time consuming than they initially appeared.
Our plan is to have the code available with the first "beta" release, which will be the first release that is publicly available and downloadable from the site.