in

Whitespace: Lenguaje de programación esotérico

¿Alguna vez, leyendo el código fuente de un programa, te costó trabajo entender qué había querido hacer su creador? Seguramente sí. Incluso hay concursos para ver quién escribe el código más retorcido (“C ofuscado” le dicen). Pero el premio gordo a la dificultad extrema se lo lleva Whitespace. Este lenguaje, que solo usa espacios en blanco, tabuladores y líneas nuevas en su código, es lo más esotérico que hemos visto. ¿Lo conocías?

Lenguajes de programación hay muchos. Demasiados, si tenemos que creerle a algunos expertos. Uno podría pensar que con C alcanza y sobra para programar cualquier cosa, desde un sistema operativo hasta un microcontrolador. Pero los expertos siguen desarrollando nuevas formas de convertir una idea en un montón de símbolos que indiquen a un ordenador que debe hacer. En general, esos esfuerzos se orientan a conseguir formas más “naturales” de instruir a la máquina, de forma que gente sin una formación en sistemas pueda crear sus propios programas. Pero algunas veces, seguramente como una broma o un intento de lograr cierta clase de “fama”, alguien  concibe un compilador capaz de volver loco al programador más avezado.  Whitespace es un ejemplo de ello: un lenguaje de programación esotérico y prácticamente desconocido, que solo usa espacios en blanco, tabuladores y líneas nuevas en su código.

¿Qué es Whitespace?

Whitespace, un lenguaje de programación que seguramente sería muy apreciado por los espías, se basa en un código que resulta prácticamente invisible. Como sus instrucciones se expresan como una combinación de espacios en blanco y golpes de tabulador -ambos símbolos inimprimibles– se hace indispensable utilizar algún editor de textos que resalte con colores estos elementos para poder  leerlas. La imagen anterior, en la que los espacios aparecen en color rosa y las tabulaciones en celeste, es el “Hola Mundo” de  Whitespace. ¿Te cuesta trabajo entenderlo? Imagina lo que sería si no hubiesen pintando esos caracteres de colores: ¡solo verías una hoja en blanco! Este esotérico lenguaje de programación fue desarrollado por Edwin Brady y Chris Morris, quienes dieron a conocer su obra a la comunidad de programadores el 1 de abril de 2003. Es un lenguaje “imperativo”, como C, BASIC, PERL, PHP o JAVA.

La programación imperativa describe la programación en términos del estado del programa y sentencias -las que en este caso se redactan con espacios y tabuladores- capaces de cambiar dicho estado. Dicho de otra forma, los programas imperativos son un conjunto de instrucciones, una especie de “receta”,  que le indican al ordenador la manera en que debe realizar una tarea. Prácticamente todo el hardware existente está diseñado para ejecutar código de máquina escrito en una forma imperativa, basado en el paradigma de las Máquinas de Turing.  Whitespace, a pesar de lo extraño que nos parece, es un lenguaje completamente funcional y que -al menos en teoría- nos permite realizar cualquier tarea.

“Hola Mundo”

Al igual que otros lenguajes de alto nivel, Whitespace permite el uso de variables y sentencias bastante complejas.  Su funcionamiento, al igual que otros lenguajes,  basa en una “pila” (stack en inglés).  La pila no es más que una estructura de datos de tipo LIFO (del inglés Last In First Out, último en entrar, primero en salir). Este sistema permite almacenar y recuperar datos mediante dos operaciones básicas: apilar (“push”, que coloca un objeto en la pila) y su operación inversa, retirar (“pop”, o desapilar), que retira el último elemento apilado.  Whitespace solo pude acceder a la parte superior de la pila (TOS, por “Top of Stack”), donde se encuentra el último objeto apilado. Se pueden apilar números enteros de cualquier longitud, pero no valores de coma flotante.

¿Cuál es la utilidad real de un lenguaje de programación tan extraño como este? En la práctica, ninguna. Desarrollar algo así es un excelente ejercicio intelectual, pero utilizar Whitespace para programar una aplicación no es más que una muestra de masoquismo extremo. Y ni hablar del trabajo que implicaría realizar tareas de mantenimiento al código escrito por otra persona, o por uno mismo luego de algún tiempo. Brady y Morris han conseguido un merecido lugar en el “hall of fame” de los creadores de compiladores extraños, pero nada más que eso. ¿No te parece?

Reportar

¿Qué te pareció?

Escrito por Ariel Palazzesi

32 Comments

Leave a Reply
    • esta es otra prueba de que no eres el verdadero CHUCK NORRIS, como dice arriba, CHUCK NORRIS programa con los ojos vendados y a ti… te parece esoterico. muy mal muuuy mal ja

      • mmm… Por ke valoran tanto a chuck norris, si bruce lee, le dio en toda la madre, y salio caminando como si nada, lo hizo picadillo!!!!!!!!!!!, me oyen Picadillo!!!!!!!!!!, y aunque digan que bruce esta muerto, si una bala pudo contra bruce lee, media bala es suficiente para acabar con chuck

      • EXACTO BRUCE LEE ES MEJOR ,solo que yo creo que por tradicion gringa, se ha puesto a CHUCK NORRIS como un "chiste" de que todo lo puede, pero BRUCE LEE LE ACOMODO UNA BUENA TUNDA

      • "EL ÚNICO HOMBRE QUE FUE CAPAZ DE DERROTAR A CHUCK NORRIS FUE BRUCE LEE, PERO SOLO UNA VEZ, SOLO UNA VEZ…" hay quien dice que fue una bala, pero otros creen que fue una mirada furiosa de Chuck que le atravesó el cuerpo…

    • ejemm… a chuck norris no le han tirado y atravesado con una bala, si comparas el fisico bruce lee esta mas trabado tiene mejor tecnica y es mas rapido, si esa bala mayo a bruce lee. es misma bala hubiera podido matar a 2 chuck norris y punto ja

      • Bruce No murio por la bala, eso le paso al hijo, ( El cual llevava una carrera heredada del padre) Bruce supuestamente murió por Un ataque cardíaco.

  1. Lo más curioso de ese lenguaje, no es el hecho de que use espacios, tabuladores y entradas de linea para crear programas….

    …SINO QUE EN EL PROGRAMA HOLA MUNDO UTILICEN UN ESPACIO-ESPACIO-TABULADOR-ESPACIO-ESPACIO-ESPACIO-ESPACIO…

    DEBERIA SER TABULADOR-ESPACIO-ENTRADA DE LINEA-ESPACIO-ESPACIO-ESPACIO-TABULADOR-ESPACIO-ESPACIO!!!

    Obvio, no creen???

  2. alguien ah notado el parecido del nombre de uno de sus creadores al de chuck norris / Chris Morris, jejeje, por eso estan facil para morris digo norris programar en el con los ojos cerrados

  3. bruce lee murio de un aneurisma, el tenia una alergia en el cerebro, se le hinchaba si fumaba marihuana y su cerebro se presionaba contra su craneo y bue, ya sabemos q pasa ;P. a bruce lee lo mato DIOS por miedo a q lo pateara y lo reemplazara, q venciera a chuck norris fue el llamado de alerta de dios….

  4. SIIIIIII!!!
    Por fin puedo entregar una hoja en blanco despues de dos horas de examen de programacion y decirle al profesor:
    "Tome, esta escrito en Whitespace"

  5. chuck norris programaba con los ojos cerrados mientras se aventaba un tirito con bruce lee jaja, pero que diablos he dicho!! se nota que el de arriba es un verdaderamente falso chuck norris

Deja una respuesta

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

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

Supuesta clave maestra anularía al HDCP

Cri-Cri: El pequeño avión eléctrico