Processing

De FdIwiki ELP
Saltar a: navegación, buscar

Processing es un lenguaje de programación de código abierto y un entorno de desarrollo integrado(IDE) creado para las comunidades de artes electrónicas, arte multimedia y diseño visual con el objetivo de enseñar los fundamentos de la programación en un contexto visual y para la creación de los cuadernos de dibujo electrónicos. El proyecto empezó en 2001 De la mano de Casey Reas y Benjami Fry, ex-componentes del grupo de estética y computación en el Media Lab del MIT. Una de las metas de Processing es actuar como herramienta de introducción en el mundo de la programación a los no-programadores a través de un feedback visual. El lenguaje se basa en Java, pero usa una sintaxis simplificada y un modelo de programación de graficos.

Características

Processing incluye un sketchbook, una pequeña alternativa a un IDE para organizar proyectos.

Cada sketch de Processing es una subclase de la clase de Java PApplet que implementa la mayoria de las características del lenguaje de Processing

Cuando se programa en Processing, todas las clases adicionales definidas se tratarán como clase interna cuando el código se traduce a Java antes de compilar. Esto quiere decir que el uso de variables y métodos estáticos está prohibido salvo que indiques a Processing que quieres codificar en Java.

Processing también permite a los usuarios crear sus propias clases en el sketch de PApplet. Permite tipos de datos complejos que poseen cualquier numero de argumentos y evita la limitación de usar únicamente tipos de datos estándar int, char, float y color.


Ejemplos

Hola Mundo

El equivalente al "Hola Mundo" en Processing es como dibujar una linea:[1] <source lang="java"> line(15, 25, 70, 90); </source> El siguiente codigo es un ejemplo básico de este lenguaje.

<source lang="java"> //Hello mouse. void setup() {

      size(400, 400);
      stroke(255);
      background(192, 64, 0);

}

void draw() {

      line(150, 25, mouseX, mouseY);

} </source>

Mapa de elecciones a presidente de Estados Unidos

El siguiente ejemplo muestra un mapa del resultado de las elecciones presidenciales de 2008 en Estado Unidos. Azul mostrará los estados donde ganó Barack Obama, y rojo donde ganó John McCain.

<source lang="java"> PShape usa; PShape state; String [] Obama = { "HI", "RI", "CT", "MA", "ME", "NH", "VT", "NY", "NJ", "FL", "NC", "OH", "IN", "IA", "CO", "NV", "PA", "DE", "MD", "MI", "WA", "CA", "OR", "IL", "MN", "WI", "DC", "NM", "VA" };

String [] McCain = { "AK", "GA", "AL", "TN", "WV", "KY", "SC", "WY", "MT", "ID", "TX", "AZ", "UT", "ND", "SD", "NE", "MS", "MO", "AR", "OK", "KS", "LA" };

void setup() {

 size(950, 600);
 // The file Blank_US_Map.svg can be found at Wikimedia Commons
 usa = loadShape("http://upload.wikimedia.org/wikipedia/commons/3/32/Blank_US_Map.svg");
 smooth(); // Improves the drawing quality of the SVG
 noLoop();

}

void draw() {

 background(255);
 // Draw the full map
 shape(usa, 0, 0);
 // Blue denotes states won by Obama
 statesColoring(Obama , color(0, 0, 255));
 // Red  denotes states won by McCain
 statesColoring(McCain, color(255, 0, 0));
 // Save the map as image
 saveFrame("map output.png");

}

void statesColoring(String[] states, int c){

 for (int i = 0; i < states.length; ++i) {
   PShape state = usa.getChild(states[i]);
   // Disable the colors found in the SVG file
   state.disableStyle();
   // Set our own coloring
   fill(c);
   noStroke();
   // Draw a single state
   shape(state, 0, 0);
 }

} </source>

Proyectos relacionados

Design By Numbers

Processing estaba basado en el trabajo original del proyecto de "Design By Numbers" en el MIT. Comparte algunas ideas y es heredero de este experimento.

