¿Qué lenguaje te gustaría aprender?

Por  |  0 Comentarios

121205-logo-series

 

Blanca A. Vargas Govea

«Wyaaaaaa Ruh ruh», dijo una entidad peluda de ojos amables mirándome fijamente. No entendí nada y seguí caminando; desconocer el idioma me impidió contestar.

Si eres Chewbacca[1] o hablas shyriiwook, el lenguaje de los wookies,[2] entonces seguramente sabrás que esas palabras sin sentido significan «hola. ¿Cómo estás?». Si desconoces el lenguaje no podrás responder al saludo y perderás la oportunidad de conocer al wookie que amablemente te saludó. Aquí en la Tierra, no entender shyriiwook carece de importancia. Pero si tienes que visitar el planeta Kashyyyk,[3] mejor conocido como el mundo de los wookiees, y desconoces el idioma, entonces estarás en problemas.

Saber hablar, entender y/o escribir en uno o más idiomas distintos al nuestro ya no es una opción. No importa la actividad, nivel de estudios o especialización, en algún momento necesitaremos ese conocimiento. Cuando nos referimos a otros idiomas, inmediatamente pensamos en alguno que se hable más allá de nuestras fronteras. Pero hay otros lenguajes que poco a poco se están convirtiendo en una necesidad. Lenguajes cuyo conocimiento se restringía a aquellas personas relacionadas con tecnologías de la información, ciencias o áreas que requieren procesamiento de datos. Me refiero a los lenguajes de programación[4] tales como Java, C, C++, Python, Ruby, por mencionar algunos de los más usados. Si utilizas internet, entonces sin duda alguna eres usuario de software. Ser usuario no requiere que se tengan conocimientos del lenguaje con el cual se programaron las funciones del sitio que estamos viendo, sin embargo, las tendencias indican que la brecha entre ser usuario y codificador va haciéndose más estrecha.

Estamos en una época en la cual ámbitos que anteriormente estaban desligados del uso de la computadora ahora se están involucrando cada vez más en la creación digital. Las artes visuales y la música han encontrado en la creación por computadora un medio más de expresión. De forma análoga a un lienzo, en la computadora se tiene un espacio de dibujo en el cual el artista puede plasmar sus ideas usando diversos dispositivos tales como tabletas y plumas digitales. Pero, un momento, un software de dibujo y pintura sigue siendo usado por el artista, no programado por él o ella. ¿En qué momento se convierte en programador? Cuando el artista, en vez de utilizar un pincel, ya sea real o digital, está pensando en instrucciones que harán que su idea cobre vida; entonces está adquiriendo la mentalidad de un programador. Para lograrlo el artista necesita un lenguaje de programación que le facilite la labor, no que se la complique. Y en eso justamente pensaron Casey Reas[5] y Benjamin Fry[6] al crear un lenguaje de programación orientado a las artes electrónicas y al diseño visual: Processing[8]. Uno de los objetivos de Processing es facilitar a no programadores su incursión en la programación al utilizar instrucciones cortas con resultados inmediatos. Para el programador novato ver inmediatamente lo que está generando es gratificante. Processing es un dialecto del lenguaje de programación Java al cual se le agregaron elementos gráficos y de interacción. Processing es un lenguaje de código abierto cuyo único requisito para aprender a usarlo es que lo quieras hacer. Para mostrarles su sencillez, utilicé unos ejemplos del libro[9] de Casey Reas y Benjamin Fry :

El pasadizo multicolor. Al usuario se le presenta un área en blanco y al arrastrar el mouse se dibujan círculos contiguos que van dejando una estela de colores. Si el usuario oprime el botón izquierdo, los círculos serán negros ‒fill(0)‒; si solamente arrastra el mouse, serán de colores elegidos al azar ‒fill(random(255), random(255), random(255)).

void setup() {

  size(480, 420);

  smooth();

  noStroke();

}

