VSCode vs Sublime Text vs Atom
VSCode, Sublime Text, Atom は、画面の構成が非常によく似ています。
(比較しないと言った Light Table, Adobe Brackets も例にもれず、良く似ています。)
使い勝手が違うという声もありますが、個人的に試した感じでは、アイコン表示があるかないかの差ぐらいで、
そこまでの違いはないかと思います。
ここでは、単純にソフトウェアの開発情報、ならびに時期、価格などの基本情報を比較してみました。
項目 |
Atom |
Sublime Text |
VSCode |
開発者 |
Chris Wanstrath(GitHub) |
Jon Skinner |
マイクロソフト |
オープンソース |
○ |
× |
△(一部 vscodeとして公開) |
初版(1.0)リリース時期 |
2015年6月26日 |
2008年1月18日 |
2015年4月29日 |
価格とライセンス |
○無料 : MIT |
×シェアウェア : 独自ライセンス |
○無料 : マイクロソフト ソフトウェア ライセンス条項 |
開発言語 |
C++, Node.js, CoffeeScript, JS, CSS, HTML |
C++, Python |
TypeScript, JavaScript, CSS |
実行速度 (体感速度) |
× |
○ |
△ |
日本語対応 |
△ |
× |
○ |
プラグイン 拡張機能の充実度 |
○ |
○ |
△ |
開発者
Sublimeは、前グーグル技術者なんだそうです。(あくまでウェブの拾った情報なので、正確な情報か否かはわかりません。)
Atomも、基本的には個人ですが最初のころからオープンにされていて GitHubの創始者の一人で、現在では、GitHubにてメンテナンスおよび開発がすすめられています。
VSCodeは、マイクロソフトで開発が行われ、オープンソース化されてからも継続してマイクロソフトにて開発が続いています。
オープンソース化とリリース時期
オープンソース化は、Sublimeを除き、ほぼなされています。
Atomは、開発当初( 2013年3月1日 0.0.1 公開 )からオープンソースの元で開発が続いており、ユーザを獲得していったという経緯があります。
VSCodeは、ある程度開発が進んだ時点( 2015年4月29日1.0公開 )でのオープンソース化を図りました。
そのため、時期的にかなり遅れたこともあり、かなり後発のように思われていますが、実際は、そこまで後発でもないようです。
ただ、いずれもオープンソース化に、一部、ためらいがあったようで、
Atomは、当時は、一部のコアな部分だけをオープンソース化しただけでした。
そののち、いろんな意見があり、2014年5月に完全にオープンソース化に至ります。
VSCodeは、恐らく一部の機能の中に Visual Studio のソースコードを流用していた部分があったのではないかと思いますが、
こちらも全ソースコードがオープンソース化されませんでした。
ただ、そのあとに、Microsoft、VS Codeの言語サーバープロトコルをオープンソース化を行っています。
これで、ほぼほぼ、オープンソース化されたのかもしれません。(詳しくは不明でした。)
開発時期は、Atom と Adobe Brackets がかぶっており、両者とも ほぼ同じ時期から、
同じコンセプトである Chromiumベースのテキストエディタの開発に入っています。
そのAtomの開発のベースとなっている ChromiumとNodeベースの Electron (GitHubが開発したソフトウェアフレームワーク) を
を用いてテキストエディタの開発に乗り出したのがマイクロソフトです。
さて、リリース時期をみると、
Sublimeは、2009年のリリースですから、やっぱり、安定していると言えるでしょうね。
また、先行していた Sublime の UI は、Atom も VSCode も かなり影響を受けているものと思います。
Sublime のUIが、技術者向けのコマンド主体となっている点からも、3者は、良く似ているのではないかと思います。
開発者
Sublimeは、個人?なんでしょうかね。詳しく調べていません。
Atomも、基本的には個人ですが最初のころからオープンにされていて GitHubの創始者の一人で、GitHubでのメンテナンスおよび開発がすすめられています。
VSCodeは、マイクロソフトで開発が行われ、オープンソース化されてからも継続してマイクロソフトにて開発が続いています。
価格とライセンス
Sublimeは、シェアウェアとなっていて $70 にて購入する必要があります。
ただ、評価は無料で期限などはありません。使おうと思えば、ずっと使えますが、購入を促すダイアログ画面が保存の度に表示されます。
ライセンスは、一般のプロプライエタリ・ソフトウェアと同じように責任の範囲とリバースエンジニアリングの禁止などが含まれているようです。
Atom, VSCodeは、オープンソースでもありますから、今のところ無料で公開、利用可能となっています。
また、VSCodeにおいては、一部の非公開ソースコードがあるからだと思いますが、独自のライセンス条項になっています。
開発言語と実行速度
Sublimeは、C++, Python にて記述されており、この中では最も速いです。
実際に使った感じでも、やっぱり、速かったです。ただ、プラグイン(拡張機能)を入れすぎると、かなり、重たくなりました。
また、使った感想では、Atom が 一番重たい感じがあります。
日本語入力もかなり、もっさり感があり、プラグイン(拡張機能)のインストールもかなり遅いです。
VSCodeは、高機能なわりにはAtomよりは、良いです。
日本語対応とプラグイン 拡張機能の充実度
Sublimeは、日本語対応がかなり厳しいです。
Windows版では、そのままの状態では、日本語入力時に窓が左上に表示され、どこで入力しているかわからないような状態です。
プラグイン(拡張機能)にて、メニューの日本語化(完全ではない)、日本語入力(IME対応)もほぼ通常どおりできるようになりますが、
やっぱり、日本語入力においてもメニューにおいても違和感があります。
Sublimeのリリースがかなり古いこともあって、プラグイン(拡張機能)はかなり充実していますが、
日本語関連になると、古すぎる・・面もあるようで、先のメニューもかなり古いみたいで、完全に日本語化されるのはトップメニューの項目ぐらいです。
Atomは、メニューの日本語化ができていないです。
これもプラグイン(拡張機能)にて対応可能です。
Atomは、早めのオープンソース化でユーザ獲得を行ったことが功を奏したのか、プラグイン(拡張機能)はかなり充実しています。
ただ、このプラグイン(拡張機能)のインストールが、不出来?というか他者に比べると異常に遅いです。
VSCodeは、普通にデフォルトの状態で 日本語で表示され、この中では一番日本語に対応できているでしょう。
ShiftJisへの対応も設定をいじれば、自動認識してくれます。
日本語の単語移動もプラグイン(拡張機能)にて対応可能です。
個人的に欲しかった機能
続けて、機能について簡単比較をおこなってみたいと思います。
ただ、ここでは、テキストエディタに求める個人的な機能をベースに比較していますので、
どこまでご参考になるか、ご自身でご判断いただければと思います。
では、早速、比較してみましょう。
項目 |
Atom |
Sublime Text |
VSCode |
日本語化 |
△ |
× |
○ |
開いている窓の一覧 |
△ |
○ |
○ |
開いている窓の分割 |
○ |
○ |
○ |
編集箇所がわかりやすい |
△ |
○ |
△ |
良く使う操作をマクロ化したい |
△ |
○ |
△ |
regreplace が必要
セッション管理できる(保存しなくても終了できる) |
○ |
△ |
○ |
日本語化
日本語対応については、先の比較の中でもあるように VSCodeが一番しっくりきましたし、
非常に問題が少なく、最低限インストールが必要なプラグイン(拡張機能)も少ないです。
実際に日本語化関連でインストールしたのは、以下の2点です。
- Japanese Word Handler : 日本語の区切りでカーソルの移動をしてくれる。
- Zenkaku : 全角空白を強調表示してくれる。
これらの2つで、概ね個人的には事足りました。
また、日本語文字コードの自動認識は、settings.json (基本設定) で設定することができます。
{
...
"files.autoGuessEncoding": true,
...
}
|
Sublime、Atomは、3つほどインストールしましたが、それでも満足できない・・・という感じでしょうか。
いずれも日本語文字コードの自動認識は、微妙ですし、Sublimeは入力時の動作が、さらに微妙です。
(耐えれる範囲と思われるかもしれませんが、個人的には厳しかったです。)
以下のイメージは、Sublimeで日本語を入力している様子です。
開いている窓の一覧
個人的には、現在 開いているファイルの一覧が エクスプローラのように一覧として 左あるいは右に 表示してほしいのです。
Atom以外は、デフォルトで表示してくれます。
Atomだけは、なぜか無いです。プラグイン(拡張機能)は ありますが、かなりしょぼいです。
以下のイメージは、Atomで開いているファイル一覧を表示している様子です。
新しいファイルを開いたときは反映されますが、画面を閉じても反映されません。窓も不格好です。
開いている窓の分割
基本的にすべてできます。操作性は、どれも微妙な点があるので、好き好きでショートカットの割り当てなどでカスタマイズされると良いと思います。
編集箇所がわかりやすい
全て、デフォルトでは、ファイル保存前と編集中あるいは編集後の変更箇所を行番号などで色表示してくれる機能はありません。
これらのツールでは、基本的にGitなどの履歴管理ツールを使用するのを前提としているようで、最後にコミットした状態との差分表示としての変更箇所を行番号表示位置に表示してくれるようです。
また、Sublimeだけは、プラグイン(拡張機能)[Marking Changed Rows] にて完ぺきではないものの行番号にマーク表示してくれます。
以下のイメージは、Sublimeで追加・編集した様子です。
追加・編集した行には、○印が表示されています。
以下のイメージは、Git管理下のテキストファイルを VSCodeで追加・編集した様子です。
最後にコミットした後に追加・編集した行には、緑のラインが表示されています。
良く使う操作をマクロ化したい
デフォルトでは、Sublimeだけは、操作の記録機能を含めて対応しています。
但し、置換処理はできません。置換処理も含めてマクロで実行したい場合は、プラグイン(拡張機能)[RegReplace] を入れる必要があります。
Atom ( atom-keyboard-macros ), VSCode ( macros ) は、プラグイン(拡張機能)がぞれぞれあります。
ただ、VSCode の macrosは、レコード機能やマクロファイルなどの考え方もなく、使い勝手はあまりよくありません。
セッション管理できる(保存しなくても終了できる)
全て、デフォルトで、セッションの保存ができるようになっています。
結局、VSCodeを選んだ理由
結局、VSCodeを選んだわけですが、その理由を簡単に解説しておきます。
プラグイン(拡張機能)が最小で済む
日本語への対応がこの中では最小で済むこともあって、インストールしたプラグインは、非常に少なかったです。
実質、3つでした。
- Japanese Word Handler : 日本語の区切りでカーソルの移動をしてくれる。
- Zenkaku : 全角空白を強調表示してくれる。
- Encode Decode : Base64,HTML Entitiesなどのコード変換をしれくれる。
プラグイン(拡張機能)の管理は、後で面倒なことがあります。
本体側でメジャーバージョンアップなどの大きな変化があった際に、今まで動作していたプラグイン(拡張機能)が正しく動作しない場合があります。
そのため、できるかぎりプラグイン(拡張機能)は少ない方が 管理しやすくなります。
基本機能が充実している
先のプラグイン(拡張機能)をインストールする数が少ないというのは、言い換えれば、ぞれだけ基本機能が充実しているとも言えます。
多少のカスタマイズは必要ですが、かなり使える基本機能だと思います。
以下は、主な基本機能の一覧です。
- HTMLの対応タグジャンプ・更新・削除機能
- {([ の対応括弧ジャンプ機能
- Emmet機能(HTMLタグ編集補助機能)
- Git機能(1.12 よりGit本体は別途インストールが必要となった)
- TypeScript(JavaScriptの上級?版みたいなもの)
- IntelliSense(当たり前のオートコンプリート機能)
- Task(Gulpなどのタスクツール連携機能)
1.10以降、Linter機能(CSS系/PHP/JS系のコードチェック)は、デフォルトでの同梱がなくなりました。引き続き、プラグイン(拡張機能)にて対応しています。
1.12以降、Git本体の同梱がなくなりました。Git 2.0 以上を自分でインストールする必要があります。
また、デフォルトで同梱されているプラグイン(拡張機能)は、以下のとおりです。
- bat
- clojure
- coffeescript
- configuration-editing
- cpp
- csharp
- css
- diff
- docker
- emmet
- extension-editing
- fsharp
- git
- gitsyntax
- go
- groovy
- grunt
- gulp
- handlebars
- hlsl
- html
- ini
- jake
- java
- javascript
- json
- less
- lua
- make
- markdown
- merge-conflict
- ms-vscode.node-debug
- ms-vscode.node-debug2
- node_modules
- npm
- objective-c
- perl
- php
- powershell
- pug
- python
- r
- razor
- ruby
- rust
- scss
- shaderlab
- shellscript
- sql
- swift
- theme-abyss
- theme-defaults
- theme-kimbie-dark
- theme-monokai
- theme-monokai-dimmed
- theme-quietlight
- theme-red
- theme-seti
- theme-solarized-dark
- theme-solarized-light
- theme-tomorrow-night-blue
- typescript
- vb
- xml
- yaml
足りない機能は、なんとかなりそう
VSCodeの個人的な足りない機能は、以下の2点で、それぞれ対応ができそうなのです。
- 編集箇所の表示機能 → Git を必ず使えば、最終Commitからの変更箇所はわかるので、それでもOK
- マクロ機能 → micors というプラグイン(拡張機能)があるが、これを改良して使えそうなので、それでもOK
結局、最後は好みなのかな?
Adobe Brackets , Light Table を含めて、ここで紹介しているものは すべて良いものだと思います。
VSCode に関して言えば、バージョン 1.12 ぐらいからは、かなり機能が充実し、安定感も高まったことも
人気を博している要因となっていると思います。
最後は、
基本的に使い勝手は、個人の好みによるところが大きいとは思います。
最初に Adobe Brackets を外した理由も "不格好" という個人の好みの問題であって、
結局、最後は好みなのかなぁと思いますね。
今回は、Visual Studio Code を選んでみましたが、1点だけ気をつけておいてください。
C/C++やBasicのIDEである Visual Studio とは別物と考えた方が良いです。
Visual Studio 2013/2015 などに慣れている方には、とても不満があることでしょう。
逆に今まで vim などのオープンソースで開発をやってきた方には、まあ、受け入れられる程度なのかなぁと思います。
いかがだったでしょうか?
Atom と Adobe Brackets は、
GitHub と Adobe が、同時期に 競って Chromium をベースに開発を行っていたIDE(Textエディタ)です。
そこに割って入ってきたのが、マイクロソフトであり、Visual Studio Code です。
ベースとなっているものは、Atomと同じ Electron(GitHubが開発したソフトウェアフレームワークであり、ChromiumとNode.js で開発されています。 )
で、同じように Chromium ベースの IDE(Textエディタ)となっています。
Sublime Text だけが、 少し前に開発されており、C++、Python により開発されています。
この流れから、ベースとなっているUIおよびソフトウェアの基本的なデザインは、Sublime Text ではないかと思います。
Windowsを主に利用している者からすれば、ツールバーがないソフトウェアってどうなの?という感じもしますが、
非常にシンプルなUIとなっており、コマンド画面がいつでもすぐに表示できるようになっている・・・
このパターンは、ほぼ、ここで紹介している全てのソフトウェアに共通するものです。
Sublime Text を除き、
Chromium ベースで動作することから、Googleドキュメントやスプレッドシートなどウェブアプリの操作感、動作感に似ています。
もっさりとした感じは否めませんし、動作が鈍い分、少し目を離してキーボード操作すると
追いつかないで、違う結果となっていることもあります。
もし、操作性が気になる方は、vim や Emacs が、まだまだ、おすすめですし、
Windowsに限って言えば、日本語に対応したテキストエディタはありますから、そちらが良いと思います。
これらを使った方が良い方は、
Gitによるファイルの履歴管理が必要な方、
グループによる開発を行う方、
少しでも楽にソースコードやHTMLを記述したい方には、
これらのツールは、かなりの助けになるかと思います。
まずは、お試しあれ。
コメントをどうぞ