Whitespace: Lenguaje de programación esotérico

Ariel Palazzesi . Vista 9443 veces

¿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.

    “Hola mundo”, con los espacios aparecen en color rosa y las tabulaciones en celeste. “Hola mundo”, con los espacios aparecen en color rosa y las tabulaciones en celeste.

    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.

    Chuck Norris programa (obviamente) en Whitespace, con los ojos vendados. Chuck Norris programa (obviamente) en Whitespace, con los ojos vendados.

    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?
     

    Sitio oficial de  Whitespace

¿Y tú, qué opinas?

  • #1 leo
    leo miércoles, 15 de septiembre de 2010, 16:49

    "muestra de masoquismo extremo" lo has dicho todo.

    Responder >> Attention Minus Plus Votos: 4 de 4
  • #2 <a href="../../foro/member.php?u=29120" target="_self">Triton</a>
    Triton miércoles, 15 de septiembre de 2010, 18:15

    Es verdad... para mi es exoterico !

    Ahaha toma esa porfolio !

    Responder >> Attention Minus Plus Votos: 0 de 6
  • #3 <a href="../../foro/member.php?u=27835" target="_self">nicopatonet</a>
    nicopatonet miércoles, 15 de septiembre de 2010, 18:36

    #2esta 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

    Responder >> Attention Minus Plus Votos: 1 de 5
  • #4 <a href="../../foro/member.php?u=29120" target="_self">Triton</a>
    Triton miércoles, 15 de septiembre de 2010, 18:56

    #3Muy mal Horus que Set te de un buen golpe en la entrepierna por hablar asi de un ser inmortal !

    Responder >> Attention Minus Plus Votos: 3 de 7
  • #5 _cero_
    _cero_ miércoles, 15 de septiembre de 2010, 19:22

    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.

    Responder >> Attention Minus Plus Votos: 0 de 2
  • #6 Diniremix
    Diniremix miércoles, 15 de septiembre de 2010, 19:26

    imaginar el kernel delinux reescrito en este lenguaje, con nuevos driver y eso ajjajaj

    Responder >> Attention Minus Plus Votos: 0 de 0
  • #7 Demian
    Demian miércoles, 15 de septiembre de 2010, 19:27

    Jajajajajajajajaj, que demencia! (Muy bueno el chiste con la foto de nuestro queridisimo Chuck!).

    Responder >> Attention Minus Plus Votos: 0 de 0
  • #8 Tyranus
    Tyranus miércoles, 15 de septiembre de 2010, 20:46

    Una pregunta de casualidad Ariel, vos te pasas por el foro de ADVA?

    Saludos gente!

    Responder >> Attention Minus Plus Votos: 0 de 0
  • #9 <a href="../../foro/member.php?u=25886" target="_self">rbibolotti</a>
    rbibolotti miércoles, 15 de septiembre de 2010, 21:10

    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???

    Responder >> Attention Minus Plus Votos: -2 de 2
  • #10 Chuck Bored
    Chuck Bored miércoles, 15 de septiembre de 2010, 21:34

    #3mmm... 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

    Responder >> Attention Minus Plus Votos: 2 de 8
  • #11 film izle
    film izle miércoles, 15 de septiembre de 2010, 21:44

    thanks

    Responder >> Attention Minus Plus Votos: 0 de 0
  • #12 Sorancio
    Sorancio miércoles, 15 de septiembre de 2010, 22:38

    Ook. Ook. Ook! Ook? Ook? Ook.

    Responder >> Attention Minus Plus Votos: 0 de 0
  • #13 <a href="../../foro/member.php?u=27835" target="_self">nicopatonet</a>
    nicopatonet miércoles, 15 de septiembre de 2010, 23:24

    #3EXACTO 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

    Responder >> Attention Minus Plus Votos: 0 de 0
  • #14 ejem
    ejem miércoles, 15 de septiembre de 2010, 23:26

    #3Perdon, pero Chuck Norris ahi lo tienes tan tranquilo...

    ¿Que ha sido de Bruce Lee?

    Ejem...

    Responder >> Attention Minus Plus Votos: -1 de 5
  • #15 misegundoprograma
    misegundoprograma miércoles, 15 de septiembre de 2010, 23:48




















    -

    Responder >> Attention Minus Plus Votos: 4 de 4
  • #16 kaeltas
    kaeltas jueves, 16 de septiembre de 2010, 00:14

    #15+1 :) buen chiste

    por cierto te equivocaste en:

    Debería ser así:















    Responder >> Attention Minus Plus Votos: 3 de 3
  • #17 holman
    holman jueves, 16 de septiembre de 2010, 00:23

    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

    Responder >> Attention Minus Plus Votos: 1 de 1
  • #18 <a href="../../foro/member.php?u=27835" target="_self">nicopatonet</a>
    nicopatonet jueves, 16 de septiembre de 2010, 01:05

    #2ejemm... 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

    Responder >> Attention Minus Plus Votos: 0 de 0
  • #19 <a href="../../foro/member.php?u=25960" target="_self">imported_rogelio3</a>
    imported_rogelio3 jueves, 16 de septiembre de 2010, 01:26

    #3"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...

    Responder >> Attention Minus Plus Votos: 2 de 6
  • #20 <a href="../../foro/member.php?u=25741" target="_self">Ripper669</a>
    Ripper669 jueves, 16 de septiembre de 2010, 02:06

    #16






















    Estaes en realidad lña manera correcta!!!

    Responder >> Attention Minus Plus Votos: -2 de 2
  • « «« Anterior12Siguiente »» »
    Cargando...Cargando...

  • nuevo comentario
    Nombre

    Campo obligatorio

    Email

    Escriba una dirección de correo electrónico con el formato sunombre@ejemplo.com.

    Campo obligatorio

 
Ir arriba