What Java']Java developers know about compatibility, and why this matters

被引:10
|
作者
Dietrich, Jens [1 ]
Jezek, Kamil [2 ]
Brada, Premek [2 ]
机构
[1] Massey Univ, Sch Engn & Adv Technol, Turitea Palmerston North Campus, Palmerston North, New Zealand
[2] Univ W Bohemia, Fac Sci Appl, Univ 8, Plzen 30614, Czech Republic
关键词
!text type='Java']Java[!/text; Binary compatibility; API compatibility; Empirical study; User survey; Linking;
D O I
10.1007/s10664-015-9389-1
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Real-world programs are neither monolithic nor static-they are constructed using platform and third party libraries, and both programs and libraries continuously evolve in response to change pressure. In case of the Java language, rules defined in the Java Language and Java Virtual Machine Specifications define when library evolution is safe. These rules distinguish between three types of compatibility-binary, source and behavioural. We claim that some of these rules are counter intuitive and not well-understood by many developers. We present the results of a survey where we quizzed developers about their understanding of the various types of compatibility. 414 developers responded to our survey. We find that while most programmers are familiar with the rules of source compatibility, they generally lack knowledge about the rules of binary and behavioural compatibility. This can be problematic when organisations switch from integration builds to technologies that require dynamic linking, such as OSGi. We have assessed the gravity of the problem by studying how often linkage-related problems are referenced in issue tracking systems, and find that they are common.
引用
收藏
页码:1371 / 1396
页数:26
相关论文
共 50 条
  • [1] What Java developers know about compatibility, and why this matters
    Dietrich, Jens
    Jezek, Kamil
    Brada, Premek
    Empirical Software Engineering, 2016, 21 (03): : 1371 - 1396
  • [2] What Java developers know about compatibility, and why this matters
    Jens Dietrich
    Kamil Jezek
    Premek Brada
    Empirical Software Engineering, 2016, 21 : 1371 - 1396
  • [3] Why and How Java']Java Developers Break APIs
    Brito, Aline
    Xavier, Laerte
    Hora, Andre
    Valente, Marco Tulio
    2018 25TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION AND REENGINEERING (SANER 2018), 2018, : 255 - 265
  • [4] What is Java']Java binary compatibility?
    Drossopoulou, S
    Wragg, D
    Eisenbach, S
    ACM SIGPLAN NOTICES, 1998, 33 (10) : 341 - 358
  • [5] Why Do Developers Remove Lambda Expressions in Java']Java?
    Zheng, Mingwei
    Yang, Jun
    Wen, Ming
    Zhu, Hengcheng
    Liu, Yepang
    Jin, Hai
    2021 36TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING ASE 2021, 2021, : 67 - 78
  • [6] What is Java Binary Compatibility?
    Drossopoulou, Sophia
    Wragg, David
    Eisenbach, Susan
    SIGPLAN Notices (ACM Special Interest Group on Programming Languages), 1998, 33 (10): : 341 - 354
  • [7] A voice for Java']Java developers
    Ross, R
    BYTE, 1997, 22 (12): : 44 - 44
  • [8] Why Did Developers Migrate Android Applications From Java']Java to Kotlin?
    Martinez, Matias
    Mateus, Bruno Gois
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2022, 48 (11) : 4521 - 4534
  • [9] Java']Java matters
    Wong, W
    ELECTRONIC DESIGN, 2001, 49 (25) : 69 - 69
  • [10] "Jumping Through Hoops": Why do Java']Java Developers Struggle With Cryptography APIs?
    Nadi, Sarah
    Krueger, Stefan
    Mezini, Mira
    Bodden, Eric
    2016 IEEE/ACM 38TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2016, : 935 - 946