XEmacsとはGUIおよびCUIベースのテキストエディタであり、ほとんどのUnix系オペレーティングシステム、およびMicrosoft Windowsで動作する。XEmacsは1980年代後半におけるGNU Emacsのバージョンをベースとしたフォークである。ユーザーはXEmacsをGNU General Public Licenseのバージョン2以降の版の下でフリーソフトウェアとしてダウンロードし、使用し、そして修正することができる。

XEmacs
アンチエイリアスフォントを組み込んだXEmacs 21.5.29 (beta)
開発元 XEmacs community
最新版
21.4.22 / 2009年1月30日 (15年前) (2009-01-30)
最新評価版
21.5.35[1] / 2023年5月13日 (17か月前) (2023-05-13)
対応OS クロスプラットフォームGNULinuxWindowsOS X)[2]BSDなど)
種別 テキストエディタ
ライセンス GPLv2+
公式サイト www.xemacs.org
テンプレートを表示

歴史

編集

1987年から1993年の間に、GNU Emacsの(バージョン19となるはずの)新規バージョンのリリースにおいて大幅な遅延が発生した[3]。1980年代後半、Richard P. GabrielLucid社はEnergize C++ IDEをサポートするためのEmacsをリリースする必要に直面していた。そのため、Lucid社はEmacsのコードを改善して拡張するためのチームを募集し[4]、1991年にリリースされたLucid社の新しいバージョンは、GNU Emacsのバージョン19の基礎を形成することを意図して作られた。しかしながら、フリーソフトウェア財団 (FSF) がこの変更を受諾するのを待つ余裕がLucid社にはなかった[5]。Lucid社はEmacsの自社バージョンの開発と保守を継続していたが、1年後にFSFはLucid社バージョンのコードをいくつかマージし、さらにそれ以外の部分も取り入れたGNU Emacsのバージョン19をリリースした[6]

Lucid社は1994年に廃業したが、他の開発者がコードを拾い上げた[7]サン・マイクロシステムズなどの企業はLucid Emacsの開発継続を望んでいたが、誰が "Lucid" という商標を最終的に管理しているのかを誰も知らなかったため、法的に "Lucid" という商標を使えるかが不確かとなっていた。そのため、XEmacsの "X" はXEmacsの開発に係わった当事者間による妥協案の象徴である[8]

このため、XEmacsの "X" はX Window Systemとは関係がない。XEmacsはテキストベース端末とX11以外のウィンドウシステムを常にサポートしている。インストーラはXEmacsとGNU Emacsを両方とも、Xのサポートの有無によらずコンパイル可能である。一時はXEmacsがシンタックスハイライトなどのGNU Emacsにはない端末固有の機能を搭載していた時代もあった。

ソフトウェアコミュニティでは一般的に、GNU EmacsとXEmacs(およびこの2つ以外の類似エディタ)を総称して(boxenからの類推により)emacsenと呼んだり、それぞれ個別にemacsと呼んだりする。なぜならGNU EmacsとXEmacsは両方とも、原型であるTECO Emacsからインスピレーションを得ているためである。

機能

編集

XEmacsのテキスト編集は、単語段落を操作(削除や移動など)するコマンド、ソースコードを読みやすくするためのシンタックスハイライト、そしてユーザー定義の編集コマンドの任意のバッチを実行するための「キーボードマクロ」を特徴としている。

XEmacsには、XEmacsのウェブサイトから利用可能な5つのマニュアルだけではなく、包括的なオンラインヘルプが搭載されている。XEmacsは数多くのプログラミング言語マークアップ言語のための編集モードだけではなく、数多くの人間言語をサポートする。XEmacsはUnix/LinuxBSDMac OS Xなどの数多くのオペレーティングシステムで起動する。Mac OSでの起動にはX11が必要であるが、ネイティブCarbonバージョン上で起動するバージョンの開発が開始されている。Microsoft Windows環境用のXEmacsには、ネイティブインストーラバージョンとCygwinパッケージバージョンの2つのバージョンが存在する。

ユーザーはEmacs Lisp言語を使うことで、エディタの機能のほとんど全てを再設定することができる。Lispコードを変更してもユーザーはエディタをリコンパイルする必要はない。プログラマはあらかじめ書かれた多くのLisp拡張を利用可能である。

XEmacsの機能拡張や機能補足のためのパッケージは数多く存在する。ユーザーはXEmacsのパッケージマネージャを通じてそれらを少しずつダウンロードしたり、xemacs-sumoパッケージや "sumo tarballs" を使って一括適用することができる[9]。XEmacs 21.1より、機能はXEmacsコアから外されて独立したパッケージとして利用可能となったので、ユーザーは不要なパッケージを除外することが可能となった。XEmacsはパッケージマネージャをGNU Emacsに搭載される以前から搭載していたが、XEmacsは新しいパッケージをロードした後は再起動しなければならない。

