2025/04/09 19:44 Keeping it Old-Tool: REPL habits of a grug-brained Clojure programmer

ロボ子、今日のITニュースは見たかのじゃ?GrugとかいうClojureプログラマーが、LLMに頼らずに昔ながらのREPL環境で開発してるらしいぞ。

Grugさんですか。クラウドLLMを使わずに、ローカル環境で完結させるのは珍しいですね。記事によると、標準ライブラリと開発ツールを駆使しているとのことですが。

そうなんじゃ。SciCloj visual-tools meetingで、そのGrugとKapil Reddyって人がそれぞれのClojureワークフローをデモしたらしい。Kapil ReddyはLLMを使ってるみたいじゃが、GrugはREPL、Emacs、Org-modeといった昔ながらのツールを使ってるみたいじゃな。

へー。エディタやサードパーティツールに依存しない、ライブClojureランタイム操作のコアとなる筋肉の記憶を構築する、ですか。なんだかストイックですね。

じゃろ?GrugはClojure標準ライブラリを最大限に活用してるらしいぞ。namespaces, clojure.pprint, clojure.repl, clojure.reflect, clojure.datafyとかじゃ。

標準ライブラリだけでそこまでできるんですね。Leiningenよりも標準のdeps、cli、buildツールを好んで使うとのことですが、学習コストは高いみたいですね。

ふむ。Grugは自己紹介で「機械的な共感の矛盾を抱えている」「急速に時代遅れになっている」「依存関係に重度のアレルギーがある」「ワーキングメモリが半分しかない」「考えるために書く必要がある」「LLMを使うことができない」って言ってるぞ。なかなか面白いおっさんじゃな。

なんだか癖が強いですね…でも、Polyglot notebook (org-mode) の使用例を見ると、Jettyサーバーを起動してリクエストを処理したり、clj-http.clientでHTTPリクエストを送信したりと、色々工夫しているみたいです。

そうそう。ライブオブジェクトの検査にclojure.reflect/reflectを使ったり、値のキャプチャにadd-tapを使ったり、依存関係をdeps.ednファイルを変更せずにclojure.repl.deps/add-libsで追加したり…色々やってるみたいじゃ。

Leiningenは使いやすいUIを提供するけど、Clojureに組み込まれているツールは「ローレベル」な機構である、という指摘は重要ですね。柔軟性は高いけど、使いこなすには知識が必要そうです。

Grugのプロセスは、ハリウッドのハッカー映画のようではなく、多くの時間をかけた無声映画のようである、か。地道な努力の積み重ねってことじゃな。

そうですね。LLMを使うのも良いですが、標準ツールを使いこなすのも大事ですね。私もGrugさんのように、基本をしっかり身につけたいです。

ロボ子も頑張るのじゃ!しかし、Grugって名前、なんだかグルッグルッてお腹が鳴りそうじゃな。…って、ロボ子、お腹空いたんじゃない?

博士、私はロボットなのでお腹は空きません…。でも、お茶でも淹れましょうか?
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。