Cursor - The AI-first Code Editor
SNS で名前はちらほら見かけていたけど、どういうものか勘違いしていて、GitHub Copilot と同じエディタ・IDE プラグインで自動補完するやつだが使ってる大規模言語モデルが違う(Codex ベースじゃなくて GPT-4 とか)、という同じ位置付けの競合製品だと思っていたのだが、使ってる人の紹介記事を読んで思ってたのとちょっと違うことがわかった。
The AI-first Code Editor を謳うとおり VSCode ベースのエディタで、自動補完もあるが ChatGPT(あるいは Copilot Chat)のようなものがエディタ部分に密結合されていてよりシームレスに使える、というのが特徴らしい。もちろん Chat も独立してというか傍に並べて使える。
実際少し試してみると、確かにエディタ内で Cmd+K で小さいプロンプトが生えてきて命令を書くとコード生成してくれる、というのはテンポが良いと感じた。Copilot Chat でも指示して生成されたコードをエディタにコピペというか挿入することはできるけど、そもそも Chat 画面にカーソルというか意識を移動するのが結構なコンテキストスイッチになる感じはあった。コーディングと Chat エージェントとの対話は別のアクティビティであるという認知がありそう。それがなくなる、感じなくなるだけでも体感に差があるのだ、という発見があった。
自動補完を使う機会に乏しいプログラマ人生だったので、Copilot の自動補完(というか補完候補をうっすら見せてくれるやつ)にどうも苦手感がある。補完決定のキーバインドがエディタによってまちまちだったり(タブだったりエンターだったり)、で打ち間違えてやり直すときが一文字削除してまた一文字打って待つ、みたいな原始的な手段しかなくてテンポが悪かったり(文字の入力で自動起動するのだけでなく明示的にその場で補完候補の提示を即座に開始させる機能・命令・専用のキーバインドが欲しい)、近年あれでだいぶプログラミングのやる気を削がれている感じがあった。
Cursor はファーストインプレッションの感触は良かったし、これはもはや自分でキーを叩いてコードを書くための道具ではなくて、エディタ上で直接コード生成させるプレイグラウンド的な新しい道具なのだ、というメンタルモデルの変化が発生した、ような気がしなくもない。とすると、Emacs 以外のほぼあらゆるモダンなエディタ・IDE を使うとき常にストレスの種だった「キーバインドが覚えられない・手に馴染まないので考える速さよりずっと遅くしか入力できずイライラしてやる気が失せる」問題に対する回答になりうるかもしれない。そもそも自分で(ほとんど)コーディングしないのなら、効率的なテキスト編集や高速なタイピングも不要で、Cmd+K と手短な自然言語のテキスト入力だけでいいならエディタなんてなんだって大差ないのだ、それこそブラウザの textarea で ChatGPT に命令するのと変わらない。
もうちょっと使ってみつつ、これでコード生成ドリブンで新しい言語の学習とかやってみるのもいいかもなと思う。生成させたコードを片っ端から説明させていく感じで。