しかし注文させようとする何かはいるのかもしれない。
僕はMacユーザなのだが、最近よく使っているコマンドの一つがレガシーになっていることを知った。具体的には launchctl loadで、これは何かと言うと、常時稼働や定期的に実行するプログラムを登録するもので、たとえば「毎日4時にバックアップを実行する」とかいったことができる。
で、このコマンドが、実はレガシーコマンドになっていることを知った。しかもMacOS 10.11、つまりEl Captain以降らしいので、もうだいぶ長いことたっている。今は launchctl bootstrapを使うのが推奨、ということになっているらしい。長くなった。さらにこのコマンドについて調べて見ると、なかなかにケッタイなもので、学名で野菜を注文しろと言われている気分になった。
いつの間にかレガシーだった
やや詳細な話になるが、 bootstrapのコマンドは従来よりもだいぶ奇妙な印象を受ける。比較すると明らかだ。
# load
launchctl load ~/Library/LaunchAgents/com.example.agent.plist
# bootstrap
launchctl bootstrap gui/501 ~/Library/LaunchAgents/com.example.agent.plistgui/501とは何なのか意味不明だが、manによるとまず前半部のguiはドメインであるらしい。他に systemやuser、pidなどがある。また後半の501はuidであるので、idコマンドで調べる必要がある。細かな権限制御が可能なのだろうと察せられる。
そんな細かな制御をしたい、というニーズがどれほどあるのかは知らない。内部的には必要なんだろうか?ただ少なくとも僕はパスと権限が一体化した従来の方式で困ったことはない。実際、LaunchAgentで調べると、2025年の記事でも依然として皆 loadを使っているという事実を鑑みるに、だいたいみんなそうなのだろう。
今までやりたかったけどできないことができるようになる、わけでもないし、今までのやり方は深刻にまずい、というわけでもない。まぁもしかすると内部的には統一的で美しい表現なのかもしれないが、内部的な美しさを実現するためにMacを使っているわけではない。システム側では有用という可能性はあるが、とりあえず今はユーザの話だ。
ユーザの話として確かなことは、bootstrapはわかりづらいし面倒、ということだ。名前自体が動詞+名詞なのかもしれないが覚えづらい。またドメインの指定とパスの管理は、明らかに管理するところが重複しており、これはなんだか役場で「何回名前と住所書かせるんだよ!」と感じるあの感覚に似ている。プログラマは役所の手続きを嫌う人種だと思っていたが、最近はむしろ役人なんだろうか、と思うことも多い。
そういうわけだから、僕はこれからもload/unloadを使うんだろうなぁと思った。使ってる。
学名で野菜を注文する
bootstrapをどこで知ったのかはあまり覚えていないが、多分LLMとのチャットだと思う。なんだそれ、と思ってその時は放置したんだけれど、後で気になって調べて見ると、どうやら上記のような感じらしかった。こういう込み入った情報の整理には、LLMは役に立つ。
ただLLMは「まさにbootstrapが最新のやり方であり、推奨です!」というのだけれど、僕は見た瞬間に「なんかケッタイなコマンドだなぁ」と感じた。
それで、公式推奨という権威ではなく、機能的な面で、KISS原則などと照らし合わせて、運用まで踏み込んでなお適切といえるのか、などと色々と突っ込んで聞いてた。すると、LLMの同調主義的なところもあって、「ぶっちゃけ従来のloadでも問題ないですけどね。Appleが廃止する可能性はあるってくらいですかね」とだいぶトーンダウンした。「現実的に廃止はしないんじゃないの」と聞いたら「でしょうね」だった。うーんこの。
まぁ僕の聞き方によるところは大きい。「絶対に正しいというやり方はなく、すべてはトレードオフ」「必ず何かを犠牲にしている。何を犠牲にしているのか。その評価は」といったもので、このような聞き方をすればLLMはまず話者に対して同調的になる。正しいものはないという前提にたつと、どうしても話者の主観が評価軸として選ばれやすくなるのだろう。
とはいえそれを差っ引いて考えても、やはりこのdirをGet-ChildItemとするような行為を進歩とは思えなかった。学名で野菜を注文するバカはいない。そういう違和感がある。
設計主義の果てに
僕のこの違和感を突き詰めると、設計主義的、官僚主義的なところを感じ取った、のかもしれない。それは現場の実用と乖離している。特に最近のソフトウェアはそういう感じがある。権威がこうしろと言って、我々下々のものはへへーと言って頭を下げる。なんかベストプラクティスとかいったりする。すぐに変わるベストってなんだ、という疑問について「ベストプラクティスとは変わり続けることだ」などと言ったりする。
世界に真理があったとして、真理が変わり続けるとしたらそれは真理と言えるのか、と思うが、とりあえずお上の御触れが変わり続けるのは世の常だ。なので、ベストプラクティスが何かは謎だが、とりあえず世界の真理よりはお上の御触れに近いと思われる。
いったいソフトウェアとはそんなものだっただろうか、プログラマとはそんな職業だったか、と思うのだけれど、これはソフトウェアやプログラマを特別に考え過ぎだったかな、と思う。単に業種として若いために、黎明期の精神がまだ言い伝えられているだけで、実態としては他の職種と同じく、既に官僚的な側面が強くなっているのかもね。
それは社会の縮図かもしれない。今日もドライバーが不足してロジスティクスの危機が叫ばれ、水道技術者が足りずインフラの老朽化がヤバいと言われる。でも現場の待遇は変わらないので、増えない。増えるのは政府系コンサルばかりだ。かつて彼らは誇りある労働者だったはずだが、今は必要なのに皆が押し付け合う仕事になっている。不思議だ。しかし国家はそのようにして、栄え、衰退していくものなのだろう。
とはいえ、そんな感じでも僕らは生きているのだし、とりあえず今日もみんな相変わらずlaunchctl loadでバックアップしている。まぁなんでもいいんだけれど、plistのややこしさはいい加減どうにかなりませんかね。

コメント