ATOM

Atom Flight Manual(Atom Editorのチュートリアル)をざっと訳してみるテストw

More than 3 years have passed since last update.


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エディターの使い方を勉強したり使ったりするのに時間を費やさねばならないのでしょう。

SublimeTextMateのようなエディターは使い易い使用感を提供しているものの限定された拡張性しかありません。反対にそれと逆の方向で言うと、EmacsVimはものすごい柔軟性を提供しますが、それらのエディターはとてもとっつき易いとは言えず、特殊用途のスクリプト言語でしかカスタマイズできません。

私たちはもっとうまくできる、と考えています。私たちのゴールは妥協を許さないハックしやすさと使いやすさの両立です: 小学生がコーディングについて学ぶ一番最初の日においても(小学生達に)歓迎されるエディタであると同時に、経験溢れるハッカーが開発を行うに際して彼らがぎこちなさを感じないようなツールとしてのエディターを目指します。

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文法のサポートのために書きました。ブラウザにおいては、NaClEsprima技術を必要とするかもしれません。Nodeのインテグレーションはそれを簡単にします。

Node APIsに加え、私たちはネイティブダイアログ、アプリケーションやメニューアイテムの追加、ウィンドウの大きさ制御などなどのAPIsも解放しました。


Webテック:美味しいところ

Atomエディタのためにコードを書くことについてのもう一つの素晴らしい点はChromiumの最新バージョンでの動作を保証されるということです。それはブラウザコンパティビリティやpolyfillなどまつわる問題を回避できるということを意味します。私たちはwebの輝かしい機能を今日明日にでも使うことができるのです。

例えば、ワークスペースとペーンのレイアウトはflexboxを使っています。それはスタンダートとして有名になり私たちが(flexboxを)使い始めてからたくさんの変更を乗り越えてきましたが、動きさえすればそれは関係ないのです。

業界全体がwebテクノロジーを推進するにつれて、私たちはAtomを肥沃な大地に作り上げていることを確信するのです。ネイティブUIテクノロジーは流行り廃りもありますが、近年webはより優秀でどこにでも見られる標準になりつつあります。私たちはそのツールボックスを深く探求できることにワクワクします。


オープンソースのテキストエディター

私たちはAtomGitHubの最優先使命を完全に補足するものとして見ています。その使命というのは、共に働くことにより良いソフトウェアを築きあげる、というものです。

Atomは長期の投資対象であると同時に、GitHubはその開発のサポートを専門のチームを充てて続けていくでしょう。しかし私たちは同時に私たちの力だけでAtomを作り上げられないことも知っています。EmacsVimが過去30年間で証明しているように、もしテキストエディタのまわりに健全で長続きするコミュニティを形成したいのならば、それはオープンソースプロジェクトであるべきです。

Atomエディターの全てがフリーでオープンソースであり、https://github.com/atom に公開されています。