Tabloid - 釣り見出しの文体でコーディングするプログラミング言語
(tabloid.vercel.app)- 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」だったら完璧だった気がする