¿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.
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?
"muestra de masoquismo extremo" lo has dicho todo.
Es verdad… para mi es exoterico !
Ahaha toma esa porfolio !
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
Muy mal Horus que Set te de un buen golpe en la entrepierna por hablar asi de un ser inmortal !
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
Perdon, pero Chuck Norris ahi lo tienes tan tranquilo…
¿Que ha sido de Bruce Lee?
Ejem…
"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…
Claro, Bruce Lee derrotó a Chuck Norris, pero ¿Quién sigue vivo aún?…
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.
Dios mío y yo que pensaba que ya ningún lenguaje se me resistía, esto si me deja el rabo entre las piernas XXD.
imaginar el kernel delinux reescrito en este lenguaje, con nuevos driver y eso ajjajaj
Jajajajajajajajaj, que demencia! (Muy bueno el chiste con la foto de nuestro queridisimo Chuck!).
Una pregunta de casualidad Ariel, vos te pasas por el foro de ADVA?
Saludos gente!
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???
Si a huevo!!, (aja….)
thanks
Ook. Ook. Ook! Ook? Ook? Ook.
–
+1 🙂 buen chiste
por cierto te equivocaste en:
Debería ser así:
Estaes en realidad lña manera correcta!!!
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
fortram es mas dificil
No, no lo es. xD yo que soy un maestro del lenguaje brainfuck esto para mi es pan comido.
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….
como no se me ocurrio eso muy buena deduccion de po q murio BL
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"
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
No se que es mas inentendible si los comentarios o la noticia
Interesante =P
apuesto que un programa en whitespace ha de pesar muy poco, que es para la unica utilida que le daria no se si sea tan bueno como C