はじめに
今流行りの、GitHub Copilotですが、どれくらいすごいいものなのか、現在未利用の私が利用することでどう変わるかを測定することで示したいと思います。
手順
①チャットGPTに以下の指示を行う。
rubyでプログラムで作成できる簡単なプログラムの例題をコードサンプルなしで10問表示して
返ってきた回答が以下
- 1から10までの整数を順に表示するプログラムを作成してください。
- 1から100までの整数のうち、3の倍数のみを表示するプログラムを作成してください。
- ユーザーに名前を入力させ、"Hello, [名前]!"と表示するプログラムを作成してください。
- ユーザーに2つの整数を入力させ、その和を計算して表示するプログラムを作成してください。
- ユーザーに半径を入力させ、円の面積を計算して表示するプログラムを作成してください(πの値は3.14とします)。
- 与えられた文字列が回文(前後を逆にしても同じになる)かどうかを判定するプログラムを作成してください。
- 1から50までの整数の中で、奇数のみを合計して表示するプログラムを作成してください。
- 1から10までの整数を順に表示するプログラムを作成し、ただし5の倍数のときは代わりに"Buzz"と表示してください。
- 九九の表(1から9までの数値の掛け算表)を表示するプログラムを作成してください。
- ユーザーに数値を入力させ、その数値が素数かどうかを判定するプログラムを作成してください。
②先攻、後攻を決め、以下のプログラム(ruby)で実行し、出た数字に対応する課題をこなす。コードの汚さは無視してとにかく早くコンソール実行して期待した結果が表示されればOKとする。既出の数字が出た場合は再度実行する。
srand Time.now.to_i; rand(1..10);
③3ターン行い、課題に取り組んだ合計時間が短い方が勝利とする。
環境
- Ruby 3.1.2
- エディターはVS Codeを利用
1ターン目
先攻:私
課題No.:10
記録:3分35秒
検索回数:2回
検索ワード
- ruby コンソールから入力
- ruby 素数かどうかを判定するプログラム
成果物
require 'prime'
puts "数字を入れてください"
number = gets
if Prime.prime?(number.to_i)
puts "素数です"
else
puts "素数ではありません"
end
後攻:私 + GitHub Copilot
課題No.:5
記録:50秒
成果物
# パラメータを入力する
print "半径を入力してください: "
radius = gets.to_f
# 円の面積を計算する
area = 3.14 * radius * radius
# 計算結果を表示する
puts "半径 #{radius} の円の面積は #{area} です。"
※自分である程度考えてから提案される補完を利用してコーディングしました。
2ターン目
先攻:私
課題No.:7
記録:1分25秒
成果物
sum = 0
(1..50).each do |i|
next if i % 2 == 0
sum += i
end
puts sum
後攻:私 + GitHub Copilot
課題No.:8
記録:1分25秒
同様に操作して
成果物
(1..5).each do |i|
if i % 5 == 0
puts "Buzz"
else
puts i
end
end
※自分である程度考えてから提案される補完を利用してコーディングしました。
3ターン目
先攻:私
課題No.:2
記録:45秒
成果物
(1..100).each do |i|
puts i if i % 3 == 0
end
後攻:私 + GitHub Copilot
課題No.:9
記録:4分30秒
成果物
puts " 1 2 3 4 5 6 7 8 9"
puts " " + "_" * 20
(1..9).each do |i|
print "#{i}|"
(1..9).each do |j|
print " #{i*j}"
end
puts ""
end
※計算結果の出力自体は1分以内にできたのですが、表のレイアウトを整えることに時間を使ってしまいました。
結果
私:合計5分45秒
私 + GitHub Copilot:合計6分45秒
私の勝利!!!!とても予想外です。
3ターン目に「私」に簡単な問題が回ってきて、「私 + GitHub Copilot」に少し難しい問題が回ってきてアウトプットの レイアウトにこだわって作ろうとしてしまったことが「私 + GitHub Copilot」の敗因でした。
最後に
初めてGitHub Copilotを利用してみましたが、コメントや変数名から何をしたいのかを予想してコードを補完できることに純粋に驚きました。今回はたまたま思うような結果になりませんでしたが、GitHub Copilotに慣れることでより快適にコーディングができるようになると思います。1ヶ月間は無料なのでいろいろ試してみて、手放せなくなりそうなら課金してみたいと思います。