世界を動かす技術を、日本語で。

なぜ「Claude」はElectronアプリなのか?

概要

  • Electronアプリ はクロスプラットフォーム開発で広く使われている現状
  • Coding agents の進化でネイティブアプリ開発も現実味を帯びてきた
  • しかし 最終工程 とサポートの難しさが大きな課題
  • Electron の利便性が依然として選ばれる理由
  • 今後の課題と展望について解説

なぜ全てのアプリがネイティブではないのか

  • Electron はHTML、CSS、JavaScriptを使ってデスクトップアプリを構築できるフレームワーク
  • Windows、Mac、Linux の全てに一つのコードベースで対応可能
  • 既存のWebアプリのコードを再利用できるため、開発効率向上
  • Slack、Discord、VS Code、Teams、Notion など多くの有名アプリがElectron製
  • 開発チームの規模を問わず利用される利点

Electronのデメリット

  • 各アプリが独自の Chromiumエンジン を内蔵するため、アプリサイズが数百MBと巨大化
  • 動作の遅延レスポンスの悪さ が頻発
  • OS固有の機能との連携が弱い
    • 開発やOS固有コードで改善可能だが、最適化はあまり行われない現実
  • それでも 共通コードベース全プラットフォーム対応 のメリットが大きい

Coding Agentsの登場と期待

  • Coding agents は明確な仕様とテストスイートがあれば、クロスプラットフォーム・クロス言語の実装が得意
  • 理論上は、Electronの利点を coding agents が置き換える未来も想定可能
    • 仕様とテストスイートを作成し、各プラットフォームのネイティブコードを自動生成
    • 小規模チームでも、広範な市場向けに高性能なネイティブアプリを提供可能

現実と課題

  • Anthropic の例:RustでCコンパイラをcoding agent群で開発、短期間で大部分を実装
    • しかし最後の10%、エッジケース対応や現実世界でのサポートが大きな壁
    • 新機能やバグ修正が既存機能の破壊につながる事例
    • 結果として「印象的だが実用には不十分」な成果物
  • Claudeデスクトップアプリ もElectron製で、動作の遅さやバグ、肥大化が課題
  • ネイティブ化 すると、Mac/Windows/Linuxで3倍のバグ・サポート負荷
  • Electronなら共通ラッパーで多くの問題を緩和可能

今後の展望

  • 良質なテストスイートと仕様があれば、将来的には Claude のようなアプリも各プラットフォームでネイティブ展開が可能
  • しかし現状では、 最後の10%の開発コストサポート負担 が大きな障壁
  • Coding agents は革新的だが、現場ではまだElectronの利点が優勢
  • 本質的な課題は「 開発の最終工程」と「 サポート範囲の拡大
  • しばらくはElectronが主流の座を維持する見込み

Hackerたちの意見

「無料」とは子犬のようなもの 編集: 投稿のタイトルは元々「もしコードが無料なら、」で始まってたよ。

これが面白すぎて、あなたのブログをチェックしたら、めっちゃ良かった!

子犬の飼い主で、「言論の自由」とかのフレーズが大好きな私としては、拍手を送りたい!

これをずっと言ってるんだけど、今の私のお気に入りのメタファーなんだ。

久しぶりに最高のHNコメントだね。

これって具体的にどういう意味?(私は子犬だから理解できない…)

それって古いドイツ車の無料のやつに似てる?

すごい

同様に、OpenAIのブラウザはまだmacOSでしか使えないんだ。ローンチから4ヶ月経っても、成熟したブラウザエンジンで作られてるのに、他のプラットフォームでは動いてるのにね。簡単にできそうなのに、なぜか…

コードは無料じゃないからね。チームを見てるとよく分かる。ここ6ヶ月間、みんなClaudeをたくさん使ってるけど、影響を測るのは難しい。でも、システムが相変わらずバグだらけなのは分かる。AIは万能じゃないよ。

なんでClaudeがQAテストをやってくれないの?

12ヶ月後には、君のチームの誰もそのバグの半分の結果が何か理解できないだろうね。開発者がAIに考えさせると、メンタルマップを失って、全体のシステムをコントロールできなくなるんだ。

