icfpc 2024 、というか 3d 言語良かったという話

もともと雑だった記憶がより粗雑になり、最後に icfpc にマジメに参加したのっていつだったっけ、車焼いたやつ?くらいの感じです。最近の icfpc は昔の言葉で言うとマラソンマッチ的、現代語で言うと AHC 的な印象を持っています。これらは今でも嫌いではないのですが、フツーに仕事でマラソンタスクがあって、時間がなくて取り組めていないという状況だと、ちょっと参加するモチベが湧きづらい、そんな感じです

がまぁ今回は公式サイトから張られてる画像やリンクが、明らかに icfpc の伝説回であるところの 2006/2007 を参照しているので、期待があったのでした。いや、なんか、伝説回というの、好みや、当時と今のレベル差、僕自身の過去の美化、なんかのいろいろな効果が、あるとは思います。でも、それらを全てさっぴいたとしても、主催者が投下した労力という点で、 2006/2007 はここ20年で最大級のものであった、まぁこれはかなり確実に「それはそう」ではないでしょうか。本当にビックリしたんですよあれ。プログラミング好きだけど、こんなに楽しいものだったのか!って、そういうレベルの体験だったんです

まぁ本題の icfpc 2024 。色々良かったようなのですが (ちゃんと全てを理解できるレベルで参加できてない) 、その中にあった 3d という esolang は大変良かったです。最近のことは把握できていないので、 X という言語に似た要素あったよ、的な話があるかもなのですが、私が認識している中では、 esolang としては傑出したデキだったのではないかと思っています

僕が 3d 言語すばらしいと思ったところは以下のような点です

1. 2D 空間に配置する言語である
2. 時間遡行がある
3. 並列実行がある
4. 理不尽に不便でない程度の不便さ

1 はまぁ、そのまんまで、僕は 2D 空間に命令を配置する言語が好きです。これは好みでしょう

2 は一番デカい新規性だと思います。時間遡行を取り込む esolang は他に存在したと思う (記憶が腐ってるので確たる言葉で書けない) んですが、今回の 3d 言語ほど綺麗な形で esolang に取り込んだ例は……たぶんないと思っています。あったら教えてください

3 もなんか、メインストリーム言語は並列実行が前提に少しずつなっていっているのに、 esolang は基本直列実行なのはダサいよね、みたいな気持ちがあって、そういう意味で良かったです。まぁ 3d 言語はプログラム言語というよりは回路の配線的な感が強く、回路となると自然に並列性が存在するのはそれはそう、という気もしますが

4 について、かなり細かい、命令セットの定義がほど良い感じでした。命令が発行されるか否かによって入力が消えたり残ったりするであるとか、上下左右で対称性がないのでゴルフするなら熟考が必要であるとか。あと、加算と==と!=はあるが、大なり小なりの比較はない、みたいなのは良いラインだと思いますね……僕だったら除算は二出力命令にしたかな、という気はします

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h