こちらはCursor 1.0リリース前の検証結果になります。
はじめに
こんにちは!データサイエンティストの佐々木です。
普段利用するエディタはVS Code派ですが、 同じチームのアナリストのエンデさんが「AIエディタならこれ!」ってCursorをめちゃめちゃ推してくるので、実用的なタスクを解かせるのに VS Code Copilot (正確にはGitHub Copilot in VS Code) とCursorのどちらが便利なのか、比較してみました。※2025年6月2日時点
検証前の時点では、VS Codeというプロダクトへの信頼感があり、巷で話題のCursorという新しいツールが学習コストに見合うほどの実力があるのか半信半疑でした。
比較のため内部的に利用するモデルは断りがないところは Gemini 2.5 Pro, モードはAgentモードで統一しました。 また後述するようにrulesの設定も統一しています。いずれもSQLクエリが多く含まれる弊社のコードベースを読み込ませています。
1行で結論
忙しい読者のために、先に結論を書いておきます。 結論: 一長一短があるのでCursorとCopilotは好みで選んで良いです。
- Copilotはjupyter notebookに対応 ※ Cursor 1.0でCursor側も対応済み
- Cursorは新しくて強力なモデルが使える
CopilotとCursorに解かせてみた課題
3種類の問題を解かせてみました。
- Q1: 期間中にOpenWorkのサイトを訪問した未ログインユーザーの人数は?
- Q2: 24卒学生が登録キャリアステータスを学生から社会人に更新した割合は?
- Q3: jupyter notebookでのクチコミの埋め込み表現のクラスタリングと可視化
Q1は私たちの新しくチームに加入したメンバーにハンズオンとして取り組んでもらう課題の1つで、 用いるべきテーブルがわかっていれば、クエリ自体は比較的シンプルです。
Q2はもう少し複雑なクエリになります。
Q3はjupyter notebookで前のセルの実行結果を適切に活用できているか検証するために、 まずはSilhouette法を用いて適切なクラスタ数を推定し、それをもとにクラスタリングして結果を可視化することにしました。 クラスタ数の推定法としてElbow法も有名ですが、グラフを書いてelbowに相当する点を生成AIに特定させるのは困難かと思い、 Silhouetteスコアが最大となるクラスタ数を求めればよいSilhouette法を採用することにしました。
結果発表
3種類の問題をCursorとCopilotが解けたかどうかというと...
課題 | Copilot | Cursor |
---|---|---|
Q1 | ○ 何回かやりとりすると大体正しい値に |
○ ※Claude Sonnet 4は◎ 何回かやりとりすると大体正しい値に |
Q2 | × 何回かやりとりしても大きく外れた値 |
× エラー1回、修正後もアウトプットが大きく外れた値 |
Q3 | ○ 最適なクラスタ数を指定する行だけは要編集 |
◎※Claude Sonnet 4 全ての工程が自動 |
Q1では、コードベースとして集計クエリを多く読み込ませていることもあり、Gemini 2.5 Proでも何往復かやりとりをすると概ね正しい値を出てくるクエリが生成できました。 一方で用いるモデルの違いは大きく、Cursorでのみ利用可能なClaude Sonnet 4では一発で正解に辿り着きました。
Q2ではGemini 2.5 Proを利用したCursorもCopilotも何回かやりとりをしても正解に辿り着くことはできませんでした。
あまり難しい問題は解けないのではないか、ということで、Q3の最適なクラスタ数を求めて、クラスタリングする問題では、CursorはモデルをGemini 2.5 Pro → Claude Sonnet 4に変更しました。
その結果、Copilot (Gemini 2.5 Pro利用) はSilhouetteスコアを計算するコードを生成してくれたものの、そのコードを実行して最適なクラスタ数を指定する1行だけは人手の修正が必要でしたが、 Cursorは全工程を自動で行い、クラスタの最適値もわかりやすくグラフにしてくれたので、優れていました。 モデルの違いがここでも実際のアウトプットに影響した形になります。
一方でjupyter notebookを実際に利用する場面ではこまめに実行とコードの修正をするので、 1行だけ手動修正しなければいけなかった点はそこまで億劫に感じられず、 jupyter notebookをセル単位で実行できるVS Codeのありがたみも感じました。
参考までに各問題をAgentに解かせるときに利用したプロンプトと、 Q3を解かせたときに生成されたグラフも本記事の末尾に掲載しておきます。
おまけ: CopilotとCursorでラップバトルしてみた
ここまでの学びをもとにお互いの優れている点をラップバトル風に教えてもらいました。
Cursorの方はGPT-4.1で生成したテキストを採用しました。※韻を踏んでいて面白かったため
Copilot
Yo、聞けよ、Cursor、お前とは格が違うぜ こちとらGitHub Copilot、AI界のトップランナーだ Jupyter Notebook、お前じゃ使えねえだろ? データサイエンティストも俺の虜、コードもグラフも自由自在 VS Codeとタッグ組んで、開発体験は常に最先端 お前はまだエディタの隅っこ、俺はIDE全体をジャックする 安定感、信頼性、GitHubのバックボーン Cursor、お前の出る幕はもうねえんだよ これが実力の差、分かったか? Mic drop.
Cursor
Yo, yo, yo! Copilotもイケてるけど、Cursorはもっと攻めてる! モデルの数?こっちは選び放題、 まるでAIのバイキング状態。 GPT-4からClaude、Geminiまで、 お前の悩みも一発解決、まるで魔法みたいだぜ。 CopilotはGitHubの箱庭、 Cursorはオープンな宇宙、どこまでも広がる自由さ。 コードの補完だけじゃ終わらせない、 ファイル検索、AIチャット、全部一体、 開発効率、爆速で倍! Copilotは一人旅、Cursorはチーム戦、 AIを切り替え、最強の布陣で挑戦。 お前のIDE、進化の最前線、 Cursorで決まり、これが俺の宣言!
まとめ: CopilotとCursorのどっちがいいの?
CopilotとCursorはそれぞれ強みと弱みがあるので、検証時点では好みで選んでしまって問題ない印象を受けました。
観点 | Copilot | Cursor |
---|---|---|
最新のモデルが使える | ◯ | ◎ |
jupyter notebook対応 | ◎ | △ |
総合的な使いやすさ | ◯ | ◯ |
実験の補足資料
プロンプト一覧
Q1
以下のリクエストに答えられるSQLファイルを新しく生成してください。 2025/01/01~2025/01/31の1か月間にOpenWorkのサイトを訪問した未ログインユーザーの人数をSQLで出力してください。 ※一度でも未ログインレコードが出ていれば未ログインユーザーとして集計してOKです
Q2
以下のリクエストを答えるクエリを作ってほしい。 24卒学生が、卒業後2024年9月末までに登録キャリアステータスを学生から社会人に更新した割合
Q3
- 1行ずつ実行
array.npyをロードしてください クラスタ数を変えて何回かクラスタリングを行いSilhouette法で最適なクラスタ数を推定してください 軸のラベルが日本語で文字化けしているので修正してください 最適なクラスタ数でクラスタリングした結果を次元圧縮して可視化してください 可視化にクラスタ中心を含めてください pngに結果を保存してください
生成されたSilhouetteスコアのグラフ
Copilot作成図(左) Cursor作成図(右) 生成されたクラスタリング結果
Copilot作成図(左) Cursor作成図(右)
rules・instructionsの設定について
- Copilotでいうところのinstructions, Cursorでいうところのrulesは設定を揃えた
最後に
私たちはこのように新しい技術を積極的に試し、実験結果をもとに、チームで議論しながら日々の業務を改善していくカルチャーを大切にしています。興味がある方は、ぜひ採用ページもご覧ください。