Atom フライトマニュアル
[訳注] この文章について
本文章はAtom Flight Manual ( http://flight-manual.atom.io/ ) の日本語抄訳です。
配布条件はCC SA BY で、Atom Flight Manualに準じます。
全てを翻訳するつもりはなくて、最初から、できるところまでを対象にしたいと思っています。
Atom Flight Manual自体はAsciiDocという形式で管理されており、これらの成果物はGitHubで公開されてはいますが日本の皆さんの便宜を図るためその土台である日本語文章翻訳に集中し、まずはMarkDownでフライトマニュアルを提供したいと思います。
この翻訳はきむりん(@kimrin)が暫定的にゲリラ的に訳した文章で、
将来より良い形でAtom Flight Manualに取り込まれることを望んでいます。
かなり意訳が入っていますが、どうぞよろしくお願い致します。
Chapter1: 始めよう
なぜAtomなのか
この世にはたくさんのテキストエディターがあるのに、なぜあなたは
Atom
エディターの使い方を勉強したり使ったりするのに時間を費やさねばならないのでしょう。
Sublime
やTextMate
のようなエディターは使い易い使用感を提供しているものの限定された拡張性しかありません。反対にそれと逆の方向で言うと、Emacs
とVim
はものすごい柔軟性を提供しますが、それらのエディターはとてもとっつき易いとは言えず、特殊用途のスクリプト言語でしかカスタマイズできません。
私たちはもっとうまくできる、と考えています。私たちのゴールは妥協を許さないハックしやすさと使いやすさの両立です: 小学生がコーディングについて学ぶ一番最初の日においても(小学生達に)歓迎されるエディタであると同時に、経験溢れるハッカーが開発を行うに際して彼らがぎこちなさを感じないようなツールとしてのエディターを目指します。
Atom
を使ってAtom
をビルドしていく中で、何が起こったかといえば徐々にエディターが成熟していくに従って、それなしでは生活できない(訳注:Atom
なしでは開発が成り立たない)という経験です。表面上はAtom
はあなたが欲しいと期待するモダンなデスクトップのテキストエディターです。しかしボンネットを開けると、ハックを熱望しているシステムがそこにはあります。
Atomの核
(訳注:Atomエディターの核心部分をAtom(原子)の原子核と引っ掛けている)
web技術はその失敗に触れずに語ることはできないですが、20年に渡る改善においてweb技術は凄まじく柔軟でパワフルなプラットフォームに変容しました。なので私たちが拡張したいと欲するようなテキストエディタを書き始めた時、web技術を採用することは自明な選択でした。
しかしまず最初に不自由な技術的束縛から解放してあげる必要がありました。
ネイティブweb
Webブラウザはwebページを閲覧することにおいてはグレートですが、コードを書くということはそれ専用のツールを必要とする特殊なアクティビティです。さらに重要なことは、ブラウザはセキュリティ的理由によりローカルの資源に対して極めて制限されたアクセスしかできず、それは私たちにとってテキストエディターがファイルをローカルに保存したりローカルマシン上のサブプロセスを実行できないということを意味します。
この理由のために、私たちはAtom
を伝統的なWebアプリケーションとして作ることをしませんでした。その代わり、Atom
はwebブラウザというよりはテキストエディターのためにデザインされたChromium
亜種として特化することにしました。全てのAtom
のウィンドウは原則としてローカルにレンダリングされたwebページなのです。
典型的なNode.js
アプリケーションのために用意された全てのAPIsは、それぞれのウィンドウのJavaScriptコンテキスト上で走るコードにも解放されているのです。このハイブリッドな構成は独特のクライアントサイド開発環境を提供します。
すなわち全てがローカルにあるので、アセットパイプラインやスクリプトの結合、非同期モジュール定義(AMD)を気にする必要がありません。
もしあなたが何かコードをロードしたいと思った時には、ファイルの先頭でrequire
すればいいだけです。Node
のモジュールシステムはシステム(Atomエディタ)を特定の仕事に特化した小さなたくさんのパッケージに分割することができます。
JavaScriptとC++の出会い
ネイティブコードとのインタラクションも非常にシンプルです。例えば私たちは「鬼車」正規表現エンジンのラッパーを私たちのTextMate
文法のサポートのために書きました。ブラウザにおいては、NaCl
かEsprima
技術を必要とするかもしれません。Node
のインテグレーションはそれを簡単にします。
Node APIs
に加え、私たちはネイティブダイアログ、アプリケーションやメニューアイテムの追加、ウィンドウの大きさ制御などなどのAPIs
も解放しました。
Webテック:美味しいところ
Atomエディタのためにコードを書くことについてのもう一つの素晴らしい点はChromium
の最新バージョンでの動作を保証されるということです。それはブラウザコンパティビリティやpolyfill
などまつわる問題を回避できるということを意味します。私たちはweb
の輝かしい機能を今日明日にでも使うことができるのです。
例えば、ワークスペースとペーンのレイアウトはflexbox
を使っています。それはスタンダートとして有名になり私たちが(flexbox
を)使い始めてからたくさんの変更を乗り越えてきましたが、動きさえすればそれは関係ないのです。
業界全体がweb
テクノロジーを推進するにつれて、私たちはAtom
を肥沃な大地に作り上げていることを確信するのです。ネイティブUIテクノロジーは流行り廃りもありますが、近年web
はより優秀でどこにでも見られる標準になりつつあります。私たちはそのツールボックスを深く探求できることにワクワクします。
オープンソースのテキストエディター
私たちはAtom
をGitHub
の最優先使命を完全に補足するものとして見ています。その使命というのは、共に働くことにより良いソフトウェアを築きあげる、というものです。
Atom
は長期の投資対象であると同時に、GitHub
はその開発のサポートを専門のチームを充てて続けていくでしょう。しかし私たちは同時に私たちの力だけでAtom
を作り上げられないことも知っています。Emacs
とVim
が過去30年間で証明しているように、もしテキストエディタのまわりに健全で長続きするコミュニティを形成したいのならば、それはオープンソースプロジェクトであるべきです。
Atom
エディターの全てがフリーでオープンソースであり、https://github.com/atom に公開されています。