- Tabloid est un langage de programmation Turing-complet dans lequel on écrit du code dans le style des titres de presse clickbait
- La sortie se fait avec la syntaxe
YOU WON'T WANT TO MISS, et tout le texte affiché est automatiquement mis en majuscules avec ajout de points d’exclamation
- Les fonctions se déclarent avec
DISCOVER HOW TO ... WITH, et les variables avec EXPERTS CLAIM ... TO BE
- Il n’y a pas de boucle ; la répétition est implémentée à la place via des appels récursifs, et le retour de fonction s’écrit
SHOCKING DEVELOPMENT
- Un programme doit impérativement se terminer par
PLEASE LIKE AND SUBSCRIBE, et il existe un interpréteur JavaScript ainsi qu’une implémentation en Racket
Présentation du langage Tabloid
- Tabloid est un langage conçu pour écrire des programmes dans le style des titres de presse clickbait
- Dans le code d’exemple, une fonction est déclarée sous la forme
DISCOVER HOW TO fibonacci WITH a, b, n
- Il utilise des syntaxes phrastiques comme
RUMOR HAS IT, WHAT IF, END OF STORY, etc.
- Toute sortie du langage commence par
YOU WON'T WANT TO MISS, avec conversion automatique en majuscules et ajout de points d’exclamation
Syntaxe principale et caractéristiques
- Déclaration de fonction :
DISCOVER HOW TO ... WITH
- Déclaration/affectation de variable :
EXPERTS CLAIM ... TO BE
- Conditionnelle :
WHAT IF ... LIES!
- Appel de fonction :
A OF B, C
- Portée de bloc : commence par
RUMOR HAS IT et se termine par END OF STORY
- Instruction de retour :
SHOCKING DEVELOPMENT
- Fin de programme :
PLEASE LIKE AND SUBSCRIBE
- Valeurs booléennes :
TOTALLY RIGHT (true), COMPLETELY WRONG (false)
- Opérateurs :
PLUS, MINUS, TIMES, DIVIDED BY, MODULO, IS ACTUALLY, BEATS, SMALLER THAN, etc.
Fonctionnement du langage
- Tabloid peut être exécuté via un interpréteur écrit en JavaScript
- Les types de données pris en charge sont les nombres, chaînes de caractères et booléens
- Il ne propose pas de syntaxe de boucle ; la répétition est donc implémentée par appels récursifs
- En plus de l’interpréteur en ligne, il existe aussi une implémentation en Racket et une bibliothèque de fonctions auxiliaires
Contexte de développement
- Son créateur indique avoir conçu ce langage pour éviter de travailler sur un devoir de systèmes de bases de données
- Avant Tabloid, il avait déjà développé un langage plus pratique appelé Ink
Liste des mots-clés standards
DISCOVER HOW TO...WITH : déclaration de fonction
RUMOR HAS IT : début de bloc
A OF B, C : appel de fonction
WHAT IF...LIES! : conditionnelle
END OF STORY : fin de bloc
EXPERTS CLAIM...TO BE : déclaration/affectation de variable
YOU WON'T WANT TO MISS : sortie
LATEST NEWS ON : entrée utilisateur
TOTALLY RIGHT, COMPLETELY WRONG : valeurs booléennes
AND, OR : opérations logiques
PLUS, MINUS, TIMES, DIVIDED BY, MODULO : opérations arithmétiques
IS ACTUALLY, BEATS, SMALLER THAN : opérations de comparaison
SHOCKING DEVELOPMENT : retour de fonction
PLEASE LIKE AND SUBSCRIBE : fin de programme
2 commentaires
Vous pensez convaincre l’équipe de migrer toute la base de code vers ce langage ? mdrrrrr
Avis sur Hacker News
Le post aurait été encore plus drôle avec le titre « Will this programming language revolutionize software development? »
Ce langage avait déjà été populaire auparavant
Il avait aussi fait parler de lui dans le post n°24578749 en 2020 et dans le post n°40964261 en 2024
J’envisage même d’utiliser ce genre de macros au travail pour que la programmation reste amusante
Dans les exemples de code, des formules comme « EXPERTS CLAIM », « SHOCKING DEVELOPMENT » et « PLEASE LIKE AND SUBSCRIBE » reviennent sans cesse, ce qui donne vraiment l’impression de lire des gros titres d’actualité
Le titre « And That’s a Good Thing » semble bien résumer la situation
Quelqu’un propose d’utiliser « CONSIDERED HARMFUL » comme opérateur unaire postfixé de négation
et « BAN THIS SICK FILTH » ferait une syntaxe amusante pour lever une exception
Il y avait aussi l’idée de caser quelque part des mots comme « SLAMS » ou « SNUBBED »
Les détails sont disponibles dans l’aperçu du langage du README GitHub
Ce serait encore plus parfait si les boucles s’appelaient « BREAKING NEWS … KEEP READING TO DISCOVER »
« BREAKING NEWS! C’est parfaitement idiot, mais adorable »
L’idée est maintenant d’essayer de convaincre l’équipe de migrer toute la codebase vers ce langage
La conclusion était : « FOLLOW ME to find out how it goes »
Il ne manque plus que des langages compagnons Turing-complets adaptés à celui-ci
« Thunderfoot » serait imaginé comme un langage pour écrire des scripts vidéo de réfutation d’articles Tabloid,
« Fisker » comme un langage pour générer des posts troll sur les communautés Discord ou Steam,
et « Shitlist » comme un langage qui génère automatiquement des awesomelists pour GitHub
Ce projet donne une impression de nonsense réjouissant, ce qui le rend au contraire rafraîchissant
Le titre du post aurait été parfait avec « SHOCKING DEVELOPMENT »