What Java developers know about compatibility, and why this matters
Identifikátory výsledku
Kód výsledku v IS VaVaI
<a href="https://www.isvavai.cz/riv?ss=detail&h=RIV%2F49777513%3A23520%2F16%3A43925694" target="_blank" >RIV/49777513:23520/16:43925694 - isvavai.cz</a>
Výsledek na webu
<a href="http://dx.doi.org/10.1007/s10664-015-9389-1" target="_blank" >http://dx.doi.org/10.1007/s10664-015-9389-1</a>
DOI - Digital Object Identifier
<a href="http://dx.doi.org/10.1007/s10664-015-9389-1" target="_blank" >10.1007/s10664-015-9389-1</a>
Alternativní jazyky
Jazyk výsledku
angličtina
Název v původním jazyce
What Java developers know about compatibility, and why this matters
Popis výsledku v původním jazyce
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.
Název v anglickém jazyce
What Java developers know about compatibility, and why this matters
Popis výsledku anglicky
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.
Klasifikace
Druh
J<sub>x</sub> - Nezařazeno - Článek v odborném periodiku (Jimp, Jsc a Jost)
CEP obor
IN - Informatika
OECD FORD obor
—
Návaznosti výsledku
Projekt
<a href="/cs/project/ED1.1.00%2F02.0090" target="_blank" >ED1.1.00/02.0090: NTIS - Nové technologie pro informační společnost</a><br>
Návaznosti
P - Projekt vyzkumu a vyvoje financovany z verejnych zdroju (s odkazem do CEP)
Ostatní
Rok uplatnění
2016
Kód důvěrnosti údajů
S - Úplné a pravdivé údaje o projektu nepodléhají ochraně podle zvláštních právních předpisů
Údaje specifické pro druh výsledku
Název periodika
Journal of Empirical Software Engineering
ISSN
1573-7616
e-ISSN
—
Svazek periodika
21
Číslo periodika v rámci svazku
3
Stát vydavatele periodika
DE - Spolková republika Německo
Počet stran výsledku
26
Strana od-do
1371-1396
Kód UT WoS článku
000379061700019
EID výsledku v databázi Scopus
2-s2.0-84966415665