Si los principales lenguajes de programación en el mercado ya resultan difíciles, imaginen uno especialmente diseñado para complicar al máximo su compilación, y que además trabaja en dos dimensiones, de modo tal que su ejecución cambia de dirección. En otras palabras, una «máquina de Rube Goldberg» en código. Bueno… ese lenguaje existe, se llama Befunge, y fue diseñado por Chris Pressey en 1993.
Cada programador tiene un lenguaje favorito, y para ser honestos, cualquier comparación entre uno y otro garantiza una pelea en estos días. Si tenemos las mismas discusiones con vinos, cervezas, helados, pizzas, coches, aviones, ropa, clubes de fútbol, teléfonos, hardware y un largo etcétera, lo último que deberíamos esperar entre los lenguajes de programación es una excepción. Sin embargo, lo que sí podemos hacer es divertirnos con ellos, y en ciertas ocasiones, lo único que se necesita es algo raro. Por ejemplo: Befunge. Su creación se remonta a septiembre de 1993, y si es la primera vez que lo escuchan nombrar, honestamente no puedo culparlos. Después de todo, hace cosas como esta:
El primero es un caso bastante lineal del Hello World. El cursor naranja lee el código, el símbolo “ inicia una cadena (la cual termina cuando encuentra a otro “), las comas equivalen al Print de Basic, y el arroba finaliza el programa. Y el segundo es lo mismo… solo que mucho más complicado. El cursor sube y baja, vuelve a subir, cambia de dirección, una locura. El usuario observa un espacio de 80 x 25 caracteres, pero en realidad tiene la forma de un toroide, o sea que el cursor aparece del otro lado cuando cruza un límite. Los símbolos (< > v ^) marcan la dirección que necesita seguir el cursor, y como la pila es Last In First Out, el texto debe estar al revés.
¡Y eso no es todo! Un signo de pregunta asigna una dirección aleatoria para el código, y la letra «p» permite su modificación al vuelo. Las dos especificaciones disponibles de Befunge son Befunge-93 y Funge-98, pero más allá de la elección, cualquier programador tendrá las manos llenas con este lenguaje. Un viejo texto dedicado a Befunge sugiere que es una mezcla «entre Forth y Lemmings», y creo que tiene razón.