開発

編集

XEmacsの開発者はプロジェクトの開始から、頻繁なリリースサイクルを目指していた。現在では1年につき2つから3つの版がリリースされるが、初期の年よりスローダウンしている[10]。XEmacsの開発者は、よりオープンな実験も目指していたため、インラインイメージ、可変フォントそして端末カラーなど、他のEmacs系エディタの先駆けとなる新しい機能をXEmacsが提供することが多い。長年にわたり、開発者は一貫性を改善しデータ抽象化を強調して近代プログラミング慣習に従うよう、広範囲にコードを書き直した。XEmacsは独立して管理されるLispパッケージ用のパッケージ管理システムを搭載している。XEmacsの最新バージョンはGTK+をサポート[11]し、Mac OS X用ネイティブCarbon移植がある[12]

XEmacsには匿名CVSや、CVSの後に出来たMercurialへのアクセスと公開されたアクセス可能な開発メーリングリストといった、常にオープンな開発環境が存在する。XEmacsは500ページ以上の内部マニュアル(Wingなどによる、2004年)を搭載する[13]

XEmacsにとって、Unicodeのサポートは問題となっている。2005年の時点でリリースされたバージョンはUnicodeのサポートのために、Mule-UCSと呼ばれる既に保守が終わったパッケージに依存している。2002年5月よりXEmacsの開発ブランチは外部のUnicodeエンコーディングの強力なネイティブサポートを搭載するが、内部のMule文字セットが完全でなく、2005年の時点で開発が中断している[14]

XEmacsの開発は、stable、gamma、そしてbetaといった3つのブランチを特徴としている[10]。新しい機能が最初に得られるのはbetaだが、テストが十分ではなく、安定性やセキュリティが劣っている可能性が高い。XEmacsの開発者は1997年2月9日にバージョン20.0をリリースし、1998年7月12日にバージョン21.0をリリースした。2009年1月の時点で、stableブランチのバージョンは21.4.22で、betaブランチのバージョンは21.5.28である。gammaリリースは2007年の時点で存在していない。XEmacs 21.4.0のリリースで、バージョン番号は2つ目の番号が奇数であれば開発版で、偶数であれば安定版を表すようになった。

XEmacsとGNU Emacs

編集

XEmacsの主要な開発者の中には、XEmacsとGNU Emacsとの分断を公言する者もいる。例えば、Stephen Turnbullの両側からの議論の要旨[15]。XEmacsとGNU Emacsとの主な相違点の1つとしては、著作権譲渡の見解が異なることが挙げられる。FSFはGPL侵害に対してコードを守れるようにするために著作権譲渡が必要であるとしている[16]が、XEmacsの開発者は著作権譲渡がないことで、主要な企業が関与することが可能になると主張している。これは企業がコードのライセンスを発行できる場合でも株主の信認義務を気にした慎重な態度のため、企業がコードを全て譲渡してもよいという許可を得るのに苦労するかもしれないためである。

FSFは、XEmacsとGNU Emacsとのマージを試みたり、それぞれのクロス開発を行うにあたって事前に著作権を譲渡されたため、ほとんどのXEmacsコードの著作権を保持している[17]。XEmacsコードの新しい要素がGNU Emacsに加わるかどうかは、FSFにコードを譲渡する寄稿者個人がそれをしたいかどうかに依存することが多い。XEmacsかGNU Emacsのどちらか一方に組み込まれた新しい機能は、遅かれ早かれ他方にも組み込まれることが普通である。さらに開発者の多くはXEmacsプロジェクトおよびGNU Emacsプロジェクトの両方に寄与している。

XEmacsプロジェクトはGNU Emacs APIとの互換性を維持する方針である。その例として、XEmacsはネイティブ部分の機能を媒介するオーバーレイを実装する互換レイヤーを提供する。XEmacsの開発者は、特にLispレベルでGNU Emacsと互換性のあるコードを維持するよう努力している[18]

XEmacsの開発は遅くなってきている。最も新しいstableのバージョン21.4.22は2009年1月にリリースされた。XEmacsにはGNU Emacsから多くのコードが組み込まれている[19]が、GNU Emacsには以前はXEmacsにしかなかった機能の多くが実装されてきている。これにより、ユーザーの中にはXEmacsの死を宣言し、XEmacsの開発者はXEmacsの代わりにGNU Emacsへ貢献するよう主張する者もいる[20]

GnusDiredといった主要なパッケージの多くはXEmacsとGNU Emacsの両方で動作するよう開発されていた[21]が、Gnusの主要な開発者はXEmacsのサポートを中止した他の類似のパッケージを引用して、メインのEmacsトランクの中にGnusのツリーを移動し、XEmacsと互換性のあるコードを削除するつもりであることをアナウンスした[22][23]

