ソースコードの中で罵倒してる? 147
ストーリー by headless
罵倒 部門より
罵倒 部門より
カールスルーエ工科大学の学生、Jan Strehmel 氏が C 言語で書かれたオープンソースコードを調べたところ、罵倒語を含むソースコードがコーディング標準により準拠していたそうだ
(論文: PDF、
Ars Technica の記事)。
調査は GitHub で公開されている C 言語のオープンソースコードを用い、Strehmel 氏の所属する研究グループが開発したオープンソースのコーディング標準準拠チェックツール「SoftWipe」で 10 点が満点となる評価を行っている。対象は 300 個以上の英語の罵倒語のうち少なくとも 1 個含む 3,800 件以上のリポジトリと、罵倒語を含まない 7,600 件以上のリポジトリとなっている。
SoftWipe による評価は罵倒語を含まないリポジトリで中央値 5.41 (信頼区間 5.38-5.45、標準誤差 0.02)、罵倒語を含むリポジトリで中央値 5.87 (信頼区間 5.81-5.93、標準誤差 0.01) となり、罵倒語を含む方が 0.5 点ほど高くなっている。普段から自分の各ソースコードでしばしば罵倒語を使う指導教授の Alexandros Stamatakis 氏はこの結果を聞き、「cool」と思ったそうだ (残念)。
Strehmel 氏は同じ研究室のメンバーから Linux のソースコードに多数の罵倒語が含まれるというグラフを見せられて今回の研究を思いついたという。Linux 開発者の Linus Torvalds 氏は罵倒表現でも知られるが、Linux のソースコードでは 2018 年の Code of Conduct 更新を境に「fuck」が急減したようだ。スラドの皆さんはソースコード内で罵倒しているだろうか。
調査は GitHub で公開されている C 言語のオープンソースコードを用い、Strehmel 氏の所属する研究グループが開発したオープンソースのコーディング標準準拠チェックツール「SoftWipe」で 10 点が満点となる評価を行っている。対象は 300 個以上の英語の罵倒語のうち少なくとも 1 個含む 3,800 件以上のリポジトリと、罵倒語を含まない 7,600 件以上のリポジトリとなっている。
SoftWipe による評価は罵倒語を含まないリポジトリで中央値 5.41 (信頼区間 5.38-5.45、標準誤差 0.02)、罵倒語を含むリポジトリで中央値 5.87 (信頼区間 5.81-5.93、標準誤差 0.01) となり、罵倒語を含む方が 0.5 点ほど高くなっている。普段から自分の各ソースコードでしばしば罵倒語を使う指導教授の Alexandros Stamatakis 氏はこの結果を聞き、「cool」と思ったそうだ (残念)。
Strehmel 氏は同じ研究室のメンバーから Linux のソースコードに多数の罵倒語が含まれるというグラフを見せられて今回の研究を思いついたという。Linux 開発者の Linus Torvalds 氏は罵倒表現でも知られるが、Linux のソースコードでは 2018 年の Code of Conduct 更新を境に「fuck」が急減したようだ。スラドの皆さんはソースコード内で罵倒しているだろうか。
古の禁忌 (スコア:1)
/* よくわからないが動いているので以下は触らないこと */
Re: (スコア:0)
/* とりあえずスリープを入れてみる */
Re:古の禁忌 (スコア:3, 参考になる)
TEMPORARY, I HOPE HOPE HOPE
とコメントに書かれたアポロ誘導コンピュターのプログラムを思い出した。
https://aerith7.hatenablog.com/entry/2016/12/21/171726 [hatenablog.com]
例:
HONI SOIT QUI MAL Y PENSE(悪意を抱く者に災いあれ)
NOLI ME TANGERE(私に触れるな)
Re:古の禁忌 (スコア:1)
いまどきのLinuxで、それで動いてたらすごいなぁ。
Re: (スコア:0)
今だと「同じ仮想マシンで実行するとなぜかうまくいかないので別コンテナを起動する」みたいな豪快なものになってたりするかも
Re: (スコア:0)
シェルスクリプトで( ... )& の後のwaitがどういうわけか無視されることがあるが、( ... ; sleep 1 )& とすると正しく動くことがあって、結局バックグラウンド処理が早すぎるとwaitより先に終わってしまうことがあるんだろうという結論になりました。あっているのかな…?
Re:古の禁忌 (スコア:2)
おそらく間違っています。
バックグラウンド処理の中で、さらにバックグラウンド処理などを実行していて、その終了を待つ必要があるのに、待っていない、というような可能性が考えられます。
例えば、下記のコマンドを実行した場合、 1 3 2 の順に出力されます。
( echo 1; (sleep 5; echo 2) & sleep 1) & wait; echo 3
svn-init() {
svnadmin create .svnrepo
svn checkout file://$PWD/.svnrepo .
}
変なコーディングしないと動かないところがストレスの元 (スコア:1)
仕様がおかしいのを口として書き残している。
元がが腐っているのでしょうが無いのでしょう。
一度作ると忘れるので、後でいじった時になぜそういう変な作り方をしたかわかるように書いている
大事なことだね。
Re:変なコーディングしないと動かないところがストレスの元 (スコア:1)
んでなんでその記述と実装が食い違ってんですか
Re: (スコア:0)
これかな。
罵倒語は使わないけど、おかしなコードを書くことになった理由を書き連ねると
どう取り繕っても「おまえ(製品を作った人)のライブラリはクソだ。引数を無視した動作をするし、明らかに間違った動作をする。ドキュメントは中途半端で記述が足らないか、明確に間違ってる記述がある。」
という主張が見え隠れする。
Re: (スコア:0)
その時のコメントがただの指摘をこえた罵倒になるというのは、
苦労してバグ追跡した犯人が仕様バグや規格違反だった時の怒りなんでしょうね。
直せないコードに仕込まれたバグを罵る行為は自分も身に覚えがありますが、
ググって出てきたレベルの「踏まなかった地雷」を罵倒することはそうそうない。
Re: (スコア:0)
コードじゃなく設定ファイルのコメントだけど、Control-Hを押すとDEL(177)が来るんで"BRAIN DAMAGED"と書いたことがある。
C言語の黎明期の貢献者なんて口癖悪いのがデフォでは (スコア:0)
日本語だがhogeとかfugaとかを使っている時点でお察し
#60年代から80年代の価値観に対して、今の価値観から「それは倫理的でない」って「異世界転生無双」するの、どうなのかな
##逆に、いまから数十年先の世界から「異世界転生」してきた主人公位から「2020年代って、おかしくない?、と現代が『倫理観無双』」されたりしなくない?
Re:C言語の黎明期の貢献者なんて口癖悪いのがデフォでは (スコア:1)
Re: (スコア:0)
昔の倫理(価値観)を今の倫理(価値観)で裁くな、なんて主張をたまに見かけるけど、そのほとんどが間違っていると思う
昔の価値観を歴史として受け入れることと、今の価値観に照らして評価することは両立する
というか両方やらなきゃだめ、歴史に学ぶことにならないから
今の価値観とは相いれないから普遍的に悪、ではなくて、今の価値観とは相いれないから「我々は」それに向かわないよう注意すべしと考えなければならない
長々書いたけど#の部分に自分が答えるならば、どちらも言動として正しい
ただし、当時の人間の行動を省みて自らの行動に否定的に反映させる意図においてのみ
否定するだけなら、愚かと断じるだけなら、嘲笑うだけなら、倫理観無双はどうなのかという問いと同じくらい意味が無い(逆に言えば愚かと嘲笑うのもそれに止まらなければ行儀は悪いが間違いでは無い)
考える際に普遍的な正邪を意識するから間違うのだろうね
Re:C言語の黎明期の貢献者なんて口癖悪いのがデフォでは (スコア:2)
十分過去の発言を掘れば、人に対して現在の価値観に反する発言を見つけるのはある程度簡単なわけですよ。すると本人のアクション不要で人をキャンセルすることができます。それはフェアじゃない、有害だ、というのが"裁くな"ではないかと。
Re:C言語の黎明期の貢献者なんて口癖悪いのがデフォでは (スコア:1)
その「今の価値観に照らして評価すること」という時の「今の価値観」というものを、
みんなが「俺/特定組織の価値観こそが今の価値観だ」と思いこんじゃうからなぁ。
階級差とか文化圏を特定しつつやるならいいと思うけどね。
例えば Geek とか Nerd とかゲーマーの文化圏だと罵倒語とかはたしなみみたいなもんじゃないの?(スノッブってやつ)
一方で人文系高学歴意識高い系の文化圏だとそれは悪だよねーって。
それぞれが自分の文化圏の中でその語を使うこと自体は問題にはならない。
どこかの文化圏の価値観を他の文化圏に押し付ける結果にならなければいいなぁ、と
思うんだけどねぇ。
# mishimaは本田透先生を熱烈に応援しています
Re: (スコア:0)
>歴史に学ぶことにならないから
これは賛同できる。我々の価値観は今を基礎として、次に一歩を進む時に、過去の事象を糧として進むことは正しい
>昔の倫理(価値観)を今の倫理(価値観)で裁くな、なんて主張をたまに見かけるけど、そのほとんどが間違っていると思う
例えば中世日本の価値観だと、「家」の存続を「大事」におもって、「個人」の幸福や身体・生命を蔑にすることがあるが、これをいまの個人の幸福追求主義の価値観で裁くのは間違っていると思う。彼らには彼らの生命財産を賭けて保ちたい価値観があったのは間違いない。それは現代の価値観では量れない。
これは (#4429476) さんの意見に真っ当に反対意見である。
Re: (スコア:0)
おっしゃること分かります
私の角を立てる書き様にも真っ当に考えを返していただけたこと、ありがとうございます
私は、(#4429483)さんが書かれた
>我々の価値観は今を基礎として、次に一歩を進む時に、過去の事象を糧として進む
そのために過去を「裁く」ことも必要であると考える者で、これに賛否があることは当然と思います
ただし前述のとおり、「裁く」段においてもただ否定するのみの行為は厳に慎むべきと考える次第です
Re: (スコア:0)
なろう小説みたいなご都合主義だから「無双」できるのであって、未来の倫理観を過去で振りかざしても「このアホは何を言っているんだ?」が妥当な反応でしょ
内容によっては牢屋にぶち込まれたり処刑
稀にいる進歩的な人(過去の世界ではただの変人)は賛同するかもしれない
Re: (スコア:0)
なろう小説を読んでるとここまで頓珍漢なことをかけるんだなと思いました。
いやぎゃくかなろう小説くらいしか読めないのか。
Re: (スコア:0)
口汚さとhoge/fugaは全然別の話に思えるけど、これ何かの隠語だったの?
Re: (スコア:0)
※人情本・由佳里の梅(1830)初「下の宿の野良七に、鼻柱アかぶりかかれて、フガフガ言って」
ただの擬音語じゃねーか。
Re: (スコア:0)
それでこの調査って、ソースに罵倒語を書くような劣った奴は断罪されろって論旨だったんですか?
Re: (スコア:0)
hoge/fugaはfoo/barみたいなもんでしょ
Re:C言語の黎明期の貢献者なんて口癖悪いのがデフォでは (スコア:1)
IC434 (スコア:0)
コメントに書いたことは…あったかなあ?
# え?そっちじゃない??
Re: (スコア:0)
コメントにバイナリーを埋め込むのが標準
Re: (スコア:0)
おんあみりとどはんばうんはったそわか
# 悪いコードを懲らしめます
罵倒語は書いたことが無いけれど (スコア:0)
馬超語なら書いたことが
f**kMS (スコア:0)
とかVBAコードの中に書いたりしてませんよ。ええ。
Re: (スコア:0)
ああ、何かを罵倒していた記憶を鮮明に大量に思い出せるのはVBAの仕事やってた時か…。
その使用を進める人に対しても、それで書かれたコードに対しても、それで作られたシステムに対しても、言語と環境に対しても。
Re: (スコア:0)
VBAって基本コード公開されるし、そんな長いコード書くわけでもないので罵倒するには良い開発環境ではないのでは?
Re: (スコア:0)
邪悪なM$君が召喚されちゃうぞ
Re: (スコア:0)
そういえばその手の遊びはCやVBからだったなと思ったら
COBOLやFORTRANはコーディングシートに手書きさせられ(てレビューにまわされ)たから
ふざけようが無かったわ
罵倒されたことはある (スコア:0)
ファイルと関数/変数名、ついでにテーブル関連を全て全半角混じり文字(および10語ぐらいの文章)にしたら、怒られた。
OSや言語、DBMS的に動作保証されてるし、日本人的に分かりやすく、可読性という意味でメンテしやすいのだから良いだろ別に… と思った
Re:罵倒されたことはある (スコア:1)
メンテしにくいだろ。見た目の区別がつきにくい文字があるだろうが。
Re:罵倒されたことはある (スコア:1)
そういや昔話だがOracleにSJISでスキーマ定義した奴がいて、後にOracleをアップデートしようとしたらシステムがUTF-8だとバイト数の制限で移行できないというバカがいたな。(1文字2BYTEが3BYTEになってテーブル名だか列名だかの制限超えたらしいw)
そもそも当時のOracleは非ASCIIなテーブル名とか保証してないのにいきってやってたらしい。(裏技的に定義できたけど保証はしてない)
そのシステムのためだけにOracleがSJISのままにとなって大変だったらしいw
Re: (スコア:0)
自分しか使わないものはそれでもいいが、共同開発する場合は一貫性をもった命名にしないと、可読性が著しく低下する。
既存のライブラリとの一貫性も考慮するなら、通常の命名は英語一択。
怒られるのは当然。
Re:罵倒されたことはある (スコア:1)
法律関連/税務関連のプログラムは、変数名や関数名でその手の用語は必ず漢字なりの日本語使うのが基本。ローマ字とかにすると一文字違いで全く別のものを扱ってしまうこともあるし、英訳も一意に決まると限らん。
その手のミス一つですら数億単位の損害賠償になったりするから、そちらの分野では日本語で命名するってのが一貫性をもったスタイルで、要求仕様だったりするんだよね。
Re: (スコア:0)
開発環境の関係(複数のエディタ使用)でTabとスペースが混在したコード書いてたら怒られたことあったっけ
そんなに気になるならわざわざ空白文字表示設定なんか有効にしなきゃいいのにとは思った
Re: (スコア:0)
落語の寿限無みたいなソースコード、当人以外誰も読みたくない
ない (スコア:0)
ソースコードを読みながら悪態つくことなら良くあるが。
「この糞コードを書いたのは誰だあ」
Re: (スコア:0)
「誰かのせいにしたいが自分の顔しか思い浮かばない」
# よくあるよね
Re: (スコア:0)
三日前の自分は他人です。
そう思ってコメント書けと自らの戒めにしてるんですけどねぇ・・・
Re: (スコア:0)
(´・ω・)つ鏡
Re: (スコア:0)
Cで未だに20年前のをメンテさせられてるけど
Re: (スコア:0)
20年前のならまだいいな。30年前のまであるよ。
Re:警告が書かれていたことはある (スコア:1)
// これは別に罵倒ではないんだそうで
Re:当時のgccが (スコア:1)
// gcc-2.95.3にもaligned属性がありましたが、ちゃんと効くかどうかはリンカ依存