Skip to main content
Log in

Come for syntax, stay for speed, understand defects: an empirical study of defects in Julia programs

  • Published:
Empirical Software Engineering Aims and scope Submit manuscript

Abstract

Julia has emerged as a popular programming language to develop scientific software, in part due to its flexible syntax akin to scripting languages while retaining the execution speed of a compiled language. Similar to any programming language, Julia programs are susceptible to defects. However, a systematic characterization of defects in Julia programs remains under-explored. A systematic analysis of defects in Julia programs will act as a starting point for researchers and toolsmiths in building developer tools to improve the quality of Julia programs. To this end, we conduct an empirical study with 742 defects that appear in Julia programs by mining 30,494 commits and 3,038 issue reports collected from 112 open-source Julia projects. From our empirical analysis, we identify 9 defect categories and 7 defect symptoms. We observe certain defect categories to be Julia-specific, e.g., type instability and world age defects. We also survey 52 developers to rank the identified categories based on perceived severity. Based on our empirical analysis, we provide specific recommendations for researchers and toolsmiths.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 2
Fig. 3
Fig. 1
Fig. 5
Fig. 6
Fig. 2
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19
Fig. 20
Fig. 21
Fig. 22
Fig. 3
Fig. 4

Similar content being viewed by others

Data Availibility Statement

Dataset and source code used in our paper is publicly available online (Rahman , 2022).

Notes

  1. https://github.com/JuliaLang/julia

  2. https://github.com/JuliaLang/Pkg.jl

  3. https://github.com/JuliaInterop/Cxx.jl

  4. https://www.amazon.com/gift-cards

  5. https://github.com/JunoLab/Atom.jl/commit/4650266b3c2a74d2f6db61e8710ae5b2cd8593a9

  6. https://github.com/JuliaParallel/Hwloc.jl/commit/cdcf861c5ab5fa9de876344c7e2271ec69e9b916

  7. https://github.com/JuliaParallel/Hwloc.jl/commit/65781b7c08ee0349ccf7db6c629730beb87e8625

  8. https://github.com/JunoLab/Atom.jl/commit/080609b34d4c06dfb13950f9cdd375495d25c7f5

References

Download references

Acknowledgements

We thank the PASER group at Auburn University for their valuable feedback. This research was partially funded by the U.S. National Science Foundation (NSF) Award # 2247141, Award # 2310179, and the U.S. National Security Agency (NSA) Award # H98230-21-1-0175.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Akond Rahman.

Ethics declarations

Conflicts of interest

The authors have no relevant financial or non-financial interests to disclose.

Additional information

Communicated by: Fabio Palomba

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

This research was partially funded by the U.S. National Science Foundation (NSF) Award # 2247141, Award # 2310179, and the U.S. National Security Agency (NSA) Award # H98230-21-1-0175.

Rights and permissions

Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Rahman, A., Bose, D.B., Shakya, R. et al. Come for syntax, stay for speed, understand defects: an empirical study of defects in Julia programs. Empir Software Eng 28, 93 (2023). https://doi.org/10.1007/s10664-023-10328-5

Download citation

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s10664-023-10328-5

Keywords

Navigation