私は正式に、エマックスからの引退を宣言します。

2026/04/26 11:12

私は正式に、エマックスからの引退を宣言します。

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

  • 日付:2026年4月26日、20年間にわたり毎日使用してきたemacsを公式にネイティブC++アプリケーションへの移行とし、主要なエディタをモーダル編集機能を持つVimに変更する。最も重要な変更点は、本質的なLispパッケージ(
    M-x calc
    Elfeed
    )を、wxWidgets を用いて構築された独立したGUI アプリで置き換えることである。このツールキットは、Dear ImGui などの代替案よりも選択されたものであり、それはWindows、macOS、Linuxを含むクロスプラットフォームでの堅牢なネイティブサポート(適切なファイルパスの処理やI/Oユーティリティを含み)を最初から提供し、これらの特定のプロジェクトにおいて不可欠だからである。

今、以下の2つの主要なプロジェクトにおいて新たな維持管理者が必要とされ、それらの存続が保証されている:

  1. stackcalc
    :GMP と MPFR を使用した高精度な電卓で、emacsのカリキュラマニュアルに基づいて構築されたものである。これは、
    M-x calc
    が大数の処理において遅いようになったため開発された。
  2. Elfeed2
    :1.0リリースにまだ到達していないにもかかわらず、元の
    Elfeed
    を置き換えたRSSリーダである。

他の移行を必要とするプロジェクトの包括的なリスト(@、aio、bitpack、Elfeed、Impatient などを含む)は、意欲的な開発者が引き継がない場合アーカイブされるが、削除は行われない。この移行により、ユーザーのワークフローは純粋なテキストベースのLisp環境から、C++ツールチェーンとCMakeを必要とするコンパイル済みバイナリをインストールするものへと根本的に変化させる。ユーザーはこれらのネイティブアプリケーションへ移行するか、あるいはemacsからワークフローを移植する手段を見つける必要があるが、これは外部サポートまたは個人の努力によるメンテナンスに依存する。

本文

2026 年 4 月 26 日
https://nullprogram.com/blog/2026/04/26/

先週の火曜日に、20 年にわたる日々の使用を経て Emacs で「C-x C-c」を打つのが最後の機会となりました。その期間のほぼ半分は、徐々に modal editing(モーダル編集)へと切り替え、さらに Vim へ移行しながら Emacs から引退していく過程だったとはいえ、Emacs はプラットフォームであり、特に自分自身が開発したアプリケーションたちにも慣れ親しんできた存在でした。移行を急ぐ必要もなく、置き換えもゆっくり進んでいきました。新たに獲得した「超能力」(=これまでの開発経験やツールチェーンの知識)を活かし、残された二つの機能を数日間の作業で完成させました。一つは M-x calc を置き換える

stackcalc
、もう一つは Elfeed を置き換える
Elfeed2
です。後者には特に興奮を覚えます。なぜなら、それが元のものより既に優れた性能を実現している totiž ためです。どちらも複数プラットフォーム対応で、ネイティブの C++ ユーティリティを用いた原生 UI コンポーネントを採用したデスクトップアプリケーションです。

これらの現在もアクティブに使用されているパッケージには、新たなメンテナンス者の受け皿が必要です(各プロジェクトの issue またはディスカッションに申請してください):

  • @ (about)
  • aio(おそらく既に対応済み;about を参照のこと)
  • bitpack
  • Elfeed(ここで申請可能)
  • Impatient (about)
  • javadoc-lookup (about)
  • json-rpc
  • memoize (about)
  • nasm-mode (about)
  • simple-httpd (about)
  • Skewer (about)
  • weak-ref (about)
  • x86-lookup (about)

私が進むのにこんなに時間がかかったのも当然です。これらのプロジェクトは安易に誰かramer に引き渡せるものではありません;申請者はまず自身の貢献実績を積み、信頼性を確立しておく必要があります。すでにコントリビューションを行ったことがあれば、マージされなくてもそれは良いサインです。私はそれらのプロジェクトを自分の名前空間から移譲することは可能ですが、Melpa への移管(そのための署名が必要)については別途対応してください。もし申請者が現れなければ、これらのプロジェクトはアーカイブ化されますが、削除されることはありません。

