日本語
京都・けいはんな学研都市のソフトウエア開発・Webシステム
株式会社Coolware
けいはんな学研都市

Roo Code VS GitHub Copilot

読者の皆様こんにちは。

今回のタイトルにはなんと、日本語が1文字も含まれていません(笑) 今日のお話の内容は… コーディングの際に使うAIアシスタントについてです。AI関連は日々いろんな機能が増えているので、これまで使っていたモノや経緯も踏まえて現在私が使用しているアシスタントについてお伝えしていこうと思います。

今回のお話の前提

これは賛否両論あるかと思いますが、基本的にこの記事の中の人はAIアシスタントに課金をしたことがありません。”無課金でどこまで使い倒せるか”といった使い方をしています。

これまでの経緯

遡ること2年ほど前、みなさん衝撃を受けられたかと思いますがChatGPTが登場しましたよね。まぁ登場してすぐは、”なんでも回答してくれる面白いAI”にアホな質問ばかりしていたのですが、次第にプログラム書かせられるんじゃね??的な感じになり、コードに関する質問を投げるようになりました。この時はChat GPTに質問を投げて、返ってきた答えを自身で精査しながら利用するスタイルをとっていました。ちなみに私はテキストエディタにVS CodeとSublime Textを使用していました。途中Chat GPTからClaudeに浮気した時期もありましたが、結局使い勝手的にChat GPTに帰ってきました(笑)。このスタイルで利用していたのが昨年2024年の2月ごろまでだったと思います。このころCursorというVS Code派生のテキストエディタの存在を知り、利用し始めるようになりました。今までは叩き台をGPTで作ってそれを元に書き換えるスタンスだったのですが、Cursorでは書き換える際にTabキーでコードの補完をガンガン行ってくれるのでさらに楽ちんになりました。

そして存在を知ったRoo Code

今まではあくまで”別ツールでコードをAIに生成させ、そのコードをコピペで持ってきて編集”をとっていました。しかし先日”Roo Code(旧称:Roo Cline)”というVS Codeの拡張機能を知り私の開発環境に大きな変化が起きました。

ある意味、要求をテキストで打ち込む分にはChat GPTと同じなのですが、VS Codeの拡張機能のため基本的な作業がVS Code内で完結します。まずこれだけでウィンドウの移動が少なくなってちょべリグ。インストール後は設定を行う必要があるのですが、どこのAPIを使うのかを選択できます。

画像には全ての選択肢が入り切っているわけではないですが、上記の選択肢があります。今回は試験的にGoogle Geminiの無料版のAPIキーを取得し、使用しました。ここから取れます。

キーを生成後ペーストすると準備が完了。入力欄に従来通り質問やコードの修正を入力することができます。ここで注目のポイントがテキスト入力欄上部にある”Auto-approve”機能です。平たく言うと、どこまでを自動化するか決定するための機能です。

ここを開くと上記のようなメニューが出ます。全てのチェックを外していると、VS Code内でChat GPT(今回なら)が使えるだけの状態になります。”Read files and directories”にチェックを入れると、現状のプロジェクトファイルの中身を考慮した上で修正点を提示してくれます。次の”Edit files”にチェックを入れておくと、コードの修正を行なってくれます。

というように上から順にどんどん自動で編集することが可能になります。興味本位で全ての機能を試してもいいでしょうし、実践的に許可できる機能だけを利用してもいいでしょう。

どちらにせよ格段に便利になりました。

GitHub Copilotとの比較

VS Codeをそこそこ新しいバージョンに更新していればGitHub Copilotという機能が使えるようになっているはずです。コマンドパレットの右側にヘルメット被ったネズミみたいなアイコンがありませんか??

彼ですね。多分パイロットの格好をしているのでしょう(笑)。この機能はGitHubのアカウントを連携することにより使用できます。とりあえずの連携と使用は無料でできますが、使用頻度によっては有料版の契約が必要です。

アカウント連携が完了するとこんな感じで待機してくれています。先ほどのRoo Codeと比べるとどこまで作業させるのかといった細かい設定が出来なさそうです(もしできるのであればすみません。)。どちらにせよ初見では分かりづらいですね。

今回はのXcodeのプロジェクトファイルがデスクトップに転がっていたので、上記のような質問を投げてみました。ファイルの選択などは全く行なっていませんが、ContentViewが自動的に選択され何やらコードを出力してくれました。

で、どっちがいいの?

今回Roo CodeではGoogle GeminiのAPIを利用していますが、無料版だと使用回数がすぐに上限になってしまうようで、結果を直接比較することはできていません。他のプロジェクトで試した体感としてはRoo Codeはなかなか優秀なように感じました。後日結論が出せれば別記事に書こうと思いますが、みなさんもぜひ試してみてください。