11 points par GN⁺ 2025-11-10 | 2 commentaires | Partager sur WhatsApp
  • 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

 
yangeok 2025-11-12

Vous pensez convaincre l’équipe de migrer toute la base de code vers ce langage ? mdrrrrr

 
GN⁺ 2025-11-10
Avis sur Hacker News
  • Le post aurait été encore plus drôle avec le titre « Will this programming language revolutionize software development? »

    • L’idée d’avoir des messages d’erreur du genre « YOU WON'T BELIEVE WHAT YOU'LL SEE IN LINE ${line_number} » semblait excellente
    • C’était impressionnant de voir le post bien marcher tout en respectant la tradition anti-clickbait de la communauté
  • 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

    • Je ne pensais pas qu’on pouvait autant s’amuser avec seulement quelques mots-clés
      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

    • En reprenant une tournure britannique, « IN BOOST TO x » pourrait servir à incrémenter de 1, « IN BLOW TO x » à décrémenter de 1,
      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 »

    • Avec une blague ajoutant que le programme ne se termine pas parce qu’il manque « PLEASE LIKE AND SUBSCRIBE »
  • 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

    • « .BOT » serait un langage de contrôle de fermes de bots tournant sur la machine virtuelle X, présenté comme le successeur de BitMusk
  • 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 »