Processing. Una breve introducción.

 

Processing es un sistema de programación diseñado para facilitar el acceso de artistas visuales al mundo de las imágenes generadas por código. No es tan solo un lenguaje de programación, sino que ofrece un entorno agradable pensado para no asustar al novato. El entorno de trabajo es limpio, sin información técnica innecesaria distrayendo de la idea en proceso. El interfaz de desarrollo es sencillo y elegante, invitando a las pruebas rápidas y a experimentos sin compromiso. Gracias a estas cualidades, Processing se ha convertido en pocos años en la herramienta preferida en escuelas artísticas para la enseñanza de la programación gráfica, así como en la herramienta favorita de innumerables artistas implicados en la creación de piezas interactivas.

Processing nace en el Aesthetics and Computation Group del Media Lab del MIT (Masachusets Institute of Technology). Processing es una plataforma de programación gráafica que se monta sobre JAVA. JAVA es un lenguaje de programación concebido por SUN Microsystems para su funcionamiento sobre sistemas muy diversos: desde ordenadores personales a PDAs y teléfonos móviles. JAVA es gratuito. Processing participa de la idea de SOFTWARE LIBRE, que defiende el derecho a intercambiar y compartir herramientas y conocimientos. Processing puede por tanto descargarse y utilizarse de forma gratuita, tanto su núcleo como las librerías se ofrecen bajo licencia GPL. Podemos por tanto distribuirlas en nuestras piezas sin necesidad de que estas muestren su código, aunque por supuesto se intenta fomentar el intercambio de ideas y conocimientos.

 

Un ejemplo de una sola línea:

 

rect(10,10,20,20);

 

Este espacio en blanco listo para recibir líneas de cófigo que producen un resultado gráfico inmediato recupera la inmediatez de los micro-ordenadores de 8 bits, como el ZX Spectrum, que se cargaban con un intérprete de Basic. Gracias a esto muchos aprendimos programación de forma sencilla, lo que generó una generación de "Power Users", capaces de comprender la forma de trabajar interna de estas nuevas máquinas.

 

zx

 

 

 

El espacio de trabajo

Processing nos ofrece un espacio limpio y poco intimidante, donde probar poco a poco nuestra ideas. El Processing Development Environment (PDE) es un pequeño editor de código, con iconos para guardar, abrir y ejecutar el programa.

Tiene las funciones habituales para copiar y pegar, buscar y reemplazar, ayuda y ejemplos, y algunas utilidades específicas para manejar fuentes o color.

Una función útil es la de "Mostrar la carpeta del sketch", que nos permite rápidamente acceder a este lugar en el disco duro y así organizar el contenido extra que vamos a utilizar, como imágenes, vídeo, textos o sonidos.

 

 

 

 

Fases en el aprendizaje

Processing permite avanzar en el aprendizaje de la programación, desde la escritura de una simple línea de prueba hasta programas completos bien construidos.

En nuestro avance podemos probar los distintos modelos de programación, desde la programación lineal hasta la programación orientada a objetos. En el desarrollo de los ordenadores hemos ido perfeccionando los istemas de programación y el modo en que ordenamos y estructuramos el código. Processing nos permite conocer todos estos modos diferentes, consolidando poco a poco nuestra metodología y eficacia en el código.

Vamos a ver a continuación los distintos modelos que podemos utilizar al diseñar y escribir programas, siguiendo el desarrollo histórico de estas metodologías hasta llegar al modelo más utilizado en nuestros días.

 

Programación lineal

El código consiste en una sucesión de líneas que se ejecutan una después de otra, desde el principio hasta el final. Con este modelo podemos por ejemplo dibujar un personaje en la pantall, tras lo cual el programa termina.

 

 

Animación

Para que las formas puedan animarse en pantalla, tenemos que pasar de este sistema lineal a un modo basado en un bucle (loop) continuo, en el que se recalculan las posiciones de los elementos y se redibujan. Este sistema es el que utilizan todos los videojuegos, basados en un bucle central en el que se analizan las acciones del jugador, se modifican las posiciones de los elementos del juego y se diujan finalmente en pantalla.

 

En este modo, el más habitual, tenemos que incluir 2 partes diferenciadas en el código:

 

1- Una primera en la que se inicializan los datos, las posiciones, tamaños, etc.

 

void setup(){

}

 

2- El bucle principal, en el que se recalculan los datos y se dibujan los elementos visibles.

 

void draw(){

}

 

Programación estructurada

En los primeros lenguajes de programación cada línea estaba numerada, lo que permitía saltar en ocasiones de una parte a otra del código, utilizando GO TO o GO SUB (saltos absolutos o llamadas a subrutinas). Esto podía generar todo tipo de errores lógicos, ya que los números no tenían una relación con el contenido. Para evitar estos errores se desarrolló el modelo de programación estructurada. En este sistema los bloques de código con una utilidad determinada se presentan dentro de "funciones", partes autosuficientes capaces de resolver un problema concreto. Podemos llamar a las funciones desde cualquier parte del código, volviendo al punto de llamada para continuar normalmente.

Es fácil comprender la utilidad de las funciones si pensamos en utilidades matemáticas, por ejemplo una función capaz de hallar la media aritmética de unos datos que le proporcionamos. Los datos a procesar son los parámetros que necesita la función, y ésta nos devuelve un resultado.

Otra función útil puede ser la que ordene de mayor a menor un conjunto de elementos.

En Processing, dada su intencionalidad gráfica, resulta habitual construir funciones que dibujen formas en pantalla. Podemos crear una función que dibuje estrellas, y que admita distintos parámetros que definan su posición, número de puntas, radio, color, etc.

 

Programación orientada a objetos

Este es el paradigma de programación más utilizado en la actualidad. Es un desarrollo sobre la idea de programación estructurada. Los objetos son entidades que albergan datos y las funciones que pueden procesarlos. Los objetos están protegidos frente al exterior, no podemos acceder a sus datos ni a sus funciones si no es a través de los métodos definidos previamente, mediante un interfaz de interacción.

Pensemos en un objeto tipo "coche". Desde el código no podremos cambiar directamente su velocidad, ni el ángulo de sus ruedas. Si lo hiciéramos, podríamos generar saltos de un punto a otro que son en realida imporsibles. El modo de interactuar con este objeto "coche" será utilizar su volante y su acelerador como elementos de su interfaz, y será el código interno del "coche" el que se ocupe de modificar la velocidad y la dirección, siempre según un modelo consistente y comprobado.

 

 

Saliendo de Processing

Cuando dominamos la programación en Processing, podemos salir del entorno y programar directamente en el lenguaje (JAVA en un principio, hoy abierto a otros). Así Processing nos ha servido para partir de cero, escribiendo una simple línea de código que dibuja algo en la pantalla, a convertirnos en programadores experimentados, utilizando los lenguajes profesionales.

Para salir del entorno, pero seguir disfrutando de las funciones que nos hacen más fácil dibujar en Processing, podemos utilizar un entorno de desarrollo profesional, como Eclipse, y construir las aplicaciones desde cero, cargando las funciones de Processing como una librería auxiliar.

El sistema viene explicado aquí:

https://processing.org/tutorials/eclipse/

No es recomendable intentar este modo de trabajo hasta que dominemos completamente todo el lenguaje y sus recursos.

 

 

 

 

 

[ GO TO : NEXT PAGE -> ]