もうさ、今はバグは全部AIのせいにしてるよ。大規模なシステム障害の指標を基にAIがゲームに入ってきた時期を特定できるかも。誰かがもうやってるだろうけど…多分、関係ないよね。

3ヶ月前に持続的なコーディングができるモデルが出たばかりなのに、15日前に大きな進展があったばかりなのに、コメントが「そんなに素晴らしいなら、なんで全部をゼロから書き直さないの?」って。

Anthropicがコードが無料だとは一度も主張してないからじゃない?ストローマンを相手にすると、主張しやすいよね。彼らは生産性が大幅に向上する可能性があるって言ってるし(実際そうなってる人も多いみたい)、ほとんどの会社は主にLLMを使ってコードを書いてて、手書きはもうしてないって。競争に関しても順調みたいだし。LLMに対する正当な不満はあるから、どれか選んでみて。でも、反論するために嘘を作り出すのはやめて。

AnthropicのClaude Codeの責任者が3日前に言ってたよ:「コーディングはほぼ解決済み」 https://www.lennysnewsletter.com/p/head-of-claude-code-what-...

そのポイントは変わらないよ。もし君たちがそんなに生産的で、世界で一番高いエンジニアを抱えてるなら、ちゃんとしたものを書けばいいのに。

この投稿とこのスレッド全体がHNスナイピングの極みだよ。ここにはクラシックなものが全部揃ってる: - AIはダメ - JavaScriptはダメ - 開発者がElectronの有用性を理解できないのは、ブラウザを第4のOSプラットフォームとして理解してないから - 「Electronが俺のRAMを食いつぶす、ああ、2GBのThinkPadから投稿中」

おい、もし3000億ドルのサンフランシスコの会社が、当然「最高の人材を雇う」って主張してるのに、技術的な選択肢のせいでダサいUXになってる問題が見えないなら、何を言ったらいいかわからないよ。同じことが、デフォルトのCLIツールにnpmをそのまま依存させてる会社にも当てはまる。すべてのユーザーのマシンがElectronアプリを動かすのに十分なパワーがあるとか、膨れた依存関係をサポートできると思ってる人は、真剣なソフトウェアを書いたことがないんじゃないかな。それは一般的には問題ないけど(人それぞれだし!)、でもこれらの会社は公然と、強く「最高だ」と主張して、最高の人材を雇ってるんだよ。これは小さな10人のスタートアップじゃないからね。

いや、仕事で使ってる24GBのMacは、Electronアプリばっかりだからスワップに入っちゃってるよ。JavaScriptとウェブは大好きだけど、マジでRAMの使い方がヤバい。

これを繰り返し言って、Electronアプリがちゃんとしたネイティブアプリに置き換わるまで続けるべきだよ。パフォーマンスだけじゃなくて、見た目がパッチ当てたウェブサイトみたいだし、スタイルがバラバラで使いにくいし、何十年も前に解決されてるバグがいっぱいある。まるでActive Desktop ™の再来みたい。ネイティブのMacアプリで作業する方がずっといい。

ここはClaude Codeチームのボリスです。アプリに関わってるエンジニアの中には昔Electronで働いてた人もいるから、ネイティブじゃない方法を選んだんだ。コードを共有するのにも便利だし、ウェブとデスクトップで同じ見た目と使い心地を保証できるからね。最後に、Claudeはそれが得意なんだ。ただ、エンジニアリングはトレードオフの連続だから、将来的には変わるかもね!

これ君? https://www.youtube.com/watch?v=We7BZVKbCVw もしそうなら、「クソじゃなくして」って頼めばいいじゃん?

ユーザーはネイティブアプリから恩恵を受けると思うよ。ぜひ試してみてほしいな。Claudeもきっと得意だと思うんだけど、どう?

ところで、ClaudeはなんでTUIを好むの?GitHubでの新しいTUIアプリケーションの数が、月に約350から約2,500に跳ね上がったんだけど。

