OpenWork Tech Blog

オープンワークの開発チームが届ける、情報プラットフォームを支える技術と文化

業務に役立つのはどっち?VS Code Copilot vs Cursor

こちらは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の設定について

最後に

私たちはこのように新しい技術を積極的に試し、実験結果をもとに、チームで議論しながら日々の業務を改善していくカルチャーを大切にしています。興味がある方は、ぜひ採用ページもご覧ください。

www.openwork.co.jp