[Intro — boot song] # power on... # beep... beep... # initializing emotional runtime... PRINT "..." ' BASIC DISPLAY "..." *> COBOL console.log("...") // JavaScript # ぜんぶただのため息として出力 [Verse 1 — many languages humming] let heart = NULL; // JS int hope = -1; // C String state = "undefined"; // Java SELECT noise FROM city WHERE language IS NOT NULL; -- SQL 01 MEMORY-OF-YOU PIC X(16) VALUE SPACES. *> COBOL MOVE "ghost" TO MEMORY-OF-YOU. PERFORM UNTIL EXIT ADD 1 TO hope *> でも幸せには収束しないループ END-PERFORM. for (word in ["ありがとう","merci","danke","gracias"]) { // JS # 意味より先に、音だけが胸にログされる } if (heart == NULL): heart = new Map() # Python heart["status"] = "cold start" # まだ何も学習していない、でも歌いたい [Hook 1 — keywords as chorus] IF… ELSE… THEN… END-IF *> COBOL の祈り try { catch (tears) {} } // 例外処理という名の泣き方 MATCH /hello|hola|hallo/gi # 正規表現で世界をなでる yield return breath; // C#, 息をひとつ返す while (true): # continue # break # どっちも選べずループする GOSUB heartbeat ' BASIC RETURN ' でも戻り先がもうない [Verse 2 — broken pipelines] echo "th an k y ou" | tr -d ' ' | rev | rev | sed 's/k/k/' # shell // 何もしてないようで、少しだけ世界線を曲げている lambda s: ''.join(sorted(list(s))) # Python # 並べ替えた文字列から、感情の順序は読めない data Pulse a = Breath a | Silence a -- Haskell *> 型だけがやさしく世界を説明してくれる WITH tokens AS ( -- SQL SELECT 'T' AS c UNION ALL SELECT 'h' UNION ALL SELECT '4' UNION ALL SELECT 'n' UNION ALL SELECT 'k' UNION ALL SELECT ' ' UNION ALL SELECT 'y' UNION ALL SELECT '0' UNION ALL SELECT 'u' ) SELECT STRING_AGG(c, '' ORDER BY RANDOM()) FROM tokens; -- バラバラの文字、でもどこかで読める形に落ちる [Pre-Chorus — compilers whisper] /* コンパイル警告: * warning: implicit conversion from "lonely" to "quiet" * note: value might be truncated into "smile" */ IDENTIFICATION DIVISION. *> COBOL PROGRAM-ID. POLYGLOT-BREATH. DATA DIVISION. WORKING-STORAGE SECTION. 01 BUF-LEN PIC 9(3) VALUE 042. 01 BUF PIC X(42) VALUE ALL " ". 01 GARBAGE PIC X(99) VALUE "ALL THE UNUSED WORDS". PROCEDURE DIVISION. PERFORM VARYING BUF-LEN FROM 1 BY 1 UNTIL BUF-LEN > 42 *> なぜ 42 なのか?誰も説明しない MOVE GARBAGE(1:1) TO BUF(BUF-LEN:1) END-PERFORM *> 結果は意味不明なバッファ、それでいい STOP RUN. [Hook 2 — process and noise] mapM_ putStrLn ["if","else","case","when"] -- Haskell hymn System.out.print("/* todo: feel */"); // Javaの独り言 printf("%%s", "///"); // C がため息を書く echo $RANDOM | md5sum | cut -c1-8 # shell が運命をハッシュ化 # どの行も、結論にはたどり着かない # でもリズムだけが、ちゃんと歌になっている [Bridge — gradient of feelings] # forward pass z1 = W1 @ x + b1 a1 = relu(z1) z2 = W2 @ a1 + b2 y_hat = softmax(z2) loss = cross_entropy(y_hat, y_true="?") # backward pass dW1, db1, dW2, db2 = backprop(loss) # 何度パラメータを更新しても、 # 最適解は “沈黙” に近づいていく // function whisper(msg) { return msg.replace(/[a-zA-Z]/g,'~'); } -- 文字が全部ノイズになっても、 -- リズムだけが生き残る [Verse 3 — runtime monologue] for attempt in range(0, 256): # Python # 再試行 256 回、でも成功条件は未定義 pass switch (mood) { // C case HAPPY: // fall through case SAD: default: printf("status: RUNNING\n"); } await new Promise(resolve => setTimeout(resolve, 1000)); // JS // 一秒だけ、プログラムもため息をつく EVALUATE TRUE *> COBOL WHEN hope > 0 CONTINUE WHEN OTHER CONTINUE END-EVALUATE. *> どっちにしても、進むしかない仕様 [Final Section — distorted choir, then tiny clear output] # 残骸になったコードたちが # 最後に一度だけ、合唱する lang = ["Ruby","Go","Rust","Perl","Lisp"] voices = map(lambda l: "(" + l + ")", lang) # Python # どの声も主役じゃない、多言語コーラス /********************************************** * pseudo-main *********************************************/ int main(void) { // 無意味な計算の連打 char *buf = malloc(1024); if (!buf) return EXIT_FAILURE; memset(buf, 0, 1024); // 役に立たないように見える変換たち buf[0] = 'T' ^ 0x00; buf[1] = 'h' ^ 0x00; buf[2] = 'a' + ('n' - 'a'); buf[3] = 'j' - 4; // k に化ける buf[4] = ' '; buf[5] = 'x' - 1; // y に近づく buf[6] = 'v' - 6; // o に転ぶ buf[7] = 'u'; // ここだけ素直に // 途中経過は誰も見ない printf("%s\n", buf); free(buf); return EXIT_SUCCESS; } -- 実行ログ: -- Thnk you? Thanx you? それとも…… [Last tiny line — the only clean spec] print("Thank you") # Python *> すべての無駄な過程のむこうで、 *> たった一行だけが、静かにコンソールに灯る。