Real-world programs are neither monolithic nor static – they are con-structed 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 be-havioural. 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 var-ious types of compatibility. 414 developers responded to our survey. We find that while most programmers ar...
Software developers employ programming language features to build software systems. The use of such ...
A discontinuity exists between modeling and objectoriented programming languages. This discontinuity...
Portability of programs between run-time environments is regarded as a desirable feature by programm...
Java binary compatibility prescribes conditions under which modification and re-compilation of class...
The Java language description is unusual in that it defines the effect of interleaving separate comp...
Separate compilation allows the decomposition of programs into units that may be compiled separately...
There is an ongoing debate in the Java community on whether statically compiled implementations can ...
Coupling is a fundamental property of software systems, and numerous coupling measures have been pro...
Abstract—Coupling is a fundamental property of software systems, and numerous coupling measures have...
Backward compatibility of class libraries ensures that an old implementation of a library can safely...
Abstract—Maintainability is a desirable property of software, and a variety of metrics have been pro...
. In Java's first year it has become clear that many of the problems posed by executable conten...
Java is the latest programming language technology to be touted as the programming language solution...
Software is not built in isolation but builds on other software. When one project relies on software...
This paper describes a tool we developed enabling the distribution of updated versions of Java class...
Software developers employ programming language features to build software systems. The use of such ...
A discontinuity exists between modeling and objectoriented programming languages. This discontinuity...
Portability of programs between run-time environments is regarded as a desirable feature by programm...
Java binary compatibility prescribes conditions under which modification and re-compilation of class...
The Java language description is unusual in that it defines the effect of interleaving separate comp...
Separate compilation allows the decomposition of programs into units that may be compiled separately...
There is an ongoing debate in the Java community on whether statically compiled implementations can ...
Coupling is a fundamental property of software systems, and numerous coupling measures have been pro...
Abstract—Coupling is a fundamental property of software systems, and numerous coupling measures have...
Backward compatibility of class libraries ensures that an old implementation of a library can safely...
Abstract—Maintainability is a desirable property of software, and a variety of metrics have been pro...
. In Java's first year it has become clear that many of the problems posed by executable conten...
Java is the latest programming language technology to be touted as the programming language solution...
Software is not built in isolation but builds on other software. When one project relies on software...
This paper describes a tool we developed enabling the distribution of updated versions of Java class...
Software developers employ programming language features to build software systems. The use of such ...
A discontinuity exists between modeling and objectoriented programming languages. This discontinuity...
Portability of programs between run-time environments is regarded as a desirable feature by programm...