オライリー

あるプログラミング言語がその仕事に適したものであるかといった議論は論争に発展しがちだ。

時には宗教戦争の様相を呈することがあるものの、プログラミング言語がコーディングプロセスだけでなく完成した製品の特性にも影響することは多くの方が同意するところだろう。

これについてカリフォルニア大学デイビス校のコンピューターサイエンス研究者らが、プログラミング言語のソフトウェア品質に与える影響(PDF)に関する調査結果を発表した。

研究ではGitHubの729プロジェクト(17言語、29,000人が書いた8,000万行のソースコード、150万コミット)を分析。大きなサンプルサイズを利して混合研究法のアプローチをとり、複数の回帰的モデリングやテキスト解析を組み合わせて静的型付けと動的型付け、型付けの強弱といったプログラミング言語の特徴がソフトウェアの品質に与える影響を調べた。

異なる手法による調査結果を組み合わせ、チームの大きさやプロジェクトの大きさ、プロジェクトの歴史といった影響を与える要素を調整することで、言語設計がソフトウェア品質に及ぼす影響は、大きくはないが有意なものであることが明らかになったとのこと。

論文によれば、

最も明らかなのは、強い型付けは弱い型付けよりもそれなりに優れており、関数型言語では静的型付けが動的型付けよりもやや優れている点だ。また、関数型言語は手続き型言語よりもやや優れていることもわかった。

言語設計による影響は、プロジェクトやチーム、コミットの大きさといった要素に大きく支配されている点も注目に値する。ただし、関数型で静的かつ強い型付けを持つ言語を好む性格、といった識別困難な要素が影響している可能性が高い点にも注意が必要だ。

とのことだ。
http://developers.srad.jp/story/14/11/08/081210/
https://twitter.com/ProgrammingMono/status/665427558683574272


スポンサードリンク
2: ヒップアタック(SB-iPhone)@\(^o^)/ 2015/11/14(土) 16:35:04.55 ID:qdG0UlS40.net

言語より開発環境だろ


9: バーニングハンマー(芋)@\(^o^)/ 2015/11/14(土) 16:39:27.71 ID:zh1rgSUr0.net

>>2
今の時代、環境はどれも横並びならくい揃ってきた


12: スターダストプレス(庭)@\(^o^)/ 2015/11/14(土) 16:40:20.67 ID:6DcuAXDv0.net

ざまりんってなあに?


20: ボ ラギノール(空)@\(^o^)/ 2015/11/14(土) 16:46:23.45 ID:8M0bk7MI0.net

>>12
Xamarin Studioでググれ。
関数型でまともな統合開発環境とライブラリがあるのはF#くらいなのは確か。

ただ素人には無理だと思う。


4: スパイダージャーマン(新疆ウイグル自治区)@\(^o^)/ 2015/11/14(土) 16:36:39.15 ID:0lcqxfFq0.net

結局はC言語でいいってことです。


5: ラ ケブラーダ(関東・甲信越)@\(^o^)/ 2015/11/14(土) 16:37:59.04 ID:A62wXykAO.net

品質に言語関係なくね?
デバッグしてるヤツラの質とデバッグ時間


15: ボ ラギノール(空)@\(^o^)/ 2015/11/14(土) 16:43:14.74 ID:8M0bk7MI0.net

>>5
動的言語ではデバッグ時に型チェックの単体テストとかやってるからな。
売り逃げでデバッグしない前提なら早いが、デバッグする前提だと効率が死ぬほど悪い。

オブジェクト指向も同様で、規模がでかくなると各クラスのインスタンス変数が昔ながらのグローバル変数なみの影響を及ぼす。


17: スターダストプレス(庭)@\(^o^)/ 2015/11/14(土) 16:45:09.49 ID:6DcuAXDv0.net

>>15
オブジェクト指向も同様で、規模がでかくなると各クラスのインスタンス変数が昔ながらのグローバル変数なみの影響を及ぼす。


それはせっけいがわるいだけでは


21: ボ ラギノール(空)@\(^o^)/ 2015/11/14(土) 16:47:27.98 ID:8M0bk7MI0.net

>>17
オブジェクトの状態で動作が変わるメソッドなんかが大量に発生すると
デバッグというかテストが凄いことになる。


59: マシンガンチョップ(神奈川県)@\(^o^)/ 2015/11/14(土) 18:55:48.72 ID:MkNZ2HrH0.net

>>21
ポリモーフィズムも関数ポインタもテストするのは嫌だな


23: アイアンクロー(大阪府)@\(^o^)/ 2015/11/14(土) 16:48:59.98 ID:1oNysaMy0.net

