コードエディター/IDE を選ぶ

Elementry
最終更新: タグ: Practice, Tooling

前提知識

コードを一行書く前に、それを書く場所が必要だ。その場所がコードエディター(code editor)または IDE(Integrated Development Environment、統合開発環境)だ。正しいものを選ぶことは開発体験全体の雰囲気を決めるため、選択肢を理解するために数分を費やす価値がある。

エディターと IDE の違いは何か

コードエディターはコード向けに作られたテキストエディターだ。シンタックスハイライト(キーワードを色付けして目立たせる)などを扱い、プラグインで機能を拡張できる。軽量なエディターは速く起動して邪魔にならない。

IDE はすべてをひとつのパッケージに束ねる:エディター、デバッガー、ビルドツール、リファクタリングヘルパーなど。言語を深く理解してよりスマートな補助を提供できる。トレードオフは IDE が重くて起動に時間がかかることだ。

二つの境界線は曖昧になっている。VS Code のような現代のエディターは拡張機能を十分インストールすると本格的な IDE のように感じられる。ラベルより自分のワークフローに合ったツールを見つけることの方が大事だ。

VS Code — 無難な選択

Visual Studio Code(一般的に VS Code または VSC と呼ばれる)は多くの開発者が最初に選ぶエディターで、それには理由がある。

VS Code は Visual Studio ではない。 名前と会社(Microsoft)を共有するが、全く別の製品だ。VS Code は軽量なクロスプラットフォームのエディターで、Visual Studio は重量級の Windows IDE だ。一方を探して他方を見つけたら、間違ったものを見つけた。

VS Code の優れている点:

  • 拡張機能(extension)— VS Code マーケットプレイスには何万もの拡張機能がある。どんな言語、フレームワーク、ワークフローが必要でも、ほぼ確実に拡張機能がある。たとえば Rust Analyzer 拡張機能は、完全な Rust 言語サポートをエディターに直接もたらす。
  • 親しみやすい UI — インターフェイスがクリーンで直感的だ。サイドバー、ターミナル、設定はマニュアルを読まなくても見つけやすい。
  • AI 搭載のフォーク — VS Code のオープンソースコアの上に構築されたエディターのファミリー(CursorWindsurf など)が AI ペアプログラミング機能を追加している。AI アシストが重要なら、これらのフォークは VS Code を使う場所にそのままはまり込むため探る価値がある。

VS Code の弱点:

  • パフォーマンス(performance)— VS Code は Electron(ウェブブラウザをアプリの中にパッケージ化するフレームワーク)の上に作られている。ネイティブの代替と比べてメモリと CPU の使用が目立つ。古いハードウェアや非常に大きなプロジェクトでは重く感じることがある。

おすすめ: 始めたばかりなら、VS Code は最も抵抗の少ない選択肢だ。コミュニティが大きく、チュートリアルは VS Code を使っていることを前提とし、ほぼすべての言語をうまく扱える。

Zed — 速い新参者

Zed は Rust で一から作られた新しいエディターで、何よりも速さを目指して設計されている。VS Code が複雑なファイルで遅れを取るところで、Zed はネイティブだから ー ブラウザエンジンが下にない ー キビキビとしている。

Zed が際立つ点:

  • 速さ(speed)— ファイルを開く、スクロール、検索:Zed はすべてを VS Code より速くやる。VS Code の重さを感じたことがあれば、Zed は新鮮な空気のようだ。
  • まともな言語サポートが標準で付いている— Zed は VS Code が使うのと同じ言語サーバープロトコルを使って多くの人気言語を標準でサポートする。Rust のサポートは例えば、追加インストールなしによく機能する。
  • 協調編集(collaborative editing)— Zed はリアルタイムのマルチプレイヤー編集をビルトインしている。汎用エディターとしては珍しい。

Zed の弱点:

  • 拡張機能が少ない— Zed の拡張機能のエコシステムは VS Code より格段に小さい。自分のワークフローに特定の VS Code 拡張機能が必要なら、Zed には同等のものがまだないかもしれない。

おすすめ: VS Code のパフォーマンスが気になっていて、速さと引き換えに拡張機能のカバレッジを多少犠牲にできるなら、Zed は優れた選択だ。特に Rust の開発には心地よい。

JetBrains IDE — プロのツールボックス

JetBrains は特定の言語またはプラットフォームに焦点を絞った IDE のファミリーを作っている:Java/Kotlin 向けの IntelliJ IDEA、Python 向けの PyCharm、JavaScript 向けの WebStorm、Rust 向けの RustRover など。

JetBrains IDE が際立つ点:

  • 深い言語理解(deep language understanding)— JetBrains のツールはコードをハイライトするだけでなく、コードを理解する。RustRover は例えば、Rust マクロの内部のコードをハイライトして自動補完できる — VS Code や Zed がうまく対処できない部分で、マクロはコンパイル時に展開されてエディターが解析するのが難しいからだ。
  • 豊富な標準機能— リファクタリング、データベースツール、git 統合、デバッガーはすべてプリインストールされていてプラグインなしで連携して動く。

