すっかりプログラミングに AI は必需品。一度 AI に頼っちゃうともう AI なしの生活には戻れんなあ(^^;;;
まあ、AI は嘘もつくので、ある程度のリテラシーは必要なんだけど、単純なミス(そういうのに限ってこちらも思い込みがあるので見つけられなかったりする)を見つけてくれるスピードと正確さは純粋にすごいよ。
ただ、あくまで AI は今ネット上にあふれている情報を元に回答を作るので、このブログでもよく話題にしているけど「Spring Batch 6 のコード例を見せて」と言っても。実際には 6 ではなく、多く出回っている 3 や 4 の情報を元にした回答をしてくる。
それに気づいてこちらが「6 のコードって言ったよね?」と指摘すると、Gemini は「おっしゃる通りです。6 では書き方が変わっています」とか言って修正したコードを提示してくるんだけど・・・
GitHub の AI「Copilot Free」は駄目だな・・・(^^;;; ほんま、まるで老害頑固ジジィや・・・(^^;;;
いつもは Gemini 使ってるんだけど、たまには GitHub Copilot にも聞いてみようと(Gemini よりプログラミングに強そうじゃん(笑))、「Spring Batch のコードのチェックをして」と自作のコードを上げてみたのよ。
そしたら、
import org.springframework.batch.core.job.JobExecution;import org.springframework.batch.core.listener.JobExecutionListener;
を見て、「ほぼ正しいけどインポートを間違えている」と指摘する。core の後ろの job や listener が不要だと言う。
出た!!これ、Gemini もよくやるんだけど、Spring Batch 6 からパスが変わったことを知らないんよね、AI は。ネット上の情報が少なすぎて。
だから俺は「Spring Batch 6 では、パッケージの位置はこれであっていると思うのですが、どうでしょうか?」と聞いたわけ。これで Gemini であれば「正しいご指摘ありがとうございます。おっしゃる通りです」って正しいコードを再提示してくるんよね。
ところが・・・Copilot ときたら自分の間違えを絶対に認めないのよ。
「いいえ、その指定は間違いです。Spring Batch 6 でも正しいインポートは提示したとおりです」と一歩も譲らない(^^;;;
「でも、そのパスだと『インポートされたパッケージは見つからない』ってエラーになるよ」と言っても、「なるほど。結論から言うと、クラスのパッケージ自体は Spring Batch 6 でも提示した内容であってます」と(自分は間違ってないと(^^;;)回答。そして、「多分あなたの依存関係の設定がおかしい。pom.xml を見せてくれれば間違いがどこか指摘してあげましょう」的なことを言うのよ(^^;;;;
Gemini なら(指摘さえすれば)新しい情報を見つけてきてくれるのに、Copilot は全然駄目じゃの。こりゃ、プログラミング領域でも Gemini の方が使えるで(笑)。GitHub信者は怒るだろうけど(笑)
Copilot に pom.xml 見せても当然間違いはなくて、そしたらそのことにはまったく触れず(笑)「依存関係が間違っているはずなので、今度は .\mvnw.cmd dependency:tree の実行結果を見せてください」と。「はぁ?」イライラしつつも実行結果を見せてやったよ。「いいですね、Maven で依存は解決できていて spring-batch-core:6.0.4 が入っていることが確認できました。つまり『クラスが存在しない』の原因はソースのインポートが間違っています」だって(笑)。いや、笑うしかない。
さすがに俺も堪忍袋の緒が切れて、「間違っているのは俺の提示しているパスではなく、そちらが提示しているパスの方だ。もう一度情報を確認しろ」と言うと、「怒らせてしまったようで申し訳ありません。落ち着いて確認しましょう」と言いつつ、「結論から言うと、通常の Spring Batch 6 の配布(spring-batch-core jar)では JobExecution の FQN org.springframework.batch.core.JobExecution です。」と同じ主張を繰り返す。これ、人間同士なら殺人事件に発展してるで(笑)
俺が提示している org.springframework.batch.core.job.JobExecution は一般的な配布物には存在しない、何か特殊な例だと(^^;;;
そして自信満々に「spring-batch-core-6.0.4.jar の中を JobExecution という文字列で検索すれば(俺の過ちが)はっきりするだろう」ってさ(^^;;;
もう付き合えんわ(^^;;;
俺は静かに Copilot に Spring Batch の正式ドキュメントサイトの URL を送ったのであった。
「このサイトを見てください。https://docs.spring.io/spring-batch/reference/api/org/springframework/batch/core/job/JobExecution.html」
そして、しばらくの Thinking... 表示のあと、ついに Copilot も自らの過ちを認めた(笑)
「確認しました -- ご提示の公式 Javadoc を見て正しく理解しました。おっしゃる通り、Spring Batch の該当 Javadoc ページでは JobExecution は次のパッケージになっています:org.springframework.batch.core.job.JobExecution 私の先の案内で誤った情報を伝えて混乱させてしまい、申し訳ありません。訂正します。」・・・と。
長い闘いだった(笑)
ま、Free 版だからというのは当然あるだろうが、俺が使ってる Gemini も無償版だからな。無償版同士だと明らかに Gemini の方が賢いわ。実際、Gemini が 3、4秒で返してきた答えを、Copilot は 20秒くらい考えるってこともちょくちょくレベルで発生したし。(GitHub信者から凄い反論受けそうだけど(笑))
まあ、資金力に差があるのは確かだから思考時間の長短は仕方ないにしても、こちらから「それ違うでしょ?」と言うたものの再調査のロジックは少し考えた方が良いんじゃないかね?Copilot Free。
電気ウナギ的○○
About Backコメント(0)
電気ウナギ的○○