なぜGithub Copilotをやめるのか?

CursorとGithub Copilotの能力比較において、ますます多くの人々がGithub CopilotからCursorに移行し始めています。では、なぜCursorはこれほど人気があるのでしょうか?実は、Cursorを推奨する多くの著者が明確に説明していない点があります。CursorはGithub Copilotと比べてどこが優れているのでしょうか?本質的に、Cursorの主な優位性は以下の2点にあります。

著者 鳥飛魚躍 and 原文リンク

ますます多くの人々がGithub CopilotからCursorに移行し始めています。なぜCursorはこれほど人気があるのでしょうか?AIによるコーディング支援において、どのような能力が最も重要なのでしょうか?実は、Cursorを推奨する多くの著者が明確に説明していない点があります。CursorはGithub Copilotと比べてどこが優れているのでしょうか?

本質的に、Cursorの主な優位性は以下の2点にあります:

  1. コード修正能力
  2. コンテキスト参照能力

コード修正能力: Cursorのコア優位性


あなたが記事を書いているところを想像してみてください。「挿入」とは、記事の末尾に新しい内容を追加することであり、「修正」とは、すでに書かれた部分を調整し改善することです。プログラミングにおいても同様です:

  • 「コードの挿入」とは、プログラムの末尾に新しい機能を追加すること
  • 「コードの修正」とは、既存のコードを最適化または修正すること

これらの操作がもたらすコーディング体験は大きく異なります。修正能力を持つことで、あなたは常に待機しているプログラミングアシスタントを持っているかのように、コードを迅速に調整し改善することができます。単に末尾に新しい内容を追加するだけではありません。

このコア優位性により、Cursorは機能的にさらに強力であるだけでなく、コーディング体験全体をよりスムーズで効率的にします。

Github Copilotの限界

Github Copilotは主にコンテキストに基づいてコードを挿入する操作を行います。これは非常に役立ちますが、その機能は新しいコードを追加することに限定されています。

Github Copilotの公式例では:

JavaScriptファイルに関数のヘッダーを入力する必要があります:

function calculateDaysBetweenDates(begin, end) {

すると、GitHub Copilotは自動的に残りの部分を提案します。この操作は単にコードを追加するだけで、現在のコードを修正するものではありません。

Cursorの全方位編集能力

一方、Cursorは新しいコードを挿入するだけでなく、直接既存のコードを修正することができます。

この能力は以下の点に現れています:

  1. 複数行編集: Cursorは現在のコードのコンテキストに基づいて、複数行のコード修正を同時に提案できます。あなたがするべきことは、Tabキーを押してCursorに修正を任せることだけです。

    https://blog-images.sunnyd.top/cursor-tab-lines-edit.gif

    このスムーズな体験は、まるで誰かがあなたと一緒にコードを書いているかのように感じさせます。

  2. インライン編集: Ctrl/Cmd Kショートカットを使用して、編集したいコードブロックを選択し、プロンプトバーに修正指示を入力できます。Cursorはあなたの指示に基づいて、選択されたコードをインテリジェントに修正します。

    https://blog-images.sunnyd.top/cursor-cmdk-edit.png

    Cursorが修正したコードが期待通りであれば、Acceptをクリックするだけです。このインタラクション方法も、Cursorが非常に使いやすいと感じられる理由です。(主にGithub Copilotが修正をサポートしていないため、このような体験を提供できません)

  3. インテリジェント予測: Cursorはあなたの次のコード意図をインテリジェントに予測し、それに応じた提案を行います。

    https://blog-images.sunnyd.top/cursor-tab-cursor-prediction2.png

    この例では、updates変数の名前をupdatesToServerに変更すると、Cursorは以下のupdates変数もupdatesToServerに更新すべきだと予測します。

    したがって、コードの一部を修正した後、Cursorは自動的に他の部分のコードも同期して修正する必要があることを提示します。そのため、あなたはただTabキーを押し続けるだけで、非常に快適に作業を進めることができます。

  4. Composer機能: 現在はまだBeta段階ですが、CursorのComposer機能は、複数のファイルを同時に編集および生成する能力を既に示しており、これは特に複雑なプロジェクトで有用です。

この全方位の編集能力により、Cursorは使用体験においてGithub Copilotを大きく上回り、開発者に本当の「離陸」感覚をもたらします。

コンテキスト参照能力: より直感的で、より強力


AIによるコーディング支援において、正確にコンテキスト情報を理解し活用することは非常に重要です。Cursorはこの点でも優れたパフォーマンスを示し、より直感的で強力なコンテキスト参照能力を提供します。

Cursorの@シンボル参照

CursorのAI入力ボックス(Cmd K、Cmd L、またはTerminal Cmd K)で、@シンボルを入力するだけで、参照可能なコンテキスト情報を示す提案リストがポップアップ表示されます。このリストは入力に基づいて自動的にフィルタリングされ、最も関連性の高い提案のみが表示されます。

https://blog-images.sunnyd.top/cursor-use%40-context.png

参照可能なコンテキストオプションは明確で、ユーザーは各オプションがどのようなコンテキスト情報を表しているかを一目で理解できます。また、これらのオプションは日常の開発で使用される可能性のあるすべてのコンテキスト情報をほぼカバーしています。

特に @Codebase は、グローバルなコード検索能力を提供し、Cursorはプロジェクトコードを事前にIndexing処理し、関連するインデックス情報をローカルに保存します(CopilotはGithubのAPIを使用してリモート検索を行います)。

Github Copilotの複雑な参照方式

一方、Github Copilotは、Chat participantsとChat variablesという2つのコンテキスト参照方式を提供し、それぞれ@#シンボルを使用します。この設計は使用の複雑さを増すだけでなく、命名方法も直感的で明確ではありません。

Cursorと比較すると、GitHub Copilotが提供できるコンテキスト選択範囲は限られており、Cursorのような包括的なカバレッジには達していません。

Chat participants:

https://blog-images.sunnyd.top/github-copilot-chat-participants.png

Chat variables:

https://blog-images.sunnyd.top/github-copilot-chat-var.jpg

特筆すべきは、Github Copilotが今年初めにようやく複数ファイルのコンテキスト導入機能を追加したことです。Githubの更新ログからも、彼らがこの点でCursorから学ぶべきことがまだ多くあることがわかります。

結論

Cursorは、その強力なコード修正能力と直感的なコンテキスト参照機能により、開発者にGithub Copilotよりも効率的でスマートなAIコーディングアシスタントを提供します。もしコーディング効率と品質を本当に向上させるツールを探しているなら、ぜひCursorを試してみてください。これまでにないコーディングの「離陸」感覚を体験できるかもしれません!

あなたはCursorやGithub Copilotを使ったことがありますか?ぜひあなたの経験や意見を共有してください!