GitHubが手掛けるオープンソースのテキストエディタ《Atom》の開発者・Ben Ogle氏へのインタビュー。Atomの思想やOSSに開発について伺いました。

GitHub謹製のテキストエディタ

「A hackable text editor for the 21st Century」

そう銘打たれて正式リリースされたのは、GitHubが手掛けるオープンソースのテキストエディタ《Atom》。β版から数えると既に世界130万以上のDLを記録している新世代のテキストエディタだ。

VimやEmacs、Sublime Text2など、強力かつそれぞれ特徴を兼ね備えたプログラミング用のエディタがエンジニア/プログラマに愛用される中、Atomはどのような思想で開発されているのか。2013年からGitHubでAtomの開発を務めるBen Ogle氏に話を聞いた。

創業者のサイドプロジェクトからはじまったAtom開発

― Atomはどういった経緯で開発されてきたのでしょう

AtomはもともとGitHub共同創業者のクリス・ワンストラスが2008年から個人的にサイドプロジェクトとして開発しはじめたものです。彼のお気に入りのテキストエディタはEmacsだったそうですが、カスタマイズするためにはEmacs Lispという特有の言語を使用しなければならず、とてももったいないと思ったそうなんですね。

そこでプログラマなら誰しも馴染みがあり、利用ハードルも低い言語でテキストエディタをカスタマイズできるように、という考えで作られたのがJavaScriptでカスタマイズできるAtomなんです。

2011年からはGitHubの正式なプロジェクトとなり2014年の2月にベータ版を公開、今年の6月に正式版となるVer.1.0を公開しました。

AtomがOSSである理由

― AtomはGitHubのプロジェクトでありながら、オープンソースで開発されています。

Atomを世界中のエンジニアに使い続けてもらえるテキストエディタにしたいという思いからです。例えばEmacsは40年近い歴史を持っています。Atomが"A hackable text editor for the 21st Century"と謳っている通り、今世紀を代表するテキストエディタとしてプログラマのみなさんに愛用されるような存在になれればと思っています。

それを実現するためにはオープンソースでなければなりません。なぜなら、持続的に開発を可能にし、最適な形を常に目指すには、あらゆる人が参加し共有できるプラットフォームであるべきだからです。一つの組織や一個人ですべてをコントロールできるものではありません。

― 一方で、OSSとなったAtomの開発をGitHubが後押ししていますよね。その理由は何なのでしょう。

AtomがGitHubのフィロソフィーを実現させ得るプロダクトだからです。GitHubには《ソーシャルコーディング》というソースコードをクラウド上で共有し、あらゆる人とコラボレーションしながら開発をする哲学があります。Atomはテキストエディタの中にgithub.comの概念を取り入れるチャレンジが出来るプロダクトなのです。

― Atomの大きな特徴は？

非常に細いモジュールとコアが連携する形で成立することです。例えば検索と置換といったものはそれぞれ完全に別のモジュールが存在しています。全ての機能をモジュール化することによって、最も素晴らしいモジュールがオープンソースのコミュニティによって開発され選ばれていきます。

それを表すいい例があるんです。Atomにはもともと自動補完（オートコンプリート）機能があったのですが、それがあまりイケてなかったんですね。するとコミュニティ内で独自に「autocomplete-plus」というモジュールが開発されたんです。そちらのほうがシンプルで機能的にも素晴らしく、最終的にはAtom標準の自動補完機能に採用される結果となりました。

このように一番よいモジュールが常に採用されていくコミュニティをより成長させていこうと考えています。

OSS開発で重要なこと、OSSだからこそできること

― コミュニティを巻き込んだOSS開発で最も重要なことは？

『透明性』です。私たちもまだ試行錯誤している段階ですが、様々な経験を通して「とにかく透明性を担保すること」が重要であると認識しました。何を行なっているのか、どの方向に進んでいるのか、あらゆるものが誰にとっても明らかである必要があると思います。

― 最後に、Atomの今後の取り組みについて教えてください。

直近ではパフォーマンスを向上させることにフォーカスを当てていますが、大きなものでは2つあります。ひとつはソーシャルコーディングの実現です。つまり、GitHubとAtomの連携を模索することですね。

もう一つは、Javaなら○○、Objective-CやSwiftなら△△といった言語に縛られたエディタではなく、どんな開発言語を用いるエンジニア・プログラマにもAtomを使ってもらえる環境を用意すること。これはOSSのプロジェクトだからこそ実現可能なものだと考えています。当然、Atomチームが注力する言語もありますが、それに限らずコミュニティが主体となってプラグインを開発し実装していく流れも生まれていますし、彼らを十分にサポートをしていきたいと思います。

日本のエンジニアの皆さんも、ぜひコチラから私たちと一緒に活動していただけたらと思います。

文 ＝ 松尾彰大

