5 lenguajes de programación olvidados que nunca debieron ser prácticos

La mayoría de los lenguajes de programación existen para ser utilizados. Quieren ser lo suficientemente legibles, rápidos, desplegables y amigables como para que alguien realmente los elija en el trabajo, como Python. Sin embargo, hay unos pocos que nunca tuvieron ese problema porque nunca intentaron ser útiles, solo interesantes.

INTERCAL te obliga a ser cortés con el compilador

Cambia el nombre de los símbolos normales a palabras extrañas.

Crédito: Jorge Aguilar / Cómo Geek

Uno de los primeros lenguajes de programación esotéricos reales apareció en 1972, el lenguaje compilador sin acrónimo pronunciable, o INTERCAL para abreviar. Dos estudiantes de Princeton, Donald R. Woods y James M. Lyon, lo construyeron como una broma directa dirigida a los inflados sistemas de software corporativo y los lenguajes dolorosamente rígidos de la época, cosas como FORTRAN, COBOL y ALGOL.

Su objetivo declarado era construir algo que no compartiera absolutamente nada con ninguna forma de programación existente, simplemente para hacer las cosas lo más frustrantes posible. Una de las peculiaridades más notorias de INTERCAL es que exige buenos modales. Las declaraciones deben ir precedidas de POR FAVOR o POR FAVOR HACER con la frecuencia suficiente para satisfacer al compilador, pero no tan a menudo como para que resulte sospechoso.

Utilice la palabra clave cortés en menos de una de cada cinco declaraciones y el compilador arrojará un error indicándole que el programador no es lo suficientemente cortés. Úselo en más de un tercio de sus declaraciones y, en su lugar, recibirá un error demasiado cortés. Tienes que encontrar el punto óptimo, lo que hace que escribir código sea una forma de gestionar los sentimientos del compilador.

Incluso los símbolos básicos pasan a denominarse algo apenas reconocible. Un apóstrofe es un sparklas comillas son rabbit earsy una coma es una tail. El operador de asignación no es un signo igual: es una flecha que apunta hacia la izquierda que el manual llama «ángulo» y un wormlean juntos como gets. En su lugar, obtienes enteros de 16 bits llamados «puntos», escritos con un punto, y enteros de 32 bits llamados two-spotsescrito con dos puntos y matrices llamadas tails y hybrids.

Chef lee como una receta de cocina

Los ingredientes y los tazones para mezclar contienen sus datos

David Morgan-Mar creó Chef y fue como crear un lenguaje de programación inusual para la cocina. La idea es que los programas de computadora reales y funcionales estén escritos para que parezcan recetas de cocina. Chef fue diseñado para que el código pudiera ejecutarse en una máquina y al mismo tiempo leerse como algo que encontrarías en un libro de cocina.

En lugar de etiquetas abstractas, cada variable parece un ingrediente alimentario. Hay que usar azúcar, harina y ese tipo de cosas. Estos ingredientes contienen los valores numéricos que el programa necesita para funcionar. Las unidades de medida adjuntas a cada ingrediente también son importantes. Las medidas secas como gramos o pellizcos le indican al programa que trate un valor como un número normal, mientras que las medidas líquidas como mililitros o guiones significan que el valor se lee como un carácter ASCII.

Las pilas de memoria, que los programadores normalmente considerarían en términos puramente abstractos, se convierten en tazones para mezclar y fuentes para hornear.

No existen operadores aritméticos ni comandos de memoria en el sentido tradicional. En cambio, el programador da instrucciones de cocción. Put ingredient into a mixing bowl empuja un valor a la pila. Fold ingredient into mixing bowl retira el valor superior y lo reasigna. Multiplicar dos valores significa decirle al programa que Combine algo en el recipiente.

Reordenar la pila significa stirring durante un determinado número de minutos. Cuando llega el momento de producir, el programa sirve el plato, que es un Serves Declaración al final que imprime los resultados en función del número de comensales.

Befuge se ejecuta en una cuadrícula en lugar de línea por línea

El puntero se mueve como un laberinto.