Wiring, Arduino y Fritzing

Processing ha generado otro proyecto, Wiring, que usa el IDE de Processing con una versión simplificada de C++ para enseñar a los artistas a programar microcontroladores. Actualmente hay dos proyectos diferentes de hardware, Wiring y Arduino, que usa el entorno y lenguaje de Wiring. Fritzing es otro entorno de software que ayuda a artistas y diseñadores a documentar su prototipo interactivo y pasar del prototipo físico al producto actual

Mobile Processing

Otro proyecto que surgió(no continua), es Mobile Processing de Francis Li,que permitia usar Processing en moviles que aceptasen Java. A dia de hoy, algunas de estas funcionalidades lo hace Processing.[2]

Processing.js

En 2008 John Resig portó Processing a Javascript usando Canvas para renderizar,[3] permitiendo a Processing que se ejecute en los navegadores web modernos sin la necesidad de un plugin de Java. Desde entonces, la comunidad open source y los alumnos del Seneca College se han ocupado del proyecto.

iProcessing

iProcessing se creó para ayudar a la gente a desarrollar aplicaciones en iPhone usando Processing. Es la integración de la librería Processing.js y una aplicacion capaz de correr Javascript en iPhone.

SPDE

SPDE (standing for Scala Processing Development Environment) reemplaza el preprocesador personalizado y la sintaxis reducida de Java de Processing con Scala, que también funciona en Java y cumple algunas de las restricciones, como no permitir métodos estáticos mientras permite código mas conciso y apoyando la programación funcional. [4][5][6]

Quil

Quil (anteriormente clj-processing) es un envoltorio de Processing bajo Closure, un lenguaje de Lisp que funciona en Java.[7]

Premios

En 2005 Reas y Fry ganaron el prestigioso premio Golden Nica de Ars Electronica en la categoría de Vision de la Red por su trabajo en Processing.

Ben Fry gano el premio nacional de diseño en 2011, otorgado por el Museo Nacional de Diseño Smithsonian Cooper-Hewitt en la categoría de diseño de interacción. La declaración del premio dice:

"Drawing on a background in graphic design and computer science, Ben Fry pursues a long-held fascination with visualizing data. As Principal of Fathom Information Design in Boston, Fry develops software, printed works, installations, and books that depict and explain topics from the human genome to baseball salaries to the evolution of text documents. With Casey Reas, he founded the Processing Project, an open-source programming environment for teaching computational design and sketching interactive-media software. It provides artists and designers with accessible means of working with code while encouraging engineers and computer scientists to think about design concepts."

Traducción: "Dibujando un fondo en diseño gráfico e informática, Ben Fry explora con fascinación desde hace mucho tiempo la visualización de datos . Como director de diseño de información de Fathom, en Boston, Fry desarrolla software , obras impresas, instalaciones y libros que describen y explican temas que van desde el genoma humano a salarios de béisbol o la evolución de los documentos de texto"

Licencia

Las librerías núcleo de Processing, el código incluido en aplicaciones y applets exportadas, posee una licencia LGPL, permitiendo a los usuarios liberar su código eligiendo licencia.

El IDE posee licencia GPL.

Nombre

Inicialmente Processing tenia la URL proce55ing.net porque el dominio processing estaba cogido. Según pasó el tiempo Reas y Fry obtuvieron el dominio. Aunque el dominio era una combinación de letras y números, era pronunciado processing. Prefieren que el entorno sea processing. A pesar del cambio de dominio Processing usa p5 a veces como abreviatura.

Referencias

  1. http://processing.org/tutorials/overview/
  2. http://wiki.processing.org/w/Android
  3. http://ejohn.org/blog/processingjs/
  4. [http://technically.us/spde/About Spde: Spde
  5. [http://technically.us/code/x/runaway-processing/ Coderspiel / Runaway processing
  6. Coderspiel / Flocking with Spde
  7. http://github.com/quil/quil