- Tabloid es un lenguaje de programación Turing completo en el que se escribe código con el estilo de titulares de noticias clickbait
- La salida se realiza con la construcción
YOU WON'T WANT TO MISS, y toda salida se convierte automáticamente a mayúsculas y se le agregan signos de exclamación
- Las declaraciones de funciones usan la construcción
DISCOVER HOW TO ... WITH, y las declaraciones de variables usan EXPERTS CLAIM ... TO BE
- No tiene estructuras de bucle; en su lugar, la repetición se implementa con llamadas recursivas, y el retorno de funciones se expresa con
SHOCKING DEVELOPMENT
- Los programas deben terminar obligatoriamente con
PLEASE LIKE AND SUBSCRIBE, y existen un intérprete en JavaScript y una implementación en Racket
Resumen del lenguaje Tabloid
- Tabloid es un lenguaje diseñado para escribir programas con el estilo de titulares periodísticos clickbait
- En el código de ejemplo, las funciones se declaran con la forma
DISCOVER HOW TO fibonacci WITH a, b, n
- Usa construcciones en forma de frase como
RUMOR HAS IT, WHAT IF, END OF STORY, entre otras
- Toda la salida del lenguaje comienza con
YOU WON'T WANT TO MISS y se le aplica conversión automática a mayúsculas y signos de exclamación
Sintaxis principal y características
- Declaración de funciones:
DISCOVER HOW TO ... WITH
- Declaración/asignación de variables:
EXPERTS CLAIM ... TO BE
- Condicionales:
WHAT IF ... LIES!
- Llamada a función:
A OF B, C
- Ámbito de bloque: comienza con
RUMOR HAS IT y termina con END OF STORY
- Sentencia de retorno:
SHOCKING DEVELOPMENT
- Fin del programa:
PLEASE LIKE AND SUBSCRIBE
- Valores booleanos:
TOTALLY RIGHT (true), COMPLETELY WRONG (false)
- Operadores:
PLUS, MINUS, TIMES, DIVIDED BY, MODULO, IS ACTUALLY, BEATS, SMALLER THAN, entre otros
Cómo funciona el lenguaje
- Tabloid puede ejecutarse mediante un intérprete escrito en JavaScript
- Los tipos de datos soportados son números, cadenas y booleanos
- No tiene construcciones de bucle, y la repetición se implementa mediante llamadas recursivas
- Además del intérprete en línea, también existen una implementación en Racket y una biblioteca de funciones auxiliares
Contexto de desarrollo
- El creador menciona que hizo este lenguaje para evadir una tarea de sistemas de bases de datos
- Antes de Tabloid, ya había desarrollado un lenguaje más práctico llamado Ink
Lista de palabras clave estándar
DISCOVER HOW TO...WITH: declaración de función
RUMOR HAS IT: inicio de bloque
A OF B, C: llamada a función
WHAT IF...LIES!: condicional
END OF STORY: fin de bloque
EXPERTS CLAIM...TO BE: declaración/asignación de variable
YOU WON'T WANT TO MISS: salida
LATEST NEWS ON: entrada del usuario
TOTALLY RIGHT, COMPLETELY WRONG: valores booleanos
AND, OR: operadores lógicos
PLUS, MINUS, TIMES, DIVIDED BY, MODULO: operadores aritméticos
IS ACTUALLY, BEATS, SMALLER THAN: operadores de comparación
SHOCKING DEVELOPMENT: retorno de función
PLEASE LIKE AND SUBSCRIBE: fin del programa
2 comentarios
¿De verdad estás pensando en convencer al equipo para cambiar la base de código a este lenguaje? jajajaja
Comentarios de Hacker News
Habría sido más divertido si el título del post hubiera sido "Will this programming language revolutionize software development?"
Este lenguaje ya había sido popular antes
También fue tema de conversación en el post 24578749 de 2020 y en el post 40964261 de 2024
Está pensando en usar macros así también en el trabajo real para mantener la programación divertida
En los ejemplos de código se repiten frases como "EXPERTS CLAIM", "SHOCKING DEVELOPMENT" y "PLEASE LIKE AND SUBSCRIBE", así que se ve completamente como un titular de noticias
El título "And That’s a Good Thing" parece resumir bien toda la situación
Propuso la idea de usar "CONSIDERED HARMFUL" como operador posfijo de negación
mientras que "BAN THIS SICK FILTH" podría usarse como una instrucción para lanzar una excepción
También opinó que estaría bien meter en algún lado palabras como "SLAMS" o "SNUBBED"
Los detalles pueden verse en la descripción general del lenguaje en el README de GitHub
Habría sido todavía más perfecto si el nombre del bucle fuera "BREAKING NEWS … KEEP READING TO DISCOVER"
"BREAKING NEWS! Es perfectamente estúpido y adorable"
Está pensando en convencer a su equipo de cambiar el codebase a este lenguaje
Cierra con "FOLLOW ME to find out how it goes"
Ahora solo faltan lenguajes acompañantes Turing completos que le queden bien a este lenguaje
Imagina que "Thunderfoot" sea un lenguaje para guiones de video que refuten artículos de Tabloid,
que "Fisker" sirva para posts troll en comunidades de Discord o Steam,
y que "Shitlist" sea un lenguaje que genere automáticamente awesomelists para GitHub
Este proyecto se siente fresco precisamente porque es un intento agradablemente absurdo
El título del post habría sido perfecto si fuera "SHOCKING DEVELOPMENT"