JetBrains IDE の弱点:

  • 無料ではない— JetBrains 製品は商用利用には有料サブスクリプションが必要だ。学習とオープンソースプロジェクトには無料枠があるが、プロとして作業を始めると、ライセンスが必要になる。始めたばかりの人には対応できるが、ワークフローをその上に構築する前にモデルを理解する価値がある。
  • 重い— VS Code より、言うまでもなく Zed より多くのリソースを使う。

おすすめ: JetBrains がサポートする言語で本格的な作業をしていてコストが障壁でないなら、そのツーリングは本当に優れている。特に Rust では RustRover のマクロサポートだけで何時間もの苦労を節約できる。

Vim / Neovim — 徹底したミニマリスト向け

Vim は1991年のターミナルベースのエディターだ。その後継者 Neovim は同じ根本モデルを保ちながらモダン化している:マウスなしでキーボードコマンドですべてをコントロールする。

一部の開発者が愛してやまない理由:

  • Vim キーバインディング(Vim key bindings)— Vim の編集モデル(ナビゲーション用の「ノーマル」モードと入力用の「インサート」モードの切り替え)は慣れるまで奇妙に感じられるが、一度身に付けると多くの開発者がテキスト編集で劇的に速くなると感じる。手をキーボードから離すことなくコードを移動、削除、コピー、変換できる。
  • 即座に起動する— 大きく設定された Neovim でもミリ秒単位で開く。遅いマシンでは、これが重要になる。
  • SSH 越しに機能する— ターミナルを通じてリモートサーバーのファイルを編集しているなら、Vim はすでにそこにある。グラフィカルなエディターをセットアップしたり GUI をネットワーク越しに転送したりする必要はない。

初心者が慎重に近づくべき理由:

Vim の学習曲線は急だ。「どうすれば Vim を終了できる?」が最も検索されるプログラミングの質問の一つだというジョークが存在するのは、Vim のモーダルな設計が普通のテキストエディターに慣れた人には本当に異質だからだ。多くの開発者は VS Code や Zed に Vim モード拡張機能をインストールすることで両方の良いとこ取りをしている — 好きなキーバインディングを手に入れつつ、残りのエディターエコシステムを手放さずに済む。

おすすめ: 特別な理由(SSH 作業、極端なリソース制約、Vim モデルへの純粋な好奇心)がない限り、VS Code か Zed から始めよう。後で Vim キーバインディングに興味が湧いたら、Vim 自体にコミットする前に既存のエディター内の Vim プラグインを試してみよう。

Visual Studio — Windows ネイティブとゲーム開発向け

Visual Studio(VS Code ではない — 上の注記を参照)は Microsoft の Windows 向けフル機能 IDE だ。以下の分野ではゴールドスタンダードだ:

  • C# と .NET 開発
  • Windows 向け C++(特に DirectX または Windows API)
  • Unity でのゲーム開発(Unity のツーリングは Visual Studio と緊密に統合されている)

それ以外の特定のニッチ以外では、Visual Studio は過剰だ。Windows 専用で、ギガバイト単位でインストールして、Microsoft エコシステムに強く結びついている。

おすすめ: Windows ネイティブアプリを作っている、Unity を使っている、または C# をプロとして書いている場合にのみ Visual Studio を選ぶ。一般的なプログラミング — Rust を含む — には VS Code、Zed、または JetBrains を選ぼう。

Xcode — Apple プラットフォーム開発向け

Xcode は Apple の IDE で、macOS でのみ利用できる。以下には必須のツールだ:

  • iOS と iPadOS アプリ開発
  • macOS アプリ開発
  • watchOS と tvOS 開発

Apple プラットフォーム向けのソフトウェアを作っていないなら、Xcode は優れた汎用エディターが提供しないものは何も提供しない。

おすすめ: Apple のプラットフォーム向けにアプリを出荷することが目的の場合にのみ Xcode をインストールする。それ以外はすべて、上の他のエディターを選ぼう。

まとめ

決断の助けになるクイック比較:

エディター / IDE最適な用途主な欠点
VS Codeほとんどの初心者、どの言語でもメモリと CPU 使用量が多い
Zed速さ重視の開発者、Rust拡張機能のエコシステムが小さい
JetBrains IDEs深い言語固有の作業有料ライセンス、リソースが重い
Vim / NeovimSSH 作業、キーボード中心のワークフロー学習曲線が急
Visual StudioC#、Unity、Windows ネイティブ C++Windows 専用、ほとんどの用途には過剰
XcodeApple プラットフォーム開発macOS 専用、Apple 開発以外では無関係

重要なポイント:

  • 始めたばかりなら、VS Code が安全でサポートが充実した選択だ。
  • パフォーマンスが優先事項で拡張機能が少なくても大丈夫なら、Zed は説得力のある代替だ。
  • JetBrains のツールは、サポートされている言語でプロとして作業していて深い IDE 機能が必要な場合に値する。
  • Vim キーバインディングは、Vim 自体にコミットする前にメインエディター内の拡張機能から試してみよう。
  • Visual StudioXcode は特化したツールだ — ターゲットとするプラットフォームが要求する場合にのみ使う。

一つを選んでインストールして、コードを書き始めよう。後からいつでも切り替えられる。身に付けるスキルはほとんど持ち越せる。