研究顯示,用Python更易出現軟體缺陷!
經常會有剛入行的程式設計師試圖比較各大程式語言之間的差別,然後選擇自己認為較好的程式語言學習。雖然圈子裡公認各大程式語言之間沒有好壞之分,只有是否合適,但不知廣大程式設計師有沒有思考過程式語言對軟體質量的影響呢。
近日,研究人員Baishakhi Ray、Daryl Posnett、Premkumar Devanbu、Vladimir Filkov 從GitHub收集了大量資料(728個專案,6300萬SLOC,29,000作者,150萬提交,17種語言)以回答這個問題:程式語言與軟體質量之間的關係是什麼呢?
他們發現:
程式語言確實對軟體質量有影響,但影響程度一般;
不允許型別混淆的程式語言比允許型別混亂的要更好一些;
在函數語言程式設計語言中,靜態型別比動態型別更好;
函數語言程式設計語言比程式式程式設計語言效果差。
結論:
函數語言程式設計語言編寫的軟體質量顯然不如程式式程式設計語言,C、C ++、Objective-C、Php和Python與更多數量的缺陷修復相關,而Clojure、Haskell、Ruby和Scala則不太可能導致缺陷修復。而在函數語言程式設計語言中,靜態型別語言表現更好。語言型別與軟體缺陷之間存在很小但重要的關係,函數語言程式設計語言比過程式語言或指令碼語言的缺陷更多。缺陷型別與程式語言密切相關, 一些缺陷型別,如記憶體錯誤和併發錯誤取決於語言原語。對於具體類別而言,程式語言對整體缺陷的影響更大。
上圖顯示的第一列為程式語言,最後一列為對應的bug修復數,不難看出Python的41.9明顯高於Java的35.9,如果Python想取代Java,似乎還欠缺很大火候啊!此外,C語言的182.6實在是多得離譜,可能是因為C語言問世較早,所以經歷的摸索期和修復期更長的關係,C++、C#或許與C語言有著相同的原因。
本次實驗所選用的語言和專案資料是從公共GitHub資料庫GitHub Archive中提取出來的。研究人員從GitHub中選擇了前20種程式語言(不含CSS、Shell指令碼和Vim指令碼,因為它們不被視為通用語言)並新增了Typescript。同時,檢索了這些主流程式語言的前50個開源專案!
對於每個專案(共728個),研究人員使用git下載了未合併的提交,包括提交日誌、作者日期和作者姓名。根據每個檔案新增、刪除的行計算程式碼流失和每個提交修改的檔案數,然後從修改的檔案擴充套件中檢索與每個提交相關聯的語言。對於每個提交,通過從相應專案的第一次提交中減去其提交日期來計算其提交週期,並計算其他專案相關統計資訊,包括專案的最大提交週期和參與的開發人員總數。研究人員通過搜尋錯誤相關的關鍵字,確定了對個別專案的錯誤修復提交,比如“錯誤”、修復”、“問題”、“不正確”、“故障“、”缺陷”等。
然後,根據其原因和影響將錯誤分為兩個階段:關鍵字搜尋和監督分類。研究人員使用迴歸模型記錄軟體專案相關的缺陷提交數量。
這些結果是否對程式設計師選擇程式語言有所幫助呢?會不會動搖你現在的基本選擇呢?評論告訴我們吧!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31077337/viewspace-2153943/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 研究顯示分手時男生更易“心碎”
- [20190321]smem的顯示缺陷.txt
- 柳葉刀:研究顯示全球的生育率出現顯著下降
- 軟體用例寫作與缺陷管理
- 軟體測試:軟體缺陷管理
- 軟體缺陷管理流程
- 【軟體測試】缺陷
- 軟體缺陷的案例
- python 出圖中文顯示問題Python
- mac顯示器校準軟體BetterDisplay Pro for Mac啟用版Mac
- 研究顯示45%的惡意軟體有效負載通過微軟Office巨集傳送負載微軟
- 研究顯示TikTok上的性教育資訊顯示出與傳統教育的差距
- Fandom:研究顯示費用問題促使 SVoD 流失
- 各大主流社交軟體顯示ip地址-如何實現ip飄移
- 軟體測試--缺陷報告
- AudienceProject:研究顯示流媒體電視持續激增Project
- 用 Linux 命令顯示硬體資訊Linux
- win10應用程式的圖示顯示不出來怎麼辦_win10軟體圖示不顯示的解決方法Win10
- BetterDisplay Pro for mac(顯示器管理管理軟體) v1.4.15啟用版Mac
- 顯示器管理管理軟體:BetterDisplay Pro for mac v2.0.11啟用版Mac
- BetterDisplay Pro for mac(顯示器管理管理軟體)v2.0.11啟用版Mac
- BetterDisplay Pro for Mac(顯示器校準軟體) v2.0.11啟用版Mac
- 直播軟體搭建,vue3應用elementPlus table並滾動顯示Vue
- win10系統中文軟體顯示亂碼怎麼回事_win10安裝中文軟體出現亂碼解決教程Win10
- Pew:研究發現低收入家庭的青少年更易沉迷Facebook
- UCSF:研究發現年輕時抑鬱到老年更易痴呆
- 研究顯示只有5.5%的被發現漏洞曾遭到利用
- win10安裝軟體出現亂碼怎麼辦?win10系統新裝軟體顯示亂碼的解決方法Win10
- Python一行輸出不顯示的問題Python
- win10很多軟體顯示模糊怎麼辦_win10第三方軟體顯示模糊如何修復Win10
- 軟體危機和軟體缺陷的特點和區別
- windows10每次開啟軟體都要顯示應用商店的解決方法Windows
- 顯示器校色軟體BetterDisplay Pro 直裝版
- Kromtech:研究顯示部分手機遊戲被用於洗錢遊戲
- PNAS:研究發現社會經濟地位低或更易患痴呆
- 顯示卡伺服器現在普遍應用伺服器
- vue控制dom顯示出現後執行的操作Vue
- 軟體測試學習教程——如何寫出高質量的缺陷報告