>>21
かといってオブジェクトを消して作り直すと
その分岐を呼び出し側が受け持つ


13: 断崖式ニードロップ(catv?)@\(^o^)/ 2015/11/14(土) 16:40:24.86 ID:/OKGV0a00.net

DBの設計こそ命。


14: ネックハンギングツリー(茸)@\(^o^)/ 2015/11/14(土) 16:42:23.66 ID:sD74uHd+0.net

>>13
まだDB設計とかやるやついるの?
オーパーツやなー。


25: シューティングスタープレス(チベット自治区)@\(^o^)/ 2015/11/14(土) 16:49:56.65 ID:HsiQAQj80.net

>>14
オーパーツの意味


33: ストマッククロー(北海道)@\(^o^)/ 2015/11/14(土) 16:59:03.90 ID:Ms85/20i0.net

>>14
オーパーツwwwwwwwwwwww


7: エルボーバット(チベット自治区)@\(^o^)/ 2015/11/14(土) 16:38:23.11 ID:mUON4fvl0.net

日本では言語について興味のないSierが選択するから意味ない


19: アイアンフィンガーフロムヘル(禿)@\(^o^)/ 2015/11/14(土) 16:46:11.59 ID:T+0dXmkc0.net

上流はそんなん興味ないぞ


26: バーニングハンマー(芋)@\(^o^)/ 2015/11/14(土) 16:52:52.91 ID:41zA7zn00.net

>>19
だから日本は米国に勝てない


16: バーニングハンマー(チベット自治区)@\(^o^)/ 2015/11/14(土) 16:44:59.37 ID:N9OfuB740.net

クラスやらライブラリやらフレームワークがないと
何も作ればいやつがほぼ100%


10: ドラゴンスープレックス(空)@\(^o^)/ 2015/11/14(土) 16:39:51.39 ID:lu7FkWlG0.net

慣れた言語が一番早いし安定してる


36: パイルドライバー(庭)@\(^o^)/ 2015/11/14(土) 17:02:38.69 ID:CZid2UZY0.net

逆に、F#を使いこなせるIT奴隷がどれくらいいいるのか


45: エルボーバット(新疆ウイグル自治区)@\(^o^)/ 2015/11/14(土) 17:17:30.17 ID:6sHW2Mt20.net

関数型は最初のうちは頭の体操になって楽しいけど
慣れたら手続き型と同じで作業になる・・


46: 男色ドライバー(芋)@\(^o^)/ 2015/11/14(土) 17:17:42.39 ID:S/03WVyT0.net

関数型は上級開発者じゃないとまともに理解できない


39: アイアンクロー(大阪府)@\(^o^)/ 2015/11/14(土) 17:05:06.68 ID:1oNysaMy0.net

let邪魔じゃない?


31: アルゼンチンバックブリーカー(dion軍)@\(^o^)/ 2015/11/14(土) 16:57:02.91 ID:5xWjeNgA0.net

こんな最新の技術どうやって勉強するんやろ


32: アイアンクロー(大阪府)@\(^o^)/ 2015/11/14(土) 16:58:13.05 ID:1oNysaMy0.net

>>31
F#はMicrosoftの無料版についてるそうだよ


54: ニールキック(東京都)@\(^o^)/ 2015/11/14(土) 17:40:15.44 ID:mnhXbHi+0.net

F#?
Cとの間のDとEはどこいったの?


56: 張り手(芋)@\(^o^)/ 2015/11/14(土) 17:48:36.08 ID:ylGrTPh50.net

>>54
ALGOL
BASIC
C
Delphi
Erlang
F#
Go
Hack


49: フロントネックロック(東京都)@\(^o^)/ 2015/11/14(土) 17:21:40.18 ID:i7D4ORGR0.net

関数型を使う機会がない
emacsのlispなら使うかもと思ったが
デフォのemacsで満足して結局つかわない


35: ナガタロックII(dion軍)@\(^o^)/ 2015/11/14(土) 17:02:17.09 ID:mv1VtKDJ0.net

この種の話をすると、みな自分の経験を全体に当てはめようとする。
群盲象を撫でるを奴ばかりになる。

これがコンピュータ技術者は視野が狭いことの証左です。


27: イス攻撃(中国地方)@\(^o^)/ 2015/11/14(土) 16:53:59.22 ID:96uy/f/b0.net

仕様によるのでは?


47: かかと落とし(新疆ウイグル自治区)@\(^o^)/ 2015/11/14(土) 17:19:37.98 ID:qjNs7hol0.net

言語より、やる気だわ。


元スレ: http://hayabusa3.2ch.sc/test/read.cgi/news/1447486446/