コメントありがとう!私のポイントはこんな感じかな:

  • チームが慣れているスタックを使うのはやっぱり価値がある。
  • コードベースを別のスタックに移行するのは、やっぱりタダじゃない。
  • プラットフォーム間での機能やUXの均一性を確保するのも、やっぱりタダじゃない。つまり、プラットフォームごとに異なるコードベースを維持するのは、やっぱりタダじゃないんだよね。
  • コーディングエージェントは、特定のスタックに対しては他よりも得意なんだ。君が言ったように、これらはどれも変わる可能性がある。今のコーディングエージェントの能力のニュアンスを理解しておくのは大事だと思う。 ある人たちは、以下の2つのことが同時に真実であることを受け入れるのが難しいみたいだね:
  1. コーディングエージェントは短期間で驚くべき進歩を遂げた。
  2. コードは多くの点でまだタダじゃない。

これ、もっとパフォーマンスのいいネイティブアプリにバイブコーディングできたんじゃない?

Electronアプリは膨れ上がってる。各アプリが独自のChromiumエンジンを動かしてるから、最小のアプリサイズはだいたい数百メガバイトだよ。こういう不満はHNでしか見ない。実際のユーザーはそんなこと言わない。どんな低スペックのマシン使ってるの?Chromiumエンジンが重すぎるって? > しばしば遅延があったり、反応が鈍い。それはElectronのせいじゃない。 > OSの機能とあまりうまく統合されてない。Microsoft Teamsにとって十分なら、ほとんどのアプリには十分だと思うよ。Teamsはマイクやカメラ、クリップボード、ファイルシステムと統合できるんだから。他に何を統合したいの?

Electronは重すぎるし、Claudeの他の非Electronのオーバーヘッドは大丈夫だよ。

OS統合に関する君の反論には賛成だけど、Microsoft Teamsは「十分良くない」ことで有名だよね。遅いし、バグも多いし、反応も鈍い。特に起動時に動くとリソースをめちゃくちゃ食う。少しは良くなったけど、まだまだ足りない。これはHNの不満じゃなくて、俺の職場の話。最新のハードウェアを使ってる人は少ないし、実際にそれにお金をかけられる人はほとんどいない。もし今の10年より前のハードウェアを使ってるなら、特に2010年代初頭のやつだと、Electronアプリとネイティブアプリの違いは信じられないくらい大きい。Electronはデバイスをひざまずかせることが多いからね。

単体のElectronアプリは通常問題ないけど、平均的なユーザーはChromeのタブをたくさん開いて、さらにいくつかのElectronアプリを使ってるから、どんどんリソースを消費しちゃうんだよね。特に企業や教育機関で大量購入されたマシンでは、強制的に入れられたスパイウェアやウイルス対策ソフトで重くなってて、CPUも何年も前のものだったりする。ノートパソコンの場合、遅いeMMCストレージが搭載されてることもあって、仮想メモリのページングが本当に苦痛になる。

コードは無料じゃないし、これからも無料にはならないよ。どこかで必ずお金を払うことになる。ソフトウェアにはコードを書く以上のことがあるってことを理解するのに、数年かかるだろうけど。AIが全てのコードを書けるとしても、誰がそれを理解するの?必要ないなんて言わないで。RTFMがハッカーの強みなんだ。自社のメイン製品がどう動いてるか全く分からないなんて、どの会社も望んでないと思うよ。

ChatGPTのMacアプリのクオリティが、サブスクリプションを続ける大きな理由になってる。ホットキーもちゃんと動くし、アプリの使い心地もスムーズでネイティブっぽい。ClaudeのMacアプリはひどすぎて、絶対に使おうとは思わなかったし、結局アンインストールしちゃった。MaxプランでClaude Codeをめちゃくちゃ使ってたのに、システムの再起動をブロックするようになったから。

Electronかどうかはどうでもいいけど、今はClaudeと一緒にフルVMを提供してるのが問題。これが15GBもストレージを使う上に、チャットだけ使ってるのにメモリもめちゃくちゃ使う。なんでそんなのを起動する必要があるの?