wxWidgets の試行錯誤

Emacs カルキュレーターは驚くほど優れており、私がこれまでに使った中で最も優れた計算機アプリでした。そのため、見つかるあらゆる代替案も満足するものにはなりませんでした。私の作成した

stackcalc
は GMP と MPFR を用いて任意精度計算を実現しており、期待通り格段に高速ですが、機能面ではまだ追いつきません。特に象徴的処理(symbolic processing)のようなニッチな機能は欠落しています。しかし、個人の用途をカバーするには十分であり、必要であれば後から機能を追加することも可能です。Emacs カルキュレーターのマニュアルが、
stackcalc
開発時の仕様書として役立ちました。

Elfeed は、この過去 13 年間の私の日常ルーティンの柱となっており、これより優れたものを見つけることができませんでした。いつか書き換えが必要であることは以前から意識していました。その再構築に数週間かかることを認識しつつ、すでに望むフィードリーダーを手に入れている現状は、やる気を湧き立たせるのが難しい状況でもありました。ところが、かつての手法で約 3 週間要する作業を、新しいアプローチでは一日で完遂できるようになったため、この種のプロジェクトを始めやすく、同時に完了させることも容易になりました。ただし現時点ではまだ「1.0 リリース」には至っておらず、数日間の试运行を経て初めて元の Elfeed に代わって十分機能することが確認できました。

Dear ImGui は

dcmake
開発において適切な選択でしたが、今回の二つのアプリ(
stackcalc
Elfeed2
)においては同様とは限りません。全天稼働させられるフィードリーダー向けにはアクティブレンダリングは適さず、より豊かなライブラリを求めざるを得ませんでした。本業では Qt を専門としていますが、個人的なプロジェクトでは軽量で CMake の FetchContent で手軽に利用可能なツールキットを望みました。その結果、自然と wxWidgets に至る流れになりました。wxWidgets には確かに課題もあります(文字コード処理の誤りや、多数の箇所で意図せずに二次的時間複雑度が生じるなど)が、予想以上の成果を出し、Windows、macOS、Linux のすべてでネイティブな外観を持つアプリケーションを迅速に開発可能にすることができました。

Dear ImGui と異なり、wxWidgets はプラットフォーム層を内包しており、適切な入出力処理やパス管理も提供します。このようなアプリを開発する際、追加でプラットフォームレイヤーを用意する必要はほとんどありません。wxWidgets 自身の実装 utilities に信頼して進めば十分です。

両プロジェクトとも wx64devkit を用いると、依存ライブラリが FetchContent と互換性があるため「ボックスアウト・オブ・ザ・ボックス」でビルド可能です。すべてのプラットフォームで動作するためには、C++ ツールチェーンと CMake があればよく、以下のような手順で構成できます:

$ cmake -B build
$ cmake --build build

wxWidgets における経験を通じてその限界と可能性を把握してきた今、私はこれからの GUI プロジェクトの多くでこれを基盤として採用する見込みです。Dear ImGui などがより適しているような例外を除けば、ほぼ全てで wxWidgets を選択することになるでしょう。

同じ日のほかのニュース

一覧に戻る →

2026/04/29 4:44

Ghostty は GitHub から撤退します。

## Japanese Translation: GitHub ユーザー 1299 が 18 年にわたり作成・維持してきたターミナルエミュレータ Ghostty が、プラットフォーム上の重要なインフラ障害の発生により、創始者が現在それを重大な業務に不適切と見なし始めたことを受け、公式に GitHub を離れる予定である。最近の GitHub Actions の停電は数時間ほど PR レビューをブロックし、これは Git そのものの問題ではなく GitHub サービス自体の構造的な問題を浮き彫りにしている。同月中盤の主要な GitHub 障害(同日に Elasticsearch の障害も発生したが別の事件)と時期を同じくしてこの週に終了した議論が、プロジェクトの移行計画を見事に実現させながら、現在の URL で即時のコードアクセスのために読み取り専用ミラーを維持するという方針で進められた。創始者は、新たなホスティングソリューションを探す過程で、商業的およびフリーソフトウェアの複数のプロバイダーから依存関係を段階的に削除していくことを意図している。この動きは、不揃いなサービスレベルを持つ主要プラットフォームに依存するオープンソースプロジェクトの長期的な持続可能性に対する業界全体の懸念の高まりを示しており、維持者は利便性よりも安定性を最優先することを促している。

