「Pythonコードは欠陥が少ない」という調査結果 50
ストーリー by hylom
色々とツッコミどころがありそうな気も 部門より
色々とツッコミどころがありそうな気も 部門より
insiderman 曰く、
オープンソースで公開されているさまざまなソフトウェアの品質を調査したところ、Pythonが最も高かったという調査結果が発表された(本家/.)。
この調査では、「不具合率(defect density)」という基準を使ってソフトウェアの品質を調べたという(関連するSourceForge.JP Magazineの記事)。一般的に「品質がよい」とされるソフトウェアの不具合率を「1.0」とし、それと比較して「不具合率」を算出したそうなのだが、その結果、オープンソースソフトウェアの不具合率は0.69と、一般的な「品質のよいソフトウェア」よりも欠陥が少ないということが分かったそうだ。
さらに、Pythonコードのみに限った場合は不具合率は0.005と大幅に低かったそうだ。これは、1000行のコード中に不具合が0.005個見つかる、という割合らしい。
また、Python本体のソースコード約40万行のうち、欠陥が発見されたのは996件のみで、そのうち860件は現在までに修正されているという点についても報告されている。
誤解があるといけない (スコア:5, 参考になる)
これ「Python で書かれたコード」じゃなくて「CPython 自体」の話ですよね。
しかも CPython は開発段階で Coverity チェックしているので、見ようによってはチートです。
Re:誤解があるといけない (スコア:4, すばらしい洞察)
タレコミで、元記事にある「Coverity社の調査によると」を削除しているあたりがひどいですね。
別にタレコミ者がPythonをひいきする目的だとまではいいませんが、一般論として、発表元を削除してはいかんでしょう。
Re: (スコア:0)
普通に読むと誰もが、「誰が調査したの?」って疑問に思う記事だよねぇ。
最初の一行なんか特に、主語がないせいで凄い不自然な文章に感じる。
良くわからないけど、 (スコア:1)
「Coverityを使って検査した結果、Coverityを使っているプロジェクトは、
Coverityを使っていないプロジェクトに比べて、(Coverityが検出した)不具合が少なかった。」
ってこと?
Re:良くわからないけど、 (スコア:1)
まあそうなんですけれど、そっち向きに理解すると無意味なのに対し、反対向きに「Coverityを使って検査した結果、Coverityを使っていないプロジェクトは、Coverityを使っているプロジェクトに比べて、(Coverityが検出した)不具合が多かった。」と理解すれば、意味のある報告と言えるでしょう。
というのは、このような対照群との比較をしていなかったとすれば、「そもそもそんな不具合ほとんど発生しねー」だとか「そんな不具合、普通のテスト手法で容易に見つけられるから、リリースバージョンに残ってるわけねー」といった可能性が残っているからです。
Re: (スコア:0)
だって製品売りたいじゃん
Re: (スコア:0)
チートって言葉、日本のゲーマーはよく使うけど、
アメリカでは「浮気する」って意味で、とても、とても、とーっても、よく使われる言葉なので、
なんか女を騙す悪い男、でもモテるんだぜ。ってなイメージがすごくある。
なのでゲーマーの言うチートも間違いではないんだけど、違和感あるなあ。
Re:誤解があるといけない (スコア:1)
つまり、あのキリトさんは、そっちの意味でもチーターだったってことですね。
Re: (スコア:0)
ラノベで言うチーレム(チート+ハーレム)ってのは
ハーレムしつつ浮気もする/されるってことか。カオスだな。
Re: (スコア:0)
トランプもチートチートいうじゃん
Re: (スコア:0)
それはそういうゲームだからw
ダウト!の変種でチート!って声かける奴だよね。
懐かしい。向こうにいた頃よくやった。
本来はチートってそういうズルの意味なのは間違いないよね。
でも日常語としてはもう、浮気って意味で使われ杉だから
そっちのイメージが強すぎるんだよね。
Re: (スコア:0)
日本でも浮気や不倫が男女間の話として定着してるのと似たようなものですかね。
Re: (スコア:0)
まさにそれ!
よい例えをありがとう。
不倫ってのも、もともと人の道を外れた行為全般を指す言葉だし今でもその意味が
失われた訳じゃないけど、みんなが男女のソレのことで使いすぎるから
もうそのイメージしか浮かばないみたいな。
Re: (スコア:0)
アメリカで「浮気する」の意味で使われるのは「チート」ではなく「cheat」。
Re: (スコア:0)
わざわざ書かなくても、アメリカ人が「カタカナ」を一般的に使用している可能性を考える人は
あなたぐらいだから大丈夫。
Re: (スコア:0)
#2455352 はカタカナ語と英語の区別が付いていないようだから親切に教えてくれたんでしょ。
Re: (スコア:0)
カタカナ語と英語の区別をわかってのうえでの話なのに、
もったいぶって的外れの指摘をしていることに対する皮肉でしょ。
Re: (スコア:0)
本人の後出し出ましたー
Re: (スコア:0)
掲示板とかではズルするって意味で普通に見かけますよ
Re: (スコア:0)
日本語の「だます」「ずるする」「インチキする」の意味で使われますよ
浮気の意味しかしらないとすると、相当偏った環境で暮らしてますね。
♯騙すの意味から派生してるんで
Re: (スコア:0)
Re: (スコア:0)
浮気以外の用法で使うと違和感を感じるのってのは相当に偏ってるけど、
浮気の意味にしても「でもモテるんだぜ」なんてニュアンスが「すごくある」かなあ。
Re: (スコア:0)
#2455626 が「不倫」みたいなもんかって書いてくれてるてど、
まさにそういうニュアンスを言いたかった。
不倫って聞いたらなんかオジサンオバサンとかOLと上司とかのイメージわくじゃん?
本来の意味にはそんなイメージは全然含まれてないのに。
そういう変なイメージが言葉に染みこんじゃったので、ある意味本来の語源に近い使用をしている
ゲーマー用語が、逆に違和感を覚えてしまうっていう。
Re: (スコア:0)
全然違う、本来の語源も何も日本語の「不倫」と違って英語のcheatは浮気以外の意味で
今現在普通に良く使われてるでしょうが。
自分の語感が歪んでるのが分からないなら、
ネイティブスピーカーの一般的な言語使用が集まってるようなドメインで検索でもしてみたら?
どのサイトでもいいけど、例えば"cheat site:bbc.co.uk"とかで検索して、検索結果を見てみなよ。
スポーツやゲーム、試験などにおける不正行為の意味ばっかり出てくるでしょ。
Re: (スコア:0)
浮気以外の意味でも使われていることを誰も否定していないんだけど
誰と戦っているの?
あと俺らには同じ英語を喋っているように見えるけど、イギリスとアメリカは違う国なんだぜ。
なるほど (スコア:4, おもしろおかしい)
私も今作っているモノをPythonにすると品質が向上するということかっ!!
# この世でもっとも信じてはいけないのは自分で書いたコード・・・
意味がわからない (スコア:1)
比較対象の品質が良いソフトウェアとは一体?
世間的に使いやすいと評価されているソフトウェアはバグが多いという事?
これだけだと、世間一般に使ってもらえない評価してもらえない様なソフトウェアだから大した機能が無くてバグが少ないとか酷い読み方をしてしまうのでありますが……
#誰かタレコミを解説するタレコミをお願いしますなんでもしますから。
Re: (スコア:0)
タレコミ文を解読する手間かけるくらいなら原文読んだ方が早いよ。
http://www.eweek.com/developer/open-source-python-code-sets-new-standa... [eweek.com]
http://www.ciol.com/ciol/news/194520/coverity-python-sets-level-qualit... [ciol.com]
Re: (スコア:0)
まぢかっ!初めて聞いた。
Pythonってマカー御用達なん?
てっきりyumとかで使われてるし、Linux系の方が利用者、搭載機共に多いと思ってたよ。
非マカーなんだけど、どの辺が御用達たる所以なのか、良かったら教えて-。
Re: (スコア:0)
釣りにしても流石にここまでいくとちょっと引くなw
#最近のメジャーなLinuxディストリビューションはかなりのPython依存だとは思うけど
Re: (スコア:0)
pythonメモリ使いすぎ、と思って切ったら、シャットダウンすらできなくなって、再起動させるのはお約束。
Re: (スコア:0)
意味不明。
状況を詳しく説明してくれ舞香
Re: (スコア:0)
いまどきのLinuxのディストリビューションは、Pythonで書かれたサービスがバックグラウンドで多数動いているから、かな。GUIの制御系に使われていた場合、Pythonをkillしたら、フリーズするんじゃない?
Re: (スコア:0)
yumとかが古いPythonに依存しすぎていて、いまだPython3に全面移行できないのは、どうしたもんでしょうね。サポートが切れたらGnome2みたくforkするのかなあ。
昔、FreeBSDがPerlスクリプトで作られたシステムコマンドを全面的にシェルスクリプトに書き換えて、ベースシステムからPerlを削除したみたいなことは、今は無理だろうし。
Re: (スコア:0)
例えばGoogleAppEngineは未だにpython2.7(というか2.7対応したのがつい最近!)とか
割りとメジャーなOSSもまだ2系依存だったりとか。当面3系に行く気配全くないっすね
python好きなんだが唯一の痛いところは3系への移行が全然進んでない事かな
それで初心者は2系やらせるべきか、3系からやるべきかで結局どっちつかずになる。困ったねぇ
Re: (スコア:0)
FreeBSDは最近もgccをやめてClangに置き換えるとかやってますし、yumのPython3への移行も、やる気なり必要性なりがあれば、できない話でもないように思いますが、中の事情までは存じませんのでなんとも。
Re: (スコア:0)
Yellowdog Updater Modified(http://yum.baseurl.org)のロードマップを見てもPython3対応は作業中どころか予定もありませんね。
要するに (スコア:1)
Coverityのマーケティングですね。
所詮静的解析で分かる範囲の品質であることも忘れてはいけませんね。
Re: (スコア:0)
コードの静的解析だと,pythonのようなインタプリタに対しては
1000行のコードに対して不具合をたったの0.005個しか見つけられない
と言うことですね.
欲しいモノ (スコア:1)
仕様バグを検出するツールが欲しいです。切実に。
# 静的な分析ツールはなくても困らない。単体テストで発見できるから。
# 仕様バグは、どうにもならないです。
notice : I ignore an anonymous contribution.
Re:欲しいモノ (スコア:2)
そして人工知能が仕様バグを検出できるようになったらSE自体もお払い箱に。
Re: (スコア:0)
仕様バグは、 具体的なシミュレーションと早期から外部とのI/Fテストしていくしかないですよねぇ
仕様バグは土壇場で出てくると、 大きな修正はできないから
その場しのぎ的な対応しかとれなくなるのがつらいところ。
># 静的な分析ツールはなくても困らない。単体テストで発見できるから。
それでもテストする前に検出できるのは以外と重要かなーとも思いますがね。
まぁ、 所詮は単なる文法解析という点で結果が中途半端だったりする部分はありますけれど、
コーディングバグつぶせるのはテストするよりも楽です。
C/C++だと、コンパイラのチェックを強化するついでにcppcheckくらいは使ってます。
# gcc -Wall -Wextra とかしたときに、 #include <> は対象外になるようにならないかなぁ
# サードパーティの警告が大量に出てめんどくさい。
Re: (スコア:0)
# gcc -Wall -Wextra とかしたときに、 #include <> は対象外になるようにならないかなぁ
# サードパーティの警告が大量に出てめんどくさい。
isystemかな
http://stackoverflow.com/questions/1867065/how-to-suppress-gcc-warning... [stackoverflow.com]
http://stackoverflow.com/ques [stackoverflow.com]
改行 (スコア:0)
空行でもなんでも1行とカウントしてるんでしょ
改行なんてしなくてもプログラムはうごいちゃうし
一方、俺のpythonでは… (スコア:0)
UnicodeDecodeError: 'ascii' codec can't decode
Re: (スコア:0)
Python3を使いましょう
事前確率を考えるんだ (スコア:0)
一見すると、確率的には不具合が少ないように見えるが、そもそも比較されている他の処理系に比べると相対的に利用数が少ないので、ベイズ的にいうとうんたらかんたら。
#適当
相関と因果 (スコア:0)
くれぐれも「pythonで描けば品質が上がる」とか勘違いしないように
Re: (スコア:0)
from python import fun は止まったまま……
#あpythonで「描いた」わけじゃないか