80. Processing, el lenguaje para graficos

Published: May 16, 2016, 6:09 a.m.

Quiz\xe1s este lenguaje de programaci\xf3n sea el gran desconocido en el aprendizaje de las ciencias de la computaci\xf3n, puede que quede en un segundo plano con relaci\xf3n a lenguajes como Python o Scratch. En este cap\xedtulo vamos a ver Processing, el lenguaje para gr\xe1ficos.

Que no te lleve a enga\xf1o el t\xedtulo, Processing es un lenguaje muy potente que podemos utilizar en multitud de proyectos y precisamente ese es su fuerte, podemos utilizarlo en diferentes modos de programaci\xf3n, desde un modo b\xe1sico hasta un modo complejo utilizando toda la potencia que nos brinda la orientaci\xf3n a objetos.

Te recuerdo que estoy trabajando en diferentes cursos sobre programaci\xf3n, electr\xf3nica y rob\xf3tica en el Campus de Programarfacil, donde aprender\xe1s a crear tecnolog\xeda.

\xbfQu\xe9 es Processing?

Processing es un dialecto de Java que fue dise\xf1ado para el desarrollo del arte gr\xe1fico, para las animaciones y aplicaciones gr\xe1ficas de todo tipo. Desarrollado por artistas y para artistas.

Es un software basado en Java y por lo tanto, multiplataforma. Desarrollado a partir del 2001 por el m\xe1s que conocido departamento del MIT, el Media Lab. Los creadores, Casey Res y Ben Fry, son disc\xedpulos del profesor John Maeda creador del m\xe9todo DBN (Design By Numbers) que, en los a\xf1os 90, pretend\xeda introducir a la programaci\xf3n a dise\xf1adores,, artistas y no programadores de una forma sencilla. Precisamente Processing est\xe1 inspirado en DBN que en la actualidad ya no est\xe1 activo.

\xbfQu\xe9 ventajas nos aporta Processing?

Ya te he comentado en varias ocasiones que la gran ventaja que tenemos con plataformas como Arduino y Scratch es que se trata de un aprendizaje plug and play es decir, no tenemos que andar configurando e instalando miles de cosas para ponernos a trabajar. Processing es un lenguaje que podemos incluir en este m\xe9otodo.

Es una plataforma que integra entorno de desarrollo y lenguaje de programaci\xf3n. Es muy f\xe1cil de aprender y solo necesitamos unos minutos para empezar a programar. Al contrario de las alternativas que tenemos para desarrollar para entornos gr\xe1ficos como OpenGL, el cual es bastante complicado y engorroso, Processing nos facilita esta tarea y nos evita la frustraci\xf3n cuando queremos aprender un lenguaje de estas caracter\xedsticas.

Pero su facilidad no quiere decir que no sea un lenguaje potente, al contrario, podemos hacer proyectos espectaculares y muy complicados.

Otra caracter\xedstica muy importante es la escalabilidad. Podemos combinar Processing con aplicaciones Java, en los dos sentidos, e incluso tenemos la posibilidad de portar nuestros proyectos a la web gracias a Processing.js. Solo necesitamos descargar el JS y a trav\xe9s de la etiqueta canvas de HTML5, hacer referencia a nuestros archivos creados con Processing, muy sencillo.

Existen 3 maneras de programar en esta plataforma:

De forma b\xe1sica, tipo Basic o Ensamblador. Sentencia a sentencia, con variables globales y sin nada de complejidad.
Podemos utilizar la programaci\xf3n procedural o estructurada como en C. Algo m\xe1s compleja pero mucho m\xe1s limpia donde crearemos nuestras propias funciones a las que llamaremos.
Tambi\xe9n podemos utilizar la manera m\xe1s compleja, utilizando toda la potencia de la programaci\xf3n orientada a objetos.
Cuando estamos programando una aplicaci\xf3n de este estilo, sea cual sea el objetivo, lo que buscamos es poder ejecutar nuestro proyecto en cualquier ordenador. Processing nos da la posibilidad de generar un ejecutable para las diferentes plaformas Mac OS, Windows o Linux e incluso podemos desarrollar aplicaciones m\xf3viles gracias a la SDK que nos ofrecen para Android. No hay que olvidar que este sistema operativo m\xf3vil est\xe1 basado en Java.

Por \xfaltimo, aunque no menos importante, podemos conectar Processing con Arduino ya que est\xe1n estrechamente ligados.

Entorno de desarrollo

