コメントに罵倒語があるコードは、ないコードより品質が高い
(blog.desdelinux.net)- カールスルーエ工科大学の理論計算機科学研究所に所属する学生、Jan Strehmel が発表した研究。
- 罵倒語を含む 3,800 以上のリポジトリと、罵倒語を含まない 7,600 以上のリポジトリを収集。
- C/C++ コード品質測定ツール
SoftWipeを使ってコード品質を測定し、さまざまな統計手法で分析。 - その結果、罵倒語があるコードのほうが平均的に品質が高いことを確認。
- 罵倒語の使用はコードの複雑さに対する感情的な関与を示し、批判的にコードを分析することで、より良いコードを生み出しているという仮説。
- ただし研究レビューでは、罵倒語とコード品質の関連を見出すのは難しく、研究の代表性も不足していると批判されている.
11件のコメント
Quake のベクトル計算アルゴリズムのコードを思い出します。
float Q_rsqrt( float number )
{
long i;
float x2, y;
const float threehalfs = 1.5F;
x2 = number * 0.5F;
y = number;
i = * ( long * ) &y; // evil floating point bit level hacking
i = 0x5f3759df - ( i >> 1 ); // what the fuck?
y = * ( float * ) &i;
y = y * ( threehalfs - ( x2 * y * y ) ); // 1回目の反復
// y = y * ( threehalfs - ( x2 * y * y ) ); // 2回目の反復、これは削除可能
return y;
}
「コメントに罵倒語があるコードは、罵倒語がないコードより品質が高い。」
「悪態をつく人はきちんとした教育を受けていないはずだ」という通念とは異なり、悪態を巧みに使う人ほど語彙力が相対的に高いという研究結果が出ています。" - https://www.mk.co.kr/news/society/7115122
罵倒語をうまく使う人ほど語彙力が高いという研究もあります。「いや」という表現しか使わない人と、「いや」と「いや sx」を区別して両方使う人がいるなら、後者のほうが語彙力や表現力に優れているようにも思えますね。
この記事を見て、コミットメッセージのコミット種別を
feat:の代わりに f-word に統一しました。同僚のコードを見て悪態をつかずにいられないほど優秀な人がコードを書いたからではないでしょうか
あるいは、コードに悪態を書き込んでいても誰も何も言えないほどの実力がある人が書いたとか、ということではないでしょうか(笑)
私もそう思います。よほどのレベルでないと、コメントにどうしてそんな悪態を…とても書けないでしょうし、自分で検閲してしまう気がします。腕の立つ一部のプログラマーのうち、節度がないか、あるいは意図的に節度を抑えない少数だけが罵倒語を残すのだと思います。元のコメントを見ると、トーバルズへの言及もありますね(笑)
煽情的な記事を書く記者さんたちが好みそうな題材ですね
なんだか妙な研究ですね。罵倒語のコメントを見ると気分が悪くなりそうですが -.-;
要するに、この研究でも罵り言葉とコード品質の間に相関関係はあるものの、因果関係はないため、罵り言葉を使うとコード品質が上がるという話ではないとしています。
また、結論を出すにはまだ早く、さらなる研究が必要だという話もあります。
Hacker Newsでも賛否の議論がかなりありますね。本当にそうだと言う人もいれば、そうではないと言う人もいて……。
コメントの中には、安全な環境(抑圧されていない環境)では罵り言葉が出やすく、そうした環境のほうがより良いコード品質を生み出す、という意見もあり……
また、悪態をつくことで感情が少し発散され、そのぶんコード品質により集中できる、という話もあります。
これが正しいのかはよく分かりませんが、OpenJDKにも罵り言葉があるそうです.
論文のAI要約
このPDFでは、オープンソースコードにおける罵倒語の使用がコード品質と関連しているかどうかを論じています。
これを調査するために、著者はGitHubから罵倒語を含む3,800件超のCリポジトリと、罵倒語を含まない7,600件超のCリポジトリをクロールしました。
著者は、SoftWipeというツールを使って、コーディング標準への準拠に基づきリポジトリのコード品質を定量化しました。
その結果、統計的検証に基づいて、罵倒語を含むリポジトリは、罵倒語を含まないリポジトリよりもはるかに高いコード品質スコアを示しました。
著者は、罵倒語の使用がプログラマーの感情的な関与とコードの徹底的な分析を示し、それがより高い品質につながるという仮説を立てました。
ただし、相関関係は因果関係を意味するものではなく、罵倒語が自動的にコード品質を向上させるわけではないことを著者は認めています。
この研究は興味深い初期結果を示していますが、著者は、より大きなデータセット(C++コードの追加や、罵倒語のより正確な識別を含む)を取得し、
コード品質の結果に対するコード行数、スター数、罵倒語の数の影響をさらに詳しく調査することで、より多くの洞察が得られる可能性があると述べています。
要するに、この研究の主な結果は、オープンソースのCコードにおける罵倒語の使用と高いコード品質スコアの間に、統計的に有意な相関関係が見つかったということです。
しかし著者は、この相関関係の理由と実際上の含意をよりよく理解するためには、さらなる研究が必要だと注意を促しています。
Cのメジャーなカルチャーが攻撃的な批評文化だったからかもしれませんね。