Hablar con las máquinas (y II): Lenguajes para programarlas

En mi post anterior sobre hablar con las máquinas, reflexionaba sobre una tendencia tecnológica actual: utilizar la voz y nuestro lenguaje natural para poder comunicarnos, conversar y dar órdenes, a las máquinas. Pero mientras madura esta tecnología, sigue siendo necesario comunicarnos con ellas mediante otros interfaces como son el teclado, el ratón o tocando sobre una pantalla, y con lenguajes formales artificiales:los lenguajes de programación.

tecladoCuando realizamos una secuencia de clicks con el ratón, o tocamos sobre botones, iconos o zonas de una pantalla, estamos “hablando” con la máquina: la máquina responde a estos impulsos de la forma en que tenga programado hacerlo. Al igual que ocurre con el procesado de la voz, la inteligencia artificial puede analizar patrones en estos códigos de pulsaciones o incluso en nuestras costumbres al hacerlo. Esto permite a los creadores de la tecnología tomar medidas de nuestro comportamiento y programar las respuestas de las máquinas de acuerdo a ello.

Pero en cualquier caso, es necesario que exista un código o lenguaje para la intercomunicación con la máquina. Estos lenguajes pueden ser muy sencillos y consistir sólo en tocar de cierta manera unos botones, como por ejemplo para programar un reloj despertador con dos botones. O puede ser todo lo complicado que deseemos, con sus estructuras sintácticas y gramaticales, y una lógica avanzada, de forma que se consiga que la máquina de destino realice operaciones de un nivel de complejidad impensable para una persona y a velocidades de vértigo.

Podemos usarlos para comunicarnos con la máquina con diferentes objetivos: podemos hablar con la máquina para querer utilizarla y conseguir algún servicio de la misma o podemos querer crear nuevos servicios o funciones con la misma.

El primer caso sucede por ejemplo cuando utilizamos un buscador para encontrar una información, cuando programamos el despertador, o cuando conducimos un coche: estamos enviando nuestras señales, del tipo que sean para conseguir que la máquina responda y haga cosas por y/o para, incluso a veces con, nosotros. Las funciones están creadas pero es necesario la comunicación de la secuencia de órdenes correcta para que comience a suceder la magia.

Puede interesarte:  Los (video) juegos son para el verano ... y para leer

programar nuestro entornoEl segundo caso es cuando queremos comunicarnos con la máquina de forma que se creen y se programen estos servicios o funciones. El lenguaje interno que permite que la máquina realice sus funciones. La magia en sí. Y esos lenguajes formales, ideados artificialmente por  personas para poder hablar con las máquinas, se conocen como los lenguajes de programación. De momento, las máquinas no pueden programarse de forma autónoma, por lo que necesitan que una persona sea la que escriba “las tripas” de las funcionalidad y servicios que son capaces de realizar.

Los lenguajes de programación son sólo un conjunto de símbolos, expresiones y sus reglas sintácticas y semánticas que nos permiten controlar el funcionamiento de una máquina. Y al igual que otros lenguajes e idiomas en el mundo, unos se ponen de moda e intentan dominar y convertirse en la lengua común universal de la Torre de Babel de la tecnología. Mientras que otros acaban relegados e incluso terminan por dejar de usarse, extinguirse y desaparecer, o quedar destinados a una pequeña minoría de expertos, como si de lenguas muertas digitales se tratasen.programar es un lenguaje universal

Realmente, las máquinas no entienden de estos lenguajes. Ellas sólo saben de unos y ceros. O de impulsos mecánicos y eléctricos. Si la máquina es digital, estos impulsos se traducen por unos y ceros, o lo que les sonará más: bits. Sin embargo, las personas ni entendemos, ni hablamos en bits, y menos a la velocidad que lo hace una máquina. Cuanto más se parece un lenguaje de programación a un lenguaje natural humano, se dice que es de más “alto nivel”, mientras que cuanto más cercano sea a una secuencia de unos y ceros, será más de “bajo nivel”. Y además, cada máquina responde de forma diferente a las secuencias de bits que recibe.