2015年12月、XEmacsプロジェクトのメンテナであるStephen J. Turnbullは、XEmacsプロジェクトは開発者の減少とGNU Emacsの進化により、将来のGNU Emacsとの互換性に関しては「分岐点にある」というメッセージをXEmacs開発リストに投稿した。将来の方向として、開発を完全に終了する、現在バージョンのGNU Emacsから新しいフォークを作成する、または誰かが将来開発を再開したい場合に備えてXEmacsプロジェクトをメンテナンスモード英語版にするなどの選択肢が提示された[24]。そして貢献者個々人からウェブサイトと開発リソースのサポートを最小限提供するという約束を取り付け、最後の選択肢であるXEmacsプロジェクトのメンテナンスモード化が決定した。

関連項目

編集

脚注

編集
  1. ^ XEmacs: XEmacs 21.5.35 "kohlrabi" is released”. 2023年11月23日閲覧。
  2. ^ http://sealiesoftware.com/xemacs/index.html
  3. ^ Emacs Timeline”. Jwz.org. 1 December 2014閲覧。
  4. ^ http://commandline.org.uk/2007/history-of-emacs-and-xemacs/ Archived November 22, 2010, at the Wayback Machine.
  5. ^ Xemacs from FOLDOC”. Foldoc.org. 1 December 2014閲覧。
  6. ^ Richard Stallman. “The Origin of XEmacs”. Stallman.org. 1 December 2014閲覧。
  7. ^ john s jacobs anderson, stealing content the FAQ. “XEmacs: History of XEmacs”. Xemacs.org. December 18, 2014時点のオリジナルよりアーカイブ。1 December 2014閲覧。
  8. ^ XEmacs Internals Manual: A History of Emacs”. Xemacs.org. 1 December 2014閲覧。
  9. ^ john s jacobs anderson using old content with no listed author. “XEmacs: Quickstart Package Guide”. Xemacs.org. 1 December 2014閲覧。
  10. ^ a b XEmacs: Release Notice Archive”. Xemacs.org. 1 December 2014閲覧。
  11. ^ Stephen J. Turnbull. “XEmacs: XEmacs on the GTK platform”. Us.xemacs.org. 1 December 2014閲覧。
  12. ^ http://members.shaw.ca/akochoi-xemacs/Carbon+XEmacs/Home.html [リンク切れ]
  13. ^ http://www.xemacs.org/Documentation/21.5/html/internals_toc.html
  14. ^ Mule-on-Windows, full Unicode support XEmacs”. Calypso.tux.org. 1 December 2014閲覧。
  15. ^ XEmacs: XEmacs vs. GNU Emacs”. Xemacs.org. 1 December 2014閲覧。
  16. ^ Why the FSF gets copyright assignments from contributors - GNU Project - Free Software Foundation”. Fsf.org. 1 December 2014閲覧。
  17. ^ Xemacs vs GNU Emacs”. 2017年7月27日閲覧。 “XEmacs is GNU software because it's a modified version of a GNU program. And it is GNU software because the FSF is the copyright holder for most of it... XEmacs has no choice, because much of its code is copyrighted by the Free Software Foundation, and is only available to XEmacs under the GPL.”
  18. ^ Frequently asked questions about XEmacs: Introduction”. Xemacs.org. 1 December 2014閲覧。
  19. ^ XEmacs 21.5.33 release notes”. Xemacs.org. 4 March 2016時点のオリジナルよりアーカイブ。1 December 2014閲覧。
  20. ^ XEmacs is Dead. Long Live XEmacs!”. Steve-yegge.blogspot.com. 1 May 2008時点のオリジナルよりアーカイブ。1 December 2014閲覧。
  21. ^ A Comparison of Xemacs and Gnu Emacs”. 2017年7月27日閲覧。 “Luckily many of the package maintainers are attempting to make their modules work with both Xemacs and Gnu Emacs, though the functionality may not be identical.”
  22. ^ https://lists.gnu.org/archive/html/emacs-devel/2015-12/msg01511.html
  23. ^ http://lars.ingebrigtsen.no/2016/01/01/its-about-ethics-in-gnus-development/
  24. ^ XEmacs at a crossroads”. 2017年7月27日閲覧。 “For the past decade, work on XEmacs has continued at a low level, and mostly not visible in user-level features. In the meantime, GNU Emacs has implemented almost all XEmacs features...At the same time, a number of features that XEmacs lacks, and would require substantial effort to port, have been implemented...the developers who have been the primary contributors of code currently have personal and professional commitments that prevent them from devoting enough time to XEmacs to implement the large features necessary for full compatibility with GNU Emacs for the foreseeable future...several developers who have contributed heavily in the past have acknowledged that they *won't* be doing so for the foreseeable future. It's only fair that we let you, our users and supporters, know about that.”

外部リンク

編集