An Empirical Study of Developers' Discussions about Security Challenges of Different Programming Languages

07/29/2021
by   Roland Croft, et al.
0

Given programming languages can provide different types and levels of security support, it is critically important to consider security aspects while selecting programming languages for developing software systems. Inadequate consideration of security in the choice of a programming language may lead to potential ramifications for secure development. Whilst theoretical analysis of the supposed security properties of different programming languages has been conducted, there has been relatively little effort to empirically explore the actual security challenges experienced by developers. We have performed a large-scale study of the security challenges of 15 programming languages by quantitatively and qualitatively analysing the developers' discussions from Stack Overflow and GitHub. By leveraging topic modelling, we have derived a taxonomy of 18 major security challenges for 6 topic categories. We have also conducted comparative analysis to understand how the identified challenges vary regarding the different programming languages and data sources. Our findings suggest that the challenges and their characteristics differ substantially for different programming languages and data sources, i.e., Stack Overflow and GitHub. The findings provide evidence-based insights and understanding of security challenges related to different programming languages to software professionals (i.e., practitioners or researchers). The reported taxonomy of security challenges can assist both practitioners and researchers in better understanding and traversing the secure development landscape. This study highlights the importance of the choice of technology, e.g., programming language, in secure software engineering. Hence, the findings are expected to motivate practitioners to consider the potential impact of the choice of programming languages on software security.

READ FULL TEXT
research
09/11/2023

Demystifying Practices, Challenges and Expected Features of Using GitHub Copilot

With the advances in machine learning, there is a growing interest in AI...
research
06/02/2020

Analyzing programming languages by community characteristics on Github and StackOverflow

The choice of programming language is a very important decision as it no...
research
07/03/2023

Tales from the Git: Automating the detection of secrets on code and assessing developers' passwords choices

Typical users are known to use and reuse weak passwords. Yet, as cyberse...
research
03/15/2023

Practices and Challenges of Using GitHub Copilot: An Empirical Study

With the advances in machine learning, there is a growing interest in AI...
research
05/05/2021

Contemporary COBOL: Developers' Perspectives on Defects and Defect Location

Mainframe systems are facing a critical shortage of developer workforce ...
research
11/03/2022

Revisiting Language Support for Generic Programming: When Genericity Is a Core Design Goal

Context: Generic programming, as defined by Stepanov, is a methodology f...

Please sign up or login with your details

Forgot password? Click here to reset