ソフトウェアのEmacs化:特注のパーソナル・アプリケーションの台頭

数十年にわたり、ソフトウェアのニーズとそれを解決するツールの間の溝は、App Storeでの検索、‑‑‑「十分な」オープンソース・プロジェクトでの妥協、あるいは新しい言語を学ぶために数週間を費やすことによって埋められてきました。しかし、AIエージェントの時代が深まるにつれ、根本的な変化が起こっています。私たちは「Emacs化」の時代に突入しています。

脆弱性研究者の rdslw によって広められたこの概念は、ソフトウェアが「消費する製品」から「押し出す(extrude)設定」へと移行していることを示唆しています。機能的でネイティブなユーザーインターフェースを生成するコストがほぼゼロになったとき、汎用的なソフトウェアを使用する動機は消滅します。

「十分な」ことの摩擦

多くの開発者は、「十分な」ツールというサイクルに囚われていることに気づきます。例えば、控えめな Markdown ビューアを考えてみましょう。Markdown は開発の共通言語ですが、閲覧体験はしばしば断片化されています。glowMarkless のような Terminal User Interfaces (TUIs) は強力ですが、ターミナルの等幅フォントの制約に縛られています。その一方で、Obsidian や Typora のような本格的なエディタは、執筆には優れていますが、単にファイルを閲覧したいだけで、注意深く整えられたワークスペースを乱したくないときには、過剰な存在となります。

既存の選択肢が、基本的な検索機能の欠如、アプリ内課金、あるいは単純なコピー&ペーストのサポート不足といった理由で機能しないとき、従来の対応策は、それを耐え忍ぶことでした。しかし、AIエージェントがプロフェッショナルな能力で SwiftUI コードを記述できる世界では、対応策は「どのアプリをダウンロードすべきか?」から「なぜ自分専用に作らせないのか?」へと変わります。

Emacs化とは何か?

Emacs化を理解するには、Emacs の文化を見る必要があります。Emacs の「ベテラン」にとって、Emacs は単なるテキストエディタではありません。それは、形を変えられるプラットフォームです。ユーザーは個人的な欲求を満たすために独自の Lisp 関数を書き、100% 「見せ合い(show-and-tell)」であり 0% 「Product Hunt」である、広大で特注の環境を作り上げます。

Emacs化とは、この精神をすべてのソフトウェアに適用することです。それは、パーソナル・ソフトウェアへの移行です。つまり、極めて特定の用途に特化し、作成者本人にしか役に立たない可能性があり、製品というよりも設定として扱われるツールです。

このシフトの主な特徴は以下の通りです:

  • ソースコードからプロンプトへ: 過去において、ツールの価値はソースコードにありました。Emacs化された世界では、もしエージェントが SwiftUI コードを書いたのであれば、コード自体は一時的な関心事に過ぎません。真の価値は、その idea と、それを生成するために使用された prompt にあります。
  • 「汎用」UI の死: 長年、Electron は、ネイティブ UI を構築することが困難で高価であったため、この分野を支配してきました。現在、エージェントは macOS や Windows のネイティブ・インターフェースを確実に構築できるため、ユーザーは Electron アプリの「ちらつく Chromium」体験を回避し、軽量でネイティブなパフォーマンスを享受できるようになります。
  • 特注のユーティリティ: ソフトウェアは、汎用的な製品を維持するオーバーヘッドなしに、bpftrace のためのカスタム可視化ツールや、SQLite FTS インデックスを備えた専用の Markdown ビューアを作成するなど、特定の、即座の課題を解決する方法になります。

反論:メンテナンスと脆弱性

ソフトウェアを「押し出す(extrude)」という見通しは解放的ですが、新しい課題をもたらします。このトレンドに関するコミュニティの議論では、重要な緊張関係が浮き彫りになります。それは、メンテナンスのコストです。

一部の開発者は、パーソナル・ソフトウェアは脆い設定の「不浄な組み合わせ」になり得ると主張しています。あるコメント主が指摘したように、低メンテナンスな生活への欲求は、あらゆるものに対してカスタムツールを構築したいという衝動としばしば衝突します。OS のアップデートや依存関係の変更によって、壊れてしまう「slopcode」の集合体に、不完全ながらも安定したプロフェッショナルなソフトウェアを置き換えてしまうリスクがあります。

さらに、寿命の問題もあります。もしツールが 30 分間の対話的なプロンプトによって生成されたものであれば、それが壊れたときにデバッグする動機は、数ヶ月かけて手作業で構築したツールを使用する動機よりも大幅に低くなります。

Nerd ソフトウェアの未来

脆弱性のリスクがあるにもかかわらず、「Emacs化」はパワーユーザーにとってより興味深い展望をもたらします。私たちは、プロフェッショナルなエンジニアとカジュアルなユーザーの間の「溝」が埋まる世界へと向かっています。プログラミングは、高度な設定(configuration)の一種になりつつあります。

このシフトにより、使い勝手の悪いターミナル・アプリの改善や、以前はコマンドラインに限定されていた複雑なシステム・ツールのためのネイティブ・インターフェースの作成が可能になります。目標は、もはや App Store で完璧なアプリを見つけることではなく、プラットフォーム自体がはるかに構成可能(configurable)になったことに気づくことです。

この新しいパラダイムにおいて、開発者がなし得る最も価値のある貢献は、必ずしも洗練されたバイナリではなく、解決された問題のスクリーンショットと、それを達成するために使用されたプロンプトであると言えます。汎用的なツールの時代は終わり、特注の、押し出されたアプリケーションの時代が始まっています。

Sources