フジワラレン(研究助手)
いま書き手が写すのは文章だけではない。検索結果の数行と、対話欄に出てきた関数をそのまま仕事場へ運ぶ。そこで起きるのは盗用という大げさな事件ではなく、条件の脱落である。回答が効いた版番号、失敗した前提、書いた人の癖が外れたまま残る。画面には同じコードが見えていても、元の場所と提出先では、依存関係も権限も締切も違う。
しかし、これだけ集めてみて、そうしてそれを、そういう一つの全体として客観して見ると、その間に一人の人間を通して見た現代世相の推移の反映のようなものも見られるようである。(寺田寅彦が現代のコピペ文化を見たら・『柿の種』「自序」 https://www.aozora.gr.jp/cards/000042/card1684.html)
Stack Overflow の回答は、その脱落を見えにくくする。たとえば受理済みの断片を貼ると赤線が消える。しかし `from collections import Mapping` は新しい Python では落ちるし、`verify=False` を含む例は警告まで連れてくる。質問者の環境では応急処置だった一行が、移植先では設定不備を隠す布になる。コメントだけ英語で、変数名だけ社内語のコードが残るとき、借りた箇所はたいていそこにある。
ChatGPT では出どころが一枚に畳まれるので、もっと厄介だ。返答は最初から整っており、補助関数もテスト名も添えてくる。そのため、存在しない引数名や、`await` を置けない位置にある非同期呼び出しまで、もっともらしく通読される。利用者が信じたのは仕様ではなく、破綻なく読める文面である。動いた一回が、そのまま理解済みの印鑑になる。
この書の読者への著者の願いは、なるべく心の忙(せわ)しくない、ゆっくりした余裕のある時に、一節ずつ間をおいて読んでもらいたいという事である。(寺田寅彦が現代のコピペ文化を見たら・『柿の種』「自序」 https://www.aozora.gr.jp/cards/000042/card1684.html)
この「一節ずつ」は、そのままコードの検査手順になる。貼る前に見るべきなのは気分ではなく境界だ。どの版の API か。例外を握りつぶしていないか。同期処理の列に非同期の都合を紛れ込ませていないか。そこを読まずに通した断片は、提出日には役に立つ。それでも二週間後、別の担当者が改修するとき、借りた一行だけが由来を消したまま残る。動作確認の成功が理解の証拠として保管され、誤配線は次のコピー元になる。