- Tabloid ist eine Turing-vollständige Programmiersprache, in der Code im Stil von Clickbait-Nachrichtenüberschriften geschrieben wird
- Die Ausgabe erfolgt mit der Phrase
YOU WON'T WANT TO MISS, wobei jede Ausgabe automatisch in Großbuchstaben umgewandelt und mit Ausrufezeichen versehen wird
- Funktionsdeklarationen verwenden die Formulierung
DISCOVER HOW TO ... WITH, Variablendeklarationen die Formulierung EXPERTS CLAIM ... TO BE
- Es gibt keine Schleifenstrukturen; Wiederholungen werden stattdessen durch rekursive Aufrufe umgesetzt, und Funktionsrückgaben werden mit
SHOCKING DEVELOPMENT ausgedrückt
- Programme müssen zwingend mit
PLEASE LIKE AND SUBSCRIBE enden, und es gibt sowohl einen JavaScript-Interpreter als auch eine Racket-Implementierung
Überblick über die Sprache Tabloid
- Tabloid ist eine Sprache, die dafür entwickelt wurde, Programme im Stil von Clickbait-Nachrichtenüberschriften zu schreiben
- Im Beispielcode werden Funktionen in der Form
DISCOVER HOW TO fibonacci WITH a, b, n deklariert
- Es werden satzartige Konstrukte wie
RUMOR HAS IT, WHAT IF und END OF STORY verwendet
- Jede Ausgabe der Sprache beginnt mit
YOU WON'T WANT TO MISS; dabei erfolgt automatisch eine Umwandlung in Großbuchstaben sowie das Hinzufügen von Ausrufezeichen
Wichtige Syntax und Merkmale
- Funktionsdeklaration:
DISCOVER HOW TO ... WITH
- Variablendeklaration/-zuweisung:
EXPERTS CLAIM ... TO BE
- Bedingte Anweisung:
WHAT IF ... LIES!
- Funktionsaufruf:
A OF B, C
- Block-Scope: beginnt mit
RUMOR HAS IT, endet mit END OF STORY
- Rückgabeanweisung:
SHOCKING DEVELOPMENT
- Programmende:
PLEASE LIKE AND SUBSCRIBE
- Boolesche Werte:
TOTALLY RIGHT (true), COMPLETELY WRONG (false)
- Operatoren:
PLUS, MINUS, TIMES, DIVIDED BY, MODULO, IS ACTUALLY, BEATS, SMALLER THAN usw.
Funktionsweise der Sprache
- Tabloid kann über einen in JavaScript geschriebenen Interpreter ausgeführt werden
- Unterstützte Datentypen sind Zahlen, Strings und Boolesche Werte
- Es gibt keine Schleifenkonstrukte; Wiederholungen werden durch rekursive Aufrufe umgesetzt
- Neben dem Online-Interpreter existieren auch eine Racket-Implementierung und eine Hilfsfunktionsbibliothek
Hintergrund der Entwicklung
- Der Entwickler erwähnt, dass er diese Sprache geschaffen habe, um sich vor einer Datenbanksystem-Aufgabe zu drücken
- Vor Tabloid hatte er bereits Erfahrung mit der Entwicklung einer praktischeren Sprache namens Ink
Liste der Standard-Schlüsselwörter
DISCOVER HOW TO...WITH: Funktionsdeklaration
RUMOR HAS IT: Blockbeginn
A OF B, C: Funktionsaufruf
WHAT IF...LIES!: Bedingte Anweisung
END OF STORY: Blockende
EXPERTS CLAIM...TO BE: Variablendeklaration/-zuweisung
YOU WON'T WANT TO MISS: Ausgabe
LATEST NEWS ON: Benutzereingabe
TOTALLY RIGHT, COMPLETELY WRONG: Boolesche Werte
AND, OR: Logische Operatoren
PLUS, MINUS, TIMES, DIVIDED BY, MODULO: Arithmetische Operatoren
IS ACTUALLY, BEATS, SMALLER THAN: Vergleichsoperatoren
SHOCKING DEVELOPMENT: Funktionsrückgabe
PLEASE LIKE AND SUBSCRIBE: Programmende
2 Kommentare
Du willst dein Team also davon überzeugen, die Codebase auf diese Sprache umzustellen? Hahahahaha
Hacker-News-Kommentare
Der Beitragstitel wäre noch lustiger gewesen als „Will this programming language revolutionize software development? “
Diese Sprache war auch früher schon beliebt
In Beitrag Nr. 24578749 aus dem Jahr 2020 und Beitrag Nr. 40964261 aus dem Jahr 2024 war sie ebenfalls Thema
Ich überlege, solche Makros auch in der echten Arbeit einzusetzen, um Programmieren unterhaltsam zu halten
Im Codebeispiel wiederholen sich Formulierungen wie „EXPERTS CLAIM“, „SHOCKING DEVELOPMENT“ und „PLEASE LIKE AND SUBSCRIBE“, sodass es komplett wie eine Nachrichtenschlagzeile aussieht
Der Titel „And That’s a Good Thing“ scheint die Situation gut zusammenzufassen
Es wurde die Idee eingebracht, „CONSIDERED HARMFUL“ als postfixen Negationsoperator zu verwenden
und „BAN THIS SICK FILTH“ könnte als Syntax zum Auslösen einer Ausnahme dienen
Auch Wörter wie „SLAMS“ oder „SNUBBED“ sollte man irgendwo unterbringen
Details finden sich in der Sprachübersicht im GitHub-README
Noch perfekter wäre es gewesen, den Schleifennamen zu „BREAKING NEWS … KEEP READING TO DISCOVER“ zu machen
„BREAKING NEWS! Vollkommen dämlich und trotzdem liebenswert“
Ich denke darüber nach, das Team zu überzeugen, die Codebasis auf diese Sprache umzustellen
Abschließend heißt es: „FOLLOW ME to find out how it goes“
Jetzt fehlen dieser Sprache nur noch passende Turing-vollständige Begleitsprachen
„Thunderfoot“ stelle ich mir als Sprache für Videoskripte vor, die Tabloid-Artikel widerlegen,
„Fisker“ als Sprache für Troll-Posts in Discord- oder Steam-Communitys,
und „Shitlist“ als Sprache, die automatisch awesomelists für GitHub erzeugt
Dieses Projekt wirkt gerade deshalb erfrischend, weil es ein herrlich absurdes Unterfangen ist
Der Beitragstitel wäre mit „SHOCKING DEVELOPMENT“ perfekt gewesen