Crédito: Jorge Aguilar / Cómo Geek

Befunge es un lenguaje de programación realmente extraño, más que otros. En lugar de ejecutar el código línea por línea de arriba a abajo, opera en una cuadrícula bidimensional. En la especificación original, esa cuadrícula se fijó en 80 columnas por 25 filas, y todo se envuelve en los bordes como un toroide. Lo que lo hace extraño es que el código y los datos viven en las mismas celdas. No hay separación entre los dos.

Cuando se ejecuta un programa Befunge, un puntero de instrucción se mueve alrededor de la cuadrícula como un cursor y puede ir en cualquiera de las cuatro direcciones básicas: derecha, izquierda, arriba o abajo. Todo esto depende de los caracteres direccionales del código. Incluso hay un ? operador que elige una dirección aleatoria y un par de condicionales _ y | que bifurcan el puntero horizontal o verticalmente según lo que esté en la pila.

Tiene muy poco sentido para mí; Es un laberinto sin motivo.

Los espacios en blanco se ven completamente en blanco cuando lo abres

Todo está hecho de espacios y pestañas invisibles.

Crédito: Jorge Aguilar / Cómo Geek

Los espacios en blanco son tan tontos como parece. Los espacios en blanco ignoran por completo todos los caracteres de texto estándar. Mientras que lenguajes como C++ o Java tratan los espacios y las tabulaciones como formatos sin sentido, Whitespace lo invierte por completo. Aquí, los únicos caracteres que realmente significan algo son los espacios, las tabulaciones horizontales y los avances de línea.

El intérprete ignora todo lo demás y lo trata como un gran comentario en línea. Abra un archivo fuente de espacios en blanco en un editor de texto y aparecerá completamente en blanco.

Debajo de esa superficie invisible hay un lenguaje de programación basado en pilas completamente funcional donde los desarrolladores tienen que construir lógica matemática a partir de nada más que pulsaciones de teclas invisibles. Cada comando comienza con un parámetro de modificación de instrucción, que es una secuencia específica de caracteres de espacios en blanco que le indica al intérprete qué tipo de operación se avecina.

Un solo espacio significa manipulación de la pila, una tabulación seguida de un espacio inicia la aritmética y un avance de línea solitario maneja el flujo de control. Los parámetros numéricos siguen utilizando un sistema binario de signo y magnitud donde los espacios y tabulaciones reemplazan a ceros y unos, con un avance de línea que marca el final.

Brainf*@k solo te da ocho comandos para hacer todo

Un solo puntero se mueve hacia adelante y hacia atrás a través de las celdas de memoria.

Crédito: Jorge Aguilar / Cómo Geek

El nombre Brainfuck prácticamente te dice lo que te espera. Esto es lo más sencillo que puede llegar a ser un lenguaje de programación, utilizando sólo ocho comandos para hacer cualquier cosa. Esos comandos son los personajes. >, , +, -, [, ], .y la coma, que forman todo el idioma.

Funciona en una fila de 30.000 celdas de memoria, todas comenzando en cero, con un único puntero que se mueve hacia adelante y hacia atrás entre ellas. Mueves el puntero hacia la izquierda o hacia la derecha, subes o bajas los valores uno a la vez, y eso es todo. Cualquier otra cosa que escribas en el código fuente se ignora por completo.

Como era de esperar, nadie utiliza esto para enviar software. No hay variables, funciones ni operadores aritméticos con nombre. No tiene un propósito práctico, pero es interesante ver qué es lo que la gente puede hacer con él.

No uses estos idiomas

Ninguno de estos lenguajes incluirá software de producción, y sus creadores serían los primeros en decirle que ese es el punto. Técnicamente pueden hacer cualquier cosa que pueda hacer un lenguaje real, con suficientes células de memoria y suficiente paciencia, pero eso sería una pérdida de tiempo. Resulta que tener una sintaxis legible, separar el código de los datos y utilizar símbolos reconocibles son opciones, no requisitos para un lenguaje.

We use cookies in order to give you the best possible experience on our website. By continuing to use this site, you agree to our use of cookies.
Accept