- Tabloid é uma linguagem de programação Turing-completa em que o código é escrito no estilo de manchetes de notícias clickbait
- A saída é feita com a instrução
YOU WON'T WANT TO MISS, e toda saída é automaticamente convertida para MAIÚSCULAS com adição de exclamações
- As declarações de função usam
DISCOVER HOW TO ... WITH, e as declarações de variável usam EXPERTS CLAIM ... TO BE
- Não há estruturas de loop; em vez disso, repetições são implementadas com chamadas recursivas, e o retorno de função é expresso com
SHOCKING DEVELOPMENT
- Os programas devem terminar obrigatoriamente com
PLEASE LIKE AND SUBSCRIBE, e existem um interpretador em JavaScript e uma implementação em Racket
Visão geral da linguagem Tabloid
- Tabloid é uma linguagem projetada para escrever programas no estilo de manchetes jornalísticas clickbait
- No código de exemplo, a declaração de função aparece no formato
DISCOVER HOW TO fibonacci WITH a, b, n
- Ela usa sintaxes em forma de frase, como
RUMOR HAS IT, WHAT IF e END OF STORY
- Toda saída da linguagem começa com
YOU WON'T WANT TO MISS, com conversão automática para maiúsculas e adição de exclamações
Principais sintaxes e características
- Declaração de função:
DISCOVER HOW TO ... WITH
- Declaração/atribuição de variável:
EXPERTS CLAIM ... TO BE
- Condicional:
WHAT IF ... LIES!
- Chamada de função:
A OF B, C
- Escopo de bloco: começa com
RUMOR HAS IT e termina com END OF STORY
- Retorno:
SHOCKING DEVELOPMENT
- Encerramento do 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 etc.
Como a linguagem funciona
- Tabloid pode ser executada por meio de um interpretador escrito em JavaScript
- Os tipos de dados suportados são números, strings e booleanos
- Não há instruções de loop; a repetição é implementada por meio de chamadas recursivas
- Além do interpretador online, também existem uma implementação em Racket e uma biblioteca de funções auxiliares
Contexto de desenvolvimento
- O criador menciona que fez essa linguagem para escapar de uma tarefa de sistemas de banco de dados
- Antes de Tabloid, ele já havia desenvolvido uma linguagem mais prática chamada Ink
Lista de palavras-chave padrão
DISCOVER HOW TO...WITH: declaração de função
RUMOR HAS IT: início de bloco
A OF B, C: chamada de função
WHAT IF...LIES!: condicional
END OF STORY: fim de bloco
EXPERTS CLAIM...TO BE: declaração/atribuição de variável
YOU WON'T WANT TO MISS: saída
LATEST NEWS ON: entrada do usuário
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 comparação
SHOCKING DEVELOPMENT: retorno de função
PLEASE LIKE AND SUBSCRIBE: encerramento do programa
2 comentários
Está pensando em convencer a equipe a migrar o codebase para essa linguagem? kkkkkkk
Comentários do Hacker News
Teria sido mais divertido se o título do post fosse “Will this programming language revolutionize software development?”
Essa linguagem já tinha feito sucesso antes
Também virou assunto no post 24578749 em 2020 e no post 40964261 em 2024
Estou pensando em usar macros assim no trabalho de verdade para manter a programação divertida
No exemplo de código, frases como “EXPERTS CLAIM”, “SHOCKING DEVELOPMENT” e “PLEASE LIKE AND SUBSCRIBE” se repetem, então parece totalmente uma manchete de notícia
O título “And That’s a Good Thing” parece resumir bem a situação
Surgiu a ideia de usar “CONSIDERED HARMFUL” como operador de negação pós-fixado
e “BAN THIS SICK FILTH” poderia ser usado como sintaxe para lançar uma exceção
Também houve a sugestão de encaixar palavras como “SLAMS” ou “SNUBBED” em algum lugar
Os detalhes podem ser vistos na visão geral da linguagem no README do GitHub
Ficaria ainda mais perfeito se o nome do loop fosse “BREAKING NEWS … KEEP READING TO DISCOVER”
“BREAKING NEWS! Perfeitamente idiota e adorável”
Estou pensando em convencer a equipe a migrar o codebase para essa linguagem
E termina com “FOLLOW ME to find out how it goes”
Agora só faltam linguagens companheiras Turing-completas à altura dessa
“Thunderfoot” seria uma linguagem para roteiros de vídeo rebatendo artigos do Tabloid,
“Fisker” seria para posts troll em comunidades do Discord ou da Steam,
e “Shitlist” seria uma linguagem que gera automaticamente awesomelists para o GitHub
Este projeto parece uma tentativa deliciosamente absurda, e justamente por isso soa revigorante
O post teria sido perfeito se o título fosse “SHOCKING DEVELOPMENT”