Processing es una biblioteca de gráficos gratuita y un entorno de desarrollo integrado (IDE) creado para las comunidades de artes electrónicas, arte de nuevos medios y diseño visual con el propósito de enseñar a los no programadores los fundamentos de la programación informática en un contexto visual.
Processing utiliza el lenguaje Java , con simplificaciones adicionales como clases adicionales y funciones y operaciones matemáticas con alias. También proporciona una interfaz gráfica de usuario para simplificar la etapa de compilación y ejecución.
El lenguaje Processing y el IDE han sido los precursores de otros proyectos, incluidos Arduino y Wiring .
El proyecto fue iniciado en 2001 por Casey Reas y Ben Fry , ambos exmiembros del Grupo de Estética y Computación del Media Lab del MIT . En 2012, crearon la Processing Foundation junto con Daniel Shiffman , quien se unió como tercer líder del proyecto. Johanna Hedva se unió a la Fundación en 2014 como directora de Defensa. [2]
Originalmente, Processing había usado el dominio proce55ing.net, porque el dominio de processing estaba tomado; Reas y Fry finalmente adquirieron el dominio processing.org y trasladaron el proyecto allí en 2004. [3] Si bien el nombre original tenía una combinación de letras y números, siempre se lo mencionó oficialmente como processing , pero el término abreviado p5 todavía se usa ocasionalmente (por ejemplo, en "p5.js") en referencia al antiguo nombre de dominio. [4]
En 2012 se creó la Fundación Processing y recibió la categoría de organización sin fines de lucro 501(c)(3) [5] , que apoya a la comunidad en torno a las herramientas e ideas que se iniciaron con el Proyecto Processing. La fundación alienta a personas de todo el mundo a reunirse anualmente en eventos locales denominados Día de la Comunidad de Processing. [6]
Processing incluye un cuaderno de bocetos , una alternativa mínima a un entorno de desarrollo integrado (IDE) para organizar proyectos. [7]
Cada boceto de Processing es en realidad una subclase de la PApplet
clase Java (anteriormente una subclase del Applet integrado de Java) que implementa la mayoría de las características del lenguaje Processing. [8]
Al programar en Processing, todas las clases adicionales definidas se tratarán como clases internas cuando el código se traduzca a Java puro antes de compilar. [9] Esto significa que el uso de variables y métodos estáticos en clases está prohibido a menos que se le indique explícitamente a Processing que codifique en modo Java puro.
Processing también permite a los usuarios crear sus propias clases dentro del boceto de PApplet. Esto permite tipos de datos complejos que pueden incluir cualquier cantidad de argumentos y evita las limitaciones de usar únicamente tipos de datos estándar como: int (entero), char (carácter), float (número real) y color (RGB, RGBA , hexadecimal).
La versión más simple posible de un programa "Hola mundo" en Processing es:
// Esto imprime "Hola mundo" en la consola IDE. println ( "Hola mundo." );
Sin embargo, debido a la naturaleza más orientada a lo visual de Processing, el siguiente código [10] es un mejor ejemplo de la apariencia del lenguaje.
// Hola ratón . void setup ( ) { tamaño ( 400,400 ) ; trazo ( 255 ) ; fondo ( 192,64,0 ) ; } void draw ( ) { linea ( 150,25 , ratonX , ratonY ) ; }
En 2005, Reas y Fry ganaron el premio Golden Nica de Ars Electronica en su categoría Net Vision por su trabajo en Processing. [11]
Ben Fry ganó el Premio Nacional de Diseño 2011 otorgado por el Museo Nacional de Diseño Cooper-Hewitt del Instituto Smithsoniano en la categoría de Diseño de Interacción. La declaración del premio dice:
"Ben Fry, que tiene experiencia en diseño gráfico y ciencias de la computación, sigue su antigua fascinación por la visualización de datos. Como director de Fathom Information Design en Boston, Fry desarrolla software, trabajos impresos, instalaciones y libros que describen y explican temas que van desde el genoma humano hasta los salarios de los jugadores de béisbol y la evolución de los documentos de texto. Junto con Casey Reas, fundó el Processing Project, un entorno de programación de código abierto para enseñar diseño computacional y crear bocetos de software de medios interactivos. Proporciona a los artistas y diseñadores medios accesibles para trabajar con código y al mismo tiempo anima a los ingenieros y científicos informáticos a pensar en conceptos de diseño". [12]
Las bibliotecas centrales de Processing, el código incluido en las aplicaciones y subprogramas exportados, están licenciados bajo la Licencia Pública General Reducida de GNU , lo que permite a los usuarios publicar su código original con una elección de licencia.
El IDE está licenciado bajo la Licencia Pública General GNU .
Processing se basó en el trabajo original realizado en el proyecto Design By Numbers del MIT. Comparte muchas de las mismas ideas y es un producto directo de ese experimento.
En 2013, Lauren McCarthy creó p5.js, una alternativa nativa de JavaScript a Processing.js que cuenta con el apoyo oficial de la Processing Foundation. p5.js obtuvo más de 1,5 millones de usuarios. [13]
Desde abril de 2022, p5.js ha sido dirigido por Qianqian Ye, profesora adjunta asociada de Artes Mediáticas en la USC. [14]
ml5.js es una biblioteca p5.js desarrollada por ITP/IMA de NYU con financiación y apoyo proporcionado por una subvención de Google Education.
Daniel Shiffman ha realizado vídeos demostrando ml5 y es un destacado colaborador de código.
Processing.js es un puerto de JavaScript discontinuado que permitía que el código Java de Processing existente se ejecutara en la web.
Fue lanzado inicialmente en 2008 por John Resig . El proyecto se llevó a cabo posteriormente a través de una asociación entre la Fundación Mozilla y Seneca College , dirigida por David Humphrey, Al MacDonald y Corban Brook. Processing.js se mantuvo a la par con Processing hasta el lanzamiento de la versión 2.1 de su API.
El proyecto se interrumpió en diciembre de 2018, dos años después de que se detuviera su desarrollo activo.
p5 es una biblioteca de Python que ofrece funciones de dibujo de alto nivel para ayudarte a crear rápidamente simulaciones y arte interactivo con Python. Combina las ideas centrales de Processing (aprender a codificar en un contexto visual) con la legibilidad de Python para que la programación sea más accesible para principiantes, educadores y artistas. [15]
El modo Python para procesamiento, o Processing.py, es una interfaz de Python para el conjunto de herramientas Java subyacente. Fue desarrollado principalmente por Jonathan Feinberg a partir de 2010, con contribuciones de James Gilles y Ben Alkov. [16]
py5 es una versión de Processing para Python 3.8+. Pone los archivos jar de Processing de Java a disposición del intérprete CPython mediante JPype. Puede hacer prácticamente todo lo que Processing puede hacer, excepto que utiliza código Python en lugar de Java. [17]
Processing ha generado otro proyecto, Wiring , que utiliza el IDE de Processing con una colección de bibliotecas escritas en el lenguaje C++ como una forma de enseñar a los artistas cómo programar microcontroladores . [18] Ahora hay dos proyectos de hardware separados, Wiring y Arduino , que utilizan el entorno y el lenguaje Wiring. Fritzing es otro entorno de software del mismo tipo, que ayuda a los diseñadores y artistas a documentar sus prototipos interactivos y a dar el paso del prototipo físico al producto real.
Otro proyecto derivado, ahora en desuso, es Mobile Processing de Francis Li, que permitía ejecutar software escrito con el lenguaje y el entorno de Processing en dispositivos móviles con Java. Hoy en día, parte de la misma funcionalidad la proporciona el propio Processing. [19]
iProcessing fue creado para ayudar a las personas a desarrollar aplicaciones nativas para iPhone utilizando el lenguaje Processing. Es una integración de la biblioteca Processing.js y un marco de aplicaciones Javascript para iPhone. [20]
Spde (Scala Processing Development Environment) reemplaza la sintaxis Java reducida y el preprocesador personalizado de Processing con el lenguaje de programación Scala listo para usar que también se ejecuta en la plataforma Java y aplica algunas de las mismas restricciones, como no permitir métodos estáticos, al mismo tiempo que permite un código más conciso y admite la programación funcional . [21] [22] [23]
JRubyArt (anteriormente llamado ruby-processing ) es un contenedor para Processing en el lenguaje Ruby , que se ejecuta en la plataforma Java utilizando JRuby.
Quil es una biblioteca de animación interactiva para Clojure y ClojureScript basada en Processing. [24] [25]
El video musical de " House of Cards " de Radiohead fue creado usando Processing combinado con datos de tecnología lidar , junto con el uso de vidrio acrílico y espejos para crear escenas en las que la imagen aparece distorsionada, desaparece parcialmente o se desintegra como si fuera transportada por el viento. [26] Processing también se ha utilizado para crear ilustraciones para publicaciones como Nature y The New York Times , para producir esculturas para exhibiciones en galerías, para controlar enormes paredes de video y para tejer suéteres. [27]
{{cite book}}
: Mantenimiento de CS1: falta la ubicación del editor ( enlace )