成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

哪種編程語言最容易出bug?

開發 后端
研究人員Baishakhi Ray,Daryl Posnett,Premkumar Devanbu和Vladimir Filkov使用GitHub數據進行了一次大規模的實驗性調查,主要研究程序員對于哪種編程語言針對某個特定任務是最好的爭論。研究院通過多重回歸建模、可視化以及文本分析等結合在一起的方法,研究了靜態和動態語言的特性,以及編程語言對軟件質量的影響。

最近,ACM發布了一個關于編程語言對軟件質量的影響的研究報告,在報告中有一些關于bug的有趣發現。

研究人員Baishakhi Ray,Daryl Posnett,Premkumar Devanbu和Vladimir Filkov使用GitHub數據進行了一次大規模的實驗性調查,主要研究程序員對于哪種編程語言針對某個特定任務是***的爭論。研究院通過多重回歸建模、可視化以及文本分析等結合在一起的方法,研究了靜態和動態語言的特性,以及編程語言對軟件質量的影響。

分析得到的結論可以簡單表述為:

語言設計確實對軟件質量有顯著的影響。最值得注意的是,看起來不允許類型混淆的情況要比允許的稍微好一點,而且在函數式語言中,靜態類型也比動態類型要好一些。我們還發現函數式語言比過程語言稍好一些。

這個研究的目的在于闡明編程語言是否會同時影響編程的過程和結果,重點在于靜態和動態語言的比較:

倡導靜態類型語言強大的人認為靜態可以及早發現缺陷,對于他們來說預防遠比治療要好得多;而動態類型語言的倡導者則認為保守的靜態類型檢查是開發資源的浪費,而且還可以依靠強大的動態類型檢查來捕捉類型錯誤。當然,這些爭論大多還是停留在紙上談兵的階段,缺乏事實證據支撐。

為了進行這項調查,團隊選擇了GitHub排名前19位的編程語言,并且添加TypeScript作為第20種編程語言,然后以每種語言編寫的前50個項目為樣本,同時放棄了提交次數少于28次的項目,如果是多種語言提交的項目,那么使用該語言的有效提交次數少于20次也會被放棄。

 

圖0:哪種編程語言最容易出bug?

然后,如上表所示,這項研究分析了以17種語言開發的728個項目。這些項目跨越了18年的歷史,囊括了2.9萬名不同的開發人員,157萬次提交和564625次錯誤修復提交。

接下來,團隊定義了語言類,區分了三個編程范例:程序、腳本和功能;兩類類型檢查:靜態和動態;隱式類型轉換是否被禁止或允許,以及管理內存或未管理內存:

 

圖1:哪種編程語言最容易出bug?

使用關鍵字搜索錯誤修復信息的10%來訓練一個錯誤分類器,研究人員確定了每個bux-fix提交的原因和影響。

 

圖2:哪種編程語言最容易出bug?

要解決的***個問題是“有些語言比其他語言更容易出現缺陷嗎?”“這是用回歸模型來比較每種語言對所有語言平均缺陷數量的影響,并針對缺陷修復提交:

 

圖3:哪種編程語言最容易出bug?

 

[[215685]]

在這張表的頂部是一些變量,這些變量被用來控制可能與之相關的因素。項目年齡主要是反映了在一些較老的項目中,通常會有更多的缺陷修復;參與的開發人員的數量和項目的原始大小也會影響到bug的數量,最終提交的數量也是很大影響因素。

具有***正系數的語言即與缺陷修復更相關的編程語言是c++、C、objective – C,以及PHP和Python。而Clojure、Haskell、Ruby和Scala都有顯著的負系數,這意味著這些語言不太可能導致缺陷修復提交。對于語言類來說,函數式語言的缺陷比程序或腳本語言都要少。

研究人員接下來將注意力轉移到缺陷的傾向上,即缺陷修復對每種語言總提交數的比率,并生成了一個熱圖,其中顏色越深表明越容易出現錯誤:

 

圖4:哪種編程語言最容易出bug?

從上面的熱圖中可以得出結論:應用領域與語言缺陷傾向性之間沒有一般的關系。但是觀察語言類和錯誤類別之間的關系表明:

缺陷類型與語言緊密相關;內存錯誤和并發錯誤等一些缺陷類型也依賴于語言原語。對于特定類別,語言比缺陷整體來說更重要。

 

圖5:哪種編程語言最容易出bug?

由于這個熱圖顯示了Proc-Static-Implicit-Unmanaged 類與并發性和內存錯誤之間的強關系。它還表明,靜態語言通常更容易出現故障和性能錯誤,其次是 Functional-Dynamic-Explicit-Managed 語言,如Erlang。

最終結論

數據表明,函數式語言優于過程語言,不允許隱式類型轉換要比允許更好;靜態類型優于動態類型。而且,管理內存使用比未管理好。此外,一般而言,語言的缺陷傾向與軟件領域沒有關聯。此外,與總體bug相比,語言更與單個的bug類別相關。

責任編輯:未麗燕 來源: 程序師
相關推薦

2013-04-11 09:51:43

編程語言

2020-12-30 10:38:54

漏洞編程語言加密

2011-12-20 15:57:32

程序員

2009-05-13 11:40:19

編程語言開發語言Perl

2020-05-11 10:25:38

編程語言J開發Python

2020-05-28 10:24:42

漏洞編程語言應用安全

2017-03-10 17:00:28

編程語言

2019-04-24 08:34:46

編程語言PythonJava

2021-12-29 22:08:17

編程語言CPython

2021-01-13 10:40:42

編程語言PLCGraph

2021-09-18 14:59:58

語言PythonC語言

2011-08-29 09:19:25

c語言

2019-01-25 18:00:12

編程語言PythonJava

2013-07-19 09:31:09

2011-05-30 15:00:06

編程語言

2011-12-26 09:12:24

編程語言

2021-03-23 14:50:16

編程語言Rust漏洞

2014-02-04 19:44:23

編程語言開發

2010-02-23 09:24:35

2022-05-17 09:32:24

Bash編程Linux
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日本免费 | 日韩男人天堂 | 国产日韩欧美精品一区二区 | 国产精品久久久久久妇女6080 | 欧美在线a| 一区免费 | 亚洲精品乱码 | 国产精品区一区二区三 | 国产探花 | 丝袜 亚洲 欧美 日韩 综合 | 一区二区电影网 | 三级av在线| 欧美黑人狂野猛交老妇 | 国内精品视频一区二区三区 | 一区二区三区不卡视频 | 欧美精品一区二区三区在线 | 国产成人在线一区二区 | 久久久精品一区 | 欧美日韩在线观看视频 | 亚洲高清成人在线 | 免费在线看黄视频 | 亚洲在线一区 | www.com久久久 | 中文字幕一区二区三区在线乱码 | 久久精品播放 | 国内精品视频一区二区三区 | 91精品国产综合久久久久久漫画 | 人人天天操 | 日日操操| 亚洲第一成人影院 | 国产久| 色精品| 欧美不卡一区二区三区 | 欧美h版| 欧美精品一区三区 | 色综合色综合色综合 | 日本电影一区二区 | 欧日韩不卡在线视频 | 精品日韩一区 | 亚洲欧美一区在线 | 成人三级av |