2026/04/29 8:54

ChatGPT も広告を表示しています。以下がその全体的な帰属循環のプロセスです。

## Japanese Translation: OpenAI は、ChatGPT に独自の広告システムを直接統合し、SSE ストリームに `single_advertiser_ad_unit` オブジェクトを注入し、クリエイティブ資産を独自ドメインである `bzrcdn.openai.com` 上にホストしています。ブラウザには OAIQ v0.1.3 という追跡用 SDK が実行されており、製品の閲覧情報を OpenAI のサーバーへ報告しています。このシステムは Fernet 暗号化されたトークン(例:`ads_spam_integrity_payload`, `oppref`, `olref`, `ad_data_token`)を使用しており、これらは公衆向けのヘッダーバイトを 9 文字含み、トークンの発行時刻の復元を可能にしています(例:2026 年 4 月 26 日)。クリックされたリンクは外部ではなく ChatGPT の内部ウェブビュー内(`open_externally: false`)で開かれるため、OpenAI はクリック後のナビゲーションを観察できます。アトリビューションチェーンには、720 時間の有効期限を持つファーストパーティcookieに格納されるフォワードトークン(`__oppref`)と、impression ログを記録する `olref` が使用されます。コンテキストターゲティングは、北京旅行、フライト、NBA など 6 つの異なる会話トピックで確認されています。広告出稿元には Grubhub や GetYourGuide があります。追跡を軽減するには、ドメイン `bzrcdn.openai.com` と `bzr.openai.com` をフィルタリングし、cookie(例:`__oppref`, `__oaiq_domain_probe`)を確認する必要があります。

2026/04/29 6:17

GitHub に至るまで

## 日本語訳: 中心的な論点是、GitHub が有用なツールから、オープンソースのアイデンティティに依存する脆弱で中央集権的なインフラへと進化しすぎているという点にある。この依存関係は危険であり、企業の管理不備と不安定性が、過去の記録と長年にわたって構築されたコミュニティへの信頼の双方を脅かしている。GitHub はコード共有を円滑化させ、事実上のプロジェクト放棄フォーク、イシュー、議論などのアーカイブとなったが、その台頭は npm エコシステムなどにおけるマイクロ依存関係の爆発的増加と同時期に起きたものである。 GitHub を以前に、オープンソースは評判、メーリングリスト、信頼できるメンテナ、そしてより多くの管理努力を要するが制御とコミュニティの文脈を保持できる自己ホスト化インフラ(例:Trac、Subversion)などに基づいていた。Git の分散型の性質が広く普及したにもかかわらず、GitHub はホスティングを単一の商用エンティティに集約し、これはソフトウェアコモンズの皮肉な中央集権化である。今日では、いくつかのプロジェクト(Ghostty、Strudel、Tenacity など)は、不安定なベンダーへの依存を回避するために、Codeberg などの独立したホスティングへ移行している。 今すぐ必要なのは、商業的モデルから完全に切り離された、公衆向けの資金を十分に得たアーカイブを作り、重要コード、リリースアソートメント、およびセキュリティ勧告や設計論争などを含む歴史的議論を保存することである。現在のようにプラットフォームの変更や急激な移行によって消えてしまう場合である。そのようなレジリエントなバックアップがない場合、業界は社会的歴史の不可逆的な損失に直面し、コミュニティが孤立しデータが脆弱になるリスクを抱えることになる。著者は GitHub の回復を望みつつも、オープンソースの歴史に対して単一のプラットフォームへの依存は無責任であると論じており、将来には pre-GitHub 時代の教訓と GitHub エポックの実態とのバランスが必要であるべきである。

私は正式に、エマックスからの引退を宣言します。 | そっか~ニュース