全3616文字
PR

 プログラミングでときどき話題になるのが、コードをコピー・アンド・ペーストすることの是非だ。コピー・アンド・ペーストを「コピペ」とカジュアルな感じに略すことも多い。

 コードのコピペは、一般にはあまりいいイメージを持たれていない。能力が低いプログラマーを「コピペプログラマー」と呼ぶこともある。自分でコードを書けず、ネット検索で見つけてきたコードをコピペでつなぎ合わせてプログラムを作るようなプログラマーという意味だ。

 ただ、コードをコピペすることがすべて悪いわけではない。例えば、プログラミング言語の公式マニュアルからサンプルコードをコピペし、自分の用途に合わせて書き換えるといったことはよく行われている。こうしたコピペには特に問題はない。

 要するに、コードのコピペには「問題ないコピペ」と「悪いコピペ」の2種類があるのだ。これらを分ける要素は、個人的には2つあると考えている。

 1つめの要素は「コピペするコードの内容を理解しているか」ということだ。自分がコピペしようとしているコードの内容をすべて説明できるなら、そうしたコードをコピペするのはそれほど問題ないと思う。自分で書こうとすれば書けるコードを、労力の節約のためにコピペしているだけだからだ。そのコードに何か問題があったり修正する必要が出てきたりしたときも、内容を理解していれば対処できる。

 ところが、いわゆるコピペプログラマーは、コードの内容を理解せずにコピペする。これが諸悪の根源だ。そもそも、内容を理解していないコードが正しく動作している保証は全くない。コピペプログラマーはエラーが出なくなった時点で満足してしまうが、こんなに危ないことはない。「エラーにはならないが誤った結果になるプログラム」は、エラーで動かないプログラムよりもはるかに有害だ。

 2種類のコピペを分けるもう1つの要素は「どこからコピペするか」である。公式マニュアルのようなしっかりとしたところからコピペするのであれば問題ない。ところがインターネットには、内容が誤っていたり、品質が低かったり、セキュリティー上の問題を含んでいたりするコードも転がっている。

 能力が低いプログラマーが、検索でたまたま見つけたそうしたコードをコピペするのは問題が多い。また、著作権の問題もある。オープンソースソフトウエアは一定の条件下でコードの流用が認められていることが多いが、怪しげなソースからコピペしたコードはライセンス違反などの法的な問題を抱えている危険性もある。

 もっとも、コピペ元の品質が高いかどうかは、きちんとコードを理解できるプログラマーでなければ見極めは難しい。「どこからコピペするか」という要素は、結局は「コピペするコードの内容を理解しているか」という要素に含まれていると考えることもできる。