Puede interesarte:  Los (video) juegos son para el verano ... y para leer

Para solucionarlo, los creadores de estos lenguajes de programación también se han ido encargando de crear también los programas que hacen de intérpretes entre el lenguaje de la máquina y el lenguaje de programación que podemos escribir las personas. Esto, que en el caso de los ordenadores, viene ya de hace más de medio siglo, supuso una gran revolución, porque igual que ocurre con los traductores de los lenguajes naturales humanos, estos intérpretes traductores nos permiten manejar máquinas diferentes con un mismo lenguaje de programación.

Aprender un lenguaje de programación, como ocurre con otros lenguajes formales, puede ser mucho más sencillo que aprender un idioma, aunque parezca lo contrario. Piensen en que por ejemplo, no hay que pronunciarlos ni escucharlos y entenderlos … cosa que en algunos idiomas humanos extendidos mundialmente puede llegar a ser una hazaña. En general, un lenguaje formal creado artificialmente por personas, siempre estará más limitado que un lenguaje natural nativo, aunque con él se puedan conseguir comunicar informaciones complejas.

aprender a programarSe suelen consultar las estadísticas de los idiomas más hablados en el planeta, y se estudian y aprenden en ocasiones como factor determinante en la búsqueda de oportunidades, con la esperanza de que hablar chino, inglés, castellano o ruso no abrirán puertas, ya sean laborales o sociales. Lo mismo pasa con los lenguajes de programación más extendidos. Pensemos que permiten la comunicación de una forma global, independientemente del idioma nativo del programador, y no sólo con miles de humanos que lo conocen, sino con millones de máquinas que lo podrían usar.

Seguro que alguna vez han leído u oído nombres, y si no, pueden aprovechar a  familiarizarse con ellos, como por ejemplo HTML, Javascript, Python, Java o C++. Y sí, cualquiera puede aprender a utilizarlos. Al igual que la voz para hablar con las máquinas, cada vez es una tendencia mayor el que cualquier persona, y no sólo ingenieros y frikis, puedan animarse a conocerlos y utilizarlos en sus máquinas caseras. Todos ellos consisten en lo mismo: una serie de reglas y símbolos que al escribirlos de la forma adecuada van consiguiendo que, una vez interpretados y traducidos a los bits que entiende la máquina, realice las tareas oportunas. El ranking TIOBE mide su uso, por lo que pueden saciar su curiosidad de saber cuales son los más utilizados en su web: https://www.tiobe.com/tiobe-index/

Puede interesarte:  Los (video) juegos son para el verano ... y para leer

La última tendencia en aprendizaje de programación es evitar tener que escribirlos en esas pantallas negras o blancas con códigos crípticos en colores. Para evitarlo, se utilizan los llamados lenguajes de programación visuales o de bloques. Uniendo, apilando, conectando bloques, como si de un puzzle se tratara, se van construyendo secuencias de órdenes para la máquina. De esta forma se está rompiendo poco a poco una de las clásicas barreras digitales, ya que ahora, animarse a programar no implica ni siquiera saber leer o escribir, y  menos en un lenguaje de programación: basta con enganchar correctamente bloques de colores.

Con esta posibilidad, hablar con las máquinas es algo que podemos hacer desde la más temprana edad, como sucede con aplicaciones de programación de bloques como Scratch Jr., con la que podemos hacer nuestros primeros programas desde los 4-5 años y sin límite de edad posterior.Scratch JR

Iniciarse en las artes de la programación de código en cualquier lenguaje es una oportunidad de acercarse a la tecnología no como meros consumidores y usuarios, sino también como creadores y dominadores de la misma. Aprender a programar permite hablar con las máquinas, y además adquirir competencias y habilidades que nos van a facilitar enfrentarnos al creciente ecosistema de dispositivos y programas que nos vemos obligados a utilizar en nuestro día a día.

Al fin y al cabo, las máquinas están programadas (de momento) por personas… ¿qué mejor forma de aprender a utilizarlas que aprender a pensar como pensaron quienes las diseñaron?

 

Dejar respuesta

Please enter your comment!
Please enter your name here

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.