Emacsとは何か

先日、とある場所の課題で次のようなものが問われました。

次のものについてどのようなものか説明しなさい。

Emacs

これについての問について考えてみました。続きは以下より……

(注)エイプリルフールなので、ネタ的な記事を書こうと思い、下に書いているようなネタが前から書こうとあったので、この機会に一気に書き上げました。嘘ではありませんが、勢いに任せて書いた部分も多いので予めご了承の上ご覧下さい。

前述のような問が先日問われました。と言っても情報学専攻に対しての大問ではなく、あくまでLinux全般の質問の小問題の1つとして出てきただけなので、出題者の意図としては、以下のようなものが想定されていたのでしょう。

Emacs:Linuxにおけるエディタの1つである。

とはいってもEmacsといえば、何かというのはいろいろ意見の分かれるところであり、このような十数文字のスペースに収めようとするのは、書き始めたら到底無理なものでしょう。実際、私はこの課題に対して一瞬意図をガン無視して長文を書こうと一瞬思いました。

なので、この場で自重せずにEmacsについて、まじめにふざけた文も含みながら、それなりにがっつりとEmacsとは何かという題に対して文章にまとめてみました。


Emacsとは何か

Emacsとは何かと一言で答えるように問われれば、”高機能なテキストエディタ”という答えが多くの人から帰ってくるだろう。事実WikipediaのEmacsの項の冒頭にも”Emacs(イーマックス)とは高機能でカスタマイズ性の高いテキストエディタである。”という記述から始まっている。しかしながら、この一文だけではとてもEmacsの全容を表せているとは思えない。

Emacsといえば、その非常に高い汎用性・拡張性がまず上げられる。拡張を一切ユーザが追加していない状態でも、多様な文字コードへの対応、置換・検索の正規表現利用や対話式での利用などエディタ機能としても高度な機能を幾つも内蔵している。その上、多くの文章ファイル以外の表示対応(画像,PDF等)、テトリスやSnakeなどのゲームの内蔵、22からのflymake,org-mode内蔵,shellの呼出など、単純なエディタとしては不必要とも言えるレベルの多種多様な機能を初期状態から内包している。この点から言っても、Emacsを単純に高機能なエディタを呼ぶには不適切ではないかといえる。

さらにいえば、利用ユーザが独自に拡張を作成することも可能であり、現在でも非常に多くの拡張が作られている。Anythingなどの独自の統合インターフェース、AutoComplete.elのようなオートコンプリート機能、auto-installといった拡張の自動インストールの拡張、更にはEmacs上でtwitter利用のtwittering-modeなどその種類は、Emacsの利便性拡張でこそあれど、全般の補助、入力補助、コーディング補助、利用機能追加等それらも多岐にわたっており、いまやEmacsでできないこと、作られていない拡張を探すことの方が、使える機能を探すよりも難しいのではないかとも言えるような数が創りだされている。

何がここまでEmacsを加速させているのかといえば、やはり利用しているユーザ自身が多くの拡張を作り出しているという点も大きいのではないだろうか。ユーザが多く、そのユーザの多くがよりEmacsを拡張させたいと思うからこそ、今のEmacsがあるのではないだろうか。エディタといえば、エディタ戦争や宗教などとも比喩される利用するエディタ利用者同士の自身のエディタ自慢とも呼べる、エディタ論争がある。とくにEmacsはエディタ戦争の中で、vimと並び最初期に名前が上がることの多いものでもある。このようなことが起こる理由としては、どのソフトウェアもそれぞれに優れている点があり、それらを利用しているユーザがそれを愛し、より高いレベルにしていこうという思いも持っているからこそとも言える。そうして、それらのユーザが拡張していくことによって、今日までのEmacsがあったとも言えるのではないだろうか。

このEmacsそのものと取り巻く環境下を含めた高く、さらにそのジャンルすらも千差万別な幅広い拡張性こそEmacsを語る上では、外せないのではないかと私は考える。そうした上で、Emacsとは何かということを次にまとめる。

Emacsとは何か。エディタと答える人もいる。IDEと答える人もいる。環境やOSであると答える人もいる。更には医者もゲームセンターもあるので町であるという人もおり、その答えは千差万別である。しかしながら、あえてEmacsとは何かということについて考え、一言にまとめるとするのであれば、”Emacsとはテキストエディタをベースとしたソフトウェアプラットフォームである”と今回私は考える。


割とわざと脱線させることも考えながら書き連ねましたが、これに似たようなことを最初の設問(他にも設問が多くあり計一時間程度での回答中での小設問)の時に書こうとするのはさすがに無謀だったと思います。

一応、あまり時間をかけ過ぎると余計に脱線して分けのわからないことになっていきそうだったので、最初の設問の状況でこれだけで文章にまとめろという状態だったらということを想定して書きました。
なので、1時間程度で若干は見直しもしてますが、大半が勢いと記憶任せで書いている部分も多いので、文章や情報的なミスがあれば指摘をお願いします。そして、思想的な指摘はノータッチでお願いします。

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>