- Tabloidは、Clickbait(釣り)ニュース見出しの文体でコードを書くチューリング完全なプログラミング言語
- 出力は
YOU WON'T WANT TO MISS 構文で行われ、すべての出力が自動で大文字化され、感嘆符が追加される
- 関数宣言には
DISCOVER HOW TO ... WITH、変数宣言には EXPERTS CLAIM ... TO BE 構文を使用
- ループ構造はなく、代わりに再帰呼び出しで反復を実装し、関数の返却は
SHOCKING DEVELOPMENT で表現される
- プログラムは必ず
PLEASE LIKE AND SUBSCRIBE で終わり、JavaScriptインタプリタとRacket実装が存在する
Tabloid言語の概要
- Tabloidはクリックベイトのニュース見出しスタイルでプログラムを書くよう設計された言語
- サンプルコードでは
DISCOVER HOW TO fibonacci WITH a, b, n の形で関数を宣言
RUMOR HAS IT、WHAT IF、END OF STORY などの文型構文を使う
- 言語のすべての出力は
YOU WON'T WANT TO MISS で始まり、自動的に大文字へ変換され、感嘆符が追加される
主な文法と特徴
- 関数宣言:
DISCOVER HOW TO ... WITH
- 変数宣言/代入:
EXPERTS CLAIM ... TO BE
- 条件文:
WHAT IF ... LIES!
- 関数呼び出し:
A OF B, C
- ブロックスコープ:
RUMOR HAS IT で開始し、END OF STORY で終了
- return文:
SHOCKING DEVELOPMENT
- プログラム終了:
PLEASE LIKE AND SUBSCRIBE
- ブール値:
TOTALLY RIGHT(true)、COMPLETELY WRONG(false)
- 演算子:
PLUS、MINUS、TIMES、DIVIDED BY、MODULO、IS ACTUALLY、BEATS、SMALLER THAN など
言語の動作方式
- TabloidはJavaScriptで書かれたインタプリタで実行できる
- サポートするデータ型は数値、文字列、ブール値
- ループ構文はなく、再帰呼び出しによって反復を実装する
- オンラインインタプリタのほかにRacket実装と補助関数ライブラリも存在する
開発の背景
- 作者はデータベースシステムの課題を避けるためにこの言語を作ったと述べている
- Tabloid以前には、Inkというより実用的な言語を開発した経験がある
標準キーワード一覧
DISCOVER HOW TO...WITH: 関数宣言
RUMOR HAS IT: ブロック開始
A OF B, C: 関数呼び出し
WHAT IF...LIES!: 条件文
END OF STORY: ブロック終了
EXPERTS CLAIM...TO BE: 変数宣言/代入
YOU WON'T WANT TO MISS: 出力
LATEST NEWS ON: ユーザー入力
TOTALLY RIGHT, COMPLETELY WRONG: ブール値
AND, OR: 論理演算
PLUS, MINUS, TIMES, DIVIDED BY, MODULO: 算術演算
IS ACTUALLY, BEATS, SMALLER THAN: 比較演算
SHOCKING DEVELOPMENT: 関数返却
PLEASE LIKE AND SUBSCRIBE: プログラム終了
2件のコメント
チームを説得して、コードベースをこの言語に置き換えるつもりだって? wwwww
Hacker Newsの意見
投稿タイトルを「Will this programming language revolutionize software development? 」にしていたら、もっと面白かった気がする
この言語は以前にも人気があった
2020年の24578749番の投稿、2024年の40964261番の投稿でも話題になっていた
こういうマクロを実務でも使って、プログラミングを 楽しいまま維持してみようかと考えている
コード例には「EXPERTS CLAIM」、「SHOCKING DEVELOPMENT」、「PLEASE LIKE AND SUBSCRIBE」といった文句が繰り返し出てきて、完全にニュース見出しのように見える
「And That’s a Good Thing」というタイトルがこの状況をよく要約しているようだ
「CONSIDERED HARMFUL」を後置否定演算子として使うのはどうか、というアイデアが出ていた
「BAN THIS SICK FILTH」は例外を投げる構文にすると面白そうだ
「SLAMS」や「SNUBBED」のような単語もどこかに入れるとよさそうだという意見だった
詳細はGitHub READMEの言語概要で見られる
ループの名前を「BREAKING NEWS … KEEP READING TO DISCOVER」にしていたら、さらに完璧だった気がする
「BREAKING NEWS! 完璧にバカバカしいのに愛らしい」
チームを説得して、コードベースをこの言語に切り替えてみるつもりだ
「FOLLOW ME to find out how it goes」で締めくくっていた
あとはこの言語にふさわしい チューリング完全な姉妹言語 があればいい
「Thunderfoot」は Tabloid 記事への反論動画スクリプト用、
「Fisker」は Discord や Steam コミュニティ向けのトロール投稿用、
「Shitlist」は GitHub 向けの awesomelist を自動生成する言語として想像していた
このプロジェクトは 愉快にばかげた 試みだからこそ、むしろ新鮮に感じられる
投稿タイトルは「SHOCKING DEVELOPMENT」だったら完璧だった気がする