Tiene su propio entorno de desarrollo. Cuando lo veas entender\xe1s porque se dice que la plataforma Arduino se nutre de Processing. Se llama PDE (Processing Development Enviroment) desarrollado en Java. Es muy sencillo y f\xe1cil de usar, ya te he dicho que es una plataforma plug and play como Arduino.

IDE_Processing

Pero no solo tenemos PDE, si nuestro proyecto es complejo podemos utilizar otros entornos de desarrollo como Eclipse o Netbeans. Lo aconsejable es empezar por el propio entorno de desarrollo y solo cuando tengamos la suficiente experiencia pasar a uno m\xe1s complejo y potente.

Desde el propio entorno de desarrollo podemos generar varios ejecutables en forma de Applet de Java, para ejecutar en navegador con las limitaciones de acceso a recursos del sistema o, como ya he comentado, ejecutables para diferentes plataformas.

El lenguaje de programaci\xf3n Processing

Processing est\xe1 basado en Java, m\xe1s concreto en la versi\xf3n 1.4.2. Esto no quiere decir que podamos utilizarlo con las versiones m\xe1s actuales. Para ello debemos utilizar un entorno de desarrollo m\xe1s potente como por ejemplo Eclipse. En este caso lo utilizar\xedamos como una librer\xeda gr\xe1fica que importamos a nuestro proyecto.

El proceso por el cual conseguimos un ejecutable te lo muestro en la siguiente imagen.

proceso-compilacion-processing

Pero aunque Processing est\xe9 basado en Java, encontramos diferencias entre estos dos lenguajes de programaci\xf3n.

La sintaxis es m\xe1s relajada, plataforma plug and play y sin preparativos.
En el modo b\xe1sico programamos sin funciones, sin clases, s\xf3lo l\xedneas de c\xf3digo con variables globales. En Java no podemos.
En el modo procedural al estilo de la programaci\xf3n en C, podemos definir nuestras propias funciones a las que llamamos.
En el modo m\xe1s avanzado, programaci\xf3n orientada a objetos, podemos crear clases de una forma muy sencilla que luego son transformadas e completas clases Java.
Opini\xf3n

No podemos hablar como un lenguaje puente al estilo de los lenguajes visuales. Processing en un lenguaje de programaci\xf3n de los pies a la cabeza que nos permite introducirnos en la programaci\xf3n desde lo m\xe1s b\xe1sico a lo m\xe1s complejo.

Gracias a sus diferentes modos, podemos ir aumentando de nivel poco a poco progresivamente. Aunque su objetivo sean las aplicaciones gr\xe1ficas, encontramos multitud de proyectos donde podemos aplicarlo.

Es una muy buena opci\xf3n como complemento a la programaci\xf3n f\xedsica en Arduino y Rasbperry Pi.

El recurso del oyente

De nuevo, Jos\xe9 Minguez Moya, nos ha enviado dos recursos muy interesantes para todos los que os quer\xe1is introducir en el lenguaje Processing. Se trata de dos libros indispensables.

Processing, un lenguaje al alcance de todos. Escrito por Ingacio Buioli y Jaime P\xe9rez Mar\xedn.
Processing: A Programming Handbook for Visual Designers and Artists.
Como siempre, muchas gracias Jos\xe9 por tu aporaci\xf3n.

El segundo recurso nos lo manda Germ\xe1n Mart\xedn. Con Germ\xe1n hemos intercambiado varios emails hablando del m\xf3dulo WiFi ESP. Est\xe1 muy metido en este tema y su intenci\xf3n es portar el cliente Firmata para comunicar Arduino con el ESP. Al final el objetivo es que el ESP sea el m\xe1ster para controlar Arduino a trav\xe9s de Firmata.

Probando diferentes sensores de presi\xf3n y temperatura, se encontr\xf3 con un problema. El ruido que genera este dispositivo. Cuando se puso a investigar encontr\xf3 una web que te permite probar y testar tus propios filtros. Micromodeler es un entorno gr\xe1fico en entorno web para el dise\xf1o de filtros digitales. Dispone de una versi\xf3n gr\xe1fica bastante potente que se ofrece gratis e incluye un an\xe1lisis de la respuesta del filtro muy completa. Es un recurso muy interesante para todos aquellos que teng\xe1is problemas de ruido en vuestros sistemas.



Ya me despido por esta semana, recuerda que nos puedes encontrar en Twitter y Facebook.

Cualquier duda o sugerencia en los comentarios de este art\xedculo o a trav\xe9s del formulario de contacto.