void draw() {

  if (mousePressed) {

    fill(0);

  }

  else {

    fill(random(255), random(255), random(255));

  }

  ellipse(mouseX, mouseY, 50, 50);

}

uno

Hojas de papel rotando. Posee la misma base que el código anterior, pero en lugar de círculos se usan rectángulos que van rotando. Para esta imagen no se usan colores.

float angle = 0.0;

void setup() {

  size(480, 420);

  smooth();

}

void draw() {

  translate(mouseX, mouseY);

  rotate(angle);

  rect(-15, -15, 30, 30);

  angle += 0.1;

}

dos

Tapiz multicolor. El siguiente código despliega, sin interacción del usuario, un tapiz de círculos de colores al azar. Para generarlo se utilizan dos ciclos o iteraciones tomando como base la posición del centro de cada círculo (x, y, z).

size(480, 120);

background(0);    // color de fondo negro

smooth();

noStroke();

for (int y = 0; y <= height; y += 40) {

  for (int x = 0; x <= width; x += 40) {

    fill(random(255), 140, random(155));

    ellipse(x, y, 40, 40);

  }

}

tres

Las instrucciones son simples y pueden lograrse resultados bonitos con poco código. Si el código se desarrolla con conocimiento de forma y color, entonces puede pasar de ser un simple ejercicio a un diseño profesional. Existen diversas plataformas para compartir tus obras y el código[10]. También existen diversas galerías que vale la pena visitar[11,12,13].

Si quieres aprender nuevos lenguajes, también considera a los lenguajes de programación. Aunque bueno, también es válido querer aprender a hablar shyriiwook y así poder contestar al siguiente wookie que nos salude: «Wyogg, ur oh» («estoy bien, gracias»).

NOTAS

[1] Chewbacca. Wookieepedia. The Star Wars Wiki: http://starwars.wikia.com/wiki/Chewbacca, consultada el 19 de marzo de 2014.

[2] shyriiwook. Wookieepedia. The Star Wars Wiki:  http://starwars.wikia.com/wiki/Shyriiwook, consultada el 19 de marzo de 2014.

[3] kashyyyk. Wookieepedia. The Star Wars Wiki: http://starwars.wikia.com/wiki/Kashyyyk, consultada el 19 de marzo de 2014.

[4] Brian Voo, 30 Cheatsheets & Infographics for Software Developers: http://www.hongkiat.com/blog/cheatsheet-infographic-software-developers/, consultada el 20 de marzo de 2014.

[5] Casey Reas Collection, Victoria and Albert Museum: http://collections.vam.ac.uk/name/reas-casey/62565/, consultada el 20 de marzo de 2014.

[6] Casey Reas Home Page: http://www.reas.com/, consultada el 20 de marzo de 2014.

[7] Ben Fry Home Page: http://benfry.com/, consultada el 20 de marzo de 2014.

[8] Processing 2: http://www.processing.org/, consultada el 21 de marzo de 2014.

[9] Casey Reas, Ben Fry, Getting started with Processing, Maker Media, 2010.

[10] OpenProcessing: http://www.openprocessing.org/browse/, consultada el 21 de marzo de 2014.

[11] Creative Applications Network: http://www.creativeapplications.net/category/processing/, consultada el 21 de marzo de 2014.

[12] Proecessing – Flickr Group: http://www.flickr.com/groups/processing/, consultada el 22 de marzo de 2014.

[13] Catodo, Generative art, music and creative coding: http://www.catodo.net/processing-gallery/, consultada el 22 de marzo de 2014.

 

 

 

_______________

Blanca Alicia Vargas Govea. De formación académica, le gustan las aplicaciones a la vida real. En épocas medievales hizo cosas sobre aprendizaje automático para robots móviles. Consumidora ávida de información y buscadora incesante. Actualmente es profesora en el ITESM Campus Cuernavaca y consultora en temas de aprendizaje automático y análisis de datos.

Correo: blanca.vg@gmail.com

Sitio web: http://blancavg.com

Revista cultural

Responder

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *