1 ポイント 投稿者 GN⁺ 2025-12-13 | 1件のコメント | WhatsAppで共有
  • 個人向けコードエディタ Boo を開発した筆者が、プロジェクトを一時中断し、新しいプログラミング言語 を作る理由を説明
  • Boo は 人間中心のキーボードナビゲーションLSP 代替システム を備えた Rust ベースのエディタで、商用化よりも個人利用が目的
  • 反復的な開発プロセスは創造性を低下させると考え、インスピレーションを与えるソフトウェア を作る喜びを重視
  • レゴブロックの組み立てゼルダの伝説 ブレス オブ ザ ワイルド を例に、記憶に残る創作物の重要性を強調
  • 成功の公式に従うよりも、自分の興味と学びを中心にした開発哲学 を保ち、Boo を将来的に自作言語で書き直す計画

Boo プロジェクトと開発動機

  • Boo は筆者が 自分のためのコードエディタ として作ったプロジェクトで、大衆的な成功よりも個人的な有用性に重点を置いている
    • Boo は 人間中心のキーボードナビゲーション 機能を備え、LSP(Language Server Protocol) の代わりに、より高速で OS への負荷が少ないシステムを使用
    • 現在は日常業務に使える程度には動作しているが、オープンソースとして配布する予定はない
  • Boo と Rio Terminal はどちらも Rust で書かれており、似た構造と配布プロセスを持つ
    • こうした類似性が反復作業のように感じられ、開発の楽しさを減少させている

創作とインスピレーションの関係

  • レゴブロック遊び を例に、毎回異なる形を作れる自由さこそが創作の楽しさだと説明
    • 同じ部品を繰り返し使うだけでなく、外部の要素を加えて新しい結果を生み出す過程が興味の核心
  • プログラミングが反復的になるほど、「ワオ」効果 を持つ創作物が生まれる可能性は低くなる
    • インスピレーションを受けてこそ、インスピレーションを与えるソフトウェア を作れる点を強調

記憶に残るソフトウェアの例

  • ゼルダの伝説 ブレス オブ ザ ワイルド を例に、ゲームをしなかった人たちまでコンソールを購入させた完成度に言及
    • プレイ後も長く記憶に残る体験を提供する作品の力を強調
  • このレベルのこだわりを込めて作られたソフトウェアが、人々に 感情的な印象 を残すと説明

Boo の中断と新しい言語開発

  • Boo は 事業目的ではない趣味プロジェクト であり、収益や締め切りはない
    • VS Code のような大規模プロジェクトを作る意図もなく、無理に進めることもしない
  • インスピレーションが戻ったときに再開できるよう、Boo を 一時中断 し、現在は 独自のプログラミング言語 を開発中
    • 長期的には Boo をこの言語で書き直す計画

開発哲学と姿勢

  • 新しい言語の開発は多くの作業を伴うが、筆者はそれを 楽しい学習過程 と捉えている
    • バイナリとコンパイラ への理解を深めながら、自分のペースで進めている
  • 外部の 成功の公式や助言 に従うのではなく、自分の考え方と興味を中心に開発を続けている
  • この文章自体も Boo を使って書かれた

1件のコメント

 
GN⁺ 2025-12-13
Hacker News の意見
  • 朝起きてコーヒーを飲み、家族が寝てしまったので午後が自由だったという文章を読んで、いったいどういう時間帯で暮らしているのか気になった。午後に寝る家族なのか、夕方に起きて一日を始める人たちなのかと想像した

    • もしかして彼の別の趣味は麻酔なのでは、という冗談を言ってみる。昼寝する子どもがいるのかもしれないが、それでも自由時間はせいぜい2時間くらいだろう
    • 家族と時間を過ごさないことを楽しんでいるような態度が少し奇妙に感じられる。それを祝うようなことではない気がする
    • “Breath of the Wild” のような例を挙げているのを見ると、まるで別次元のブログ記事を読んでいる気分になる
    • たぶんスペインかもしれない。あの伝説的なシエスタのせいかも
  • 「このエディタは私を楽しませるために存在する」という言葉が新鮮に感じられる。最近はどんなサイドプロジェクトもオープンソースや SaaSに発展させなければならないという圧力があるが、それがかえって創造性を殺してしまうことが多い。Boo や Rio のような実験的なプロジェクトは、こうした自由から生まれるのだと思う

    • オープンソースは良いが、パッチは受け付けずコードだけ公開するというのもありだと思う
    • 最近はオープンソースや SaaS 以上に、何もかもがエンタープライズ級の規模でなければならないという空気のほうが深刻だと感じる。小さな言語、実験、セルフホスティング、DIY精神がむしろカウンターカルチャーになってしまった
    • 「私を楽しませるために存在する」という言葉に共感する。(Emacs)
  • 「自分のために作った」というのは、多くの芸術家のやり方だ。Tolkien もそうだったし、たいていは自分のために作り、あとで世に見せる。だが多くの場合、誰にも関心を持たれないか、死後になってようやく注目される。それでも構わない。大切なのは、想像力を外に表現しようとする人間の本能だからだ

    • 私も自分のキャンバスライブラリをそういう気持ちで作った。詩をウェブサイト上で新しい形で表現したくて始めたのだが、いつの間にか10年以上も余暇を費やすことになった。成果物はこの詩のページにある
    • 昔、怒りに任せて書いたメールが、友人の提案で地元紙の**オピニオン記事(op-ed)**として掲載されたことがある。自分の文章を誰かが気にかけてくれたのが嬉しかった
    • 本当に自分のために作るのなら、他人の目を気にしないべきだ。私も昔は「他の人はどう思うだろう」と悩んでいたが、本当に自分のために作り始めてからは感じ方がまったく変わった
    • 以前は芸術家が自分のビジョンを追求するにはパトロン(patron)が必要だった。今では支援は民主化されたが、その代わりクリック数が生計を左右する。裕福な後援者はいなくなり、その代わり暗号資産や AIにお金が集まるのが残念だ
    • 「死後に注目される芸術家」と聞くと、片耳のないオランダ人画家を思い出す
  • プログラミングが反復的になると、『おお』という要素は減っていく。だが yt-dlp のようにさまざまなサイトをサポートするプロジェクトは例外だ。無数のデータパーサを書くのは退屈だが、結果として「どこでも動く」という感覚をもたらす

  • 私は人々に感情を抱かせるソフトウェアを作っている — 主に怒りを。結局のところ、ソフトウェアには無関心を向けられるものと、人々が文句を言うほど使われるものの2種類しかない

    • たとえば Microsoft Teams や Office 365 は確かに感情を引き起こすが、喜びではない
    • DRM ソフトウェアも同じだ。特に Sony BMG ルートキット事件 のようなケースは伝説的だ
    • 私も毎日ぶつかる問題を解決しようとして作ったツールが、いちばん質が高いものになった。あまりに早く一般化しようとすると、かえって遅くなり、品質も落ちる
  • Emacs と Emacspeak は私にものすごい感情を与えてくれる。全体がひとつのマニュアルのようで、C-h m を押すだけですべてのコマンドがすぐ出てくる。隠されたものは何もなく、HTML ドキュメントを漁る必要もない。うまくいかなければ Codex で直してでも、自分の望むことを実現できる

  • 理想を言えば、**ソフトウェア開発はクラフト(craft)**として扱われるべきだ。木工のように、有用でありながら芸術にもなりうる。だが多くのプロジェクトは開発者を工場労働者のように扱っている。品質より量を重視する文化が問題だ。
    同時に、ソフトウェアを芸術としてだけ見るのも実用的ではない。コードの目的は鑑賞ではなく動作だからだ。それでも「クラフトマンシップの宿ったソフトウェア」という言い方が不自然に聞こえるのは残念だ

    • 木工だって結局は座るための椅子を作るのであって、眺めるためではない。なのに、なぜソフトウェアはクラフトとして見られないのかわからない
  • Meta や Google のような FAANG も、すでに人々に感情を抱かせるソフトウェアを作ってきた — 怒り、憂鬱、ときには喜びまで。だがそれは、善意で始まった技術がいかに歪められうるかを示している。「地獄への道は善意で舗装されている」という言葉のように、善を目指して悪を生むことは多い。
    Knuth の言葉を借りれば、「何千人ものコンピュータ科学者に、自由にやりたいことをやらせよ」というのが進歩の原動力だ。Bell Labs がそうだったように、探求の自由が重要だ。
    今は最適化に執着する一方で数学には弱く、結局探検をやめた社会になってしまった。だから発展が遅くなったのだと思う

    • 「猫を追いたいなら、自分自身が猫にならなければならない」というのが私の持論だ。天才たちを導くには、自分も彼らのようにならなければならない。ひとりで複数の役割を担わなければならないこともある
  • Casey Muratori と Jonathan Blow から学んだ習慣だが、私も自分だけの小さな世界を作るのが好きだ。自分が唯一のユーザーであり対象であるプロジェクトだ。締め切りもなく、要望もなく、ランタイムすらない、純粋な楽しみのための空間だ

    • 「自分だけの世界を作った」というのは、もしかして架空の地理世界のことなのかと尋ねる。Tolkien や Stevenson もそうやって始めた
    • だが Blow や Casey は、長いあいだ成果物を出せていない
  • 最近のソフトウェアの大半は、私に強い感情を呼び起こす

    • とくに node_modules を見ると腹が立つ。Electron ベースのアプリを見ると、「どこで道を間違えたのだろう」と思う。デスクトップにモバイル UI を載せるのも嫌いだ