Removing duplication from java.io: a case study using traits

  • Authors:
  • Emerson R. Murphy-Hill;Philip J. Quitslund;Andrew P. Black

  • Affiliations:
  • Portland State University, Portland, OR;Portland State University, Portland, OR;Portland State University, Portland, OR

  • Venue:
  • OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

Code duplication is a serious problem with no easy solution, even in industrial-strength code. Single inheritance cannot provide for effective code reuse in all situations, and sometimes programmers are driven to duplicate code using copy and paste. A language feature called traits enables code to be shared across the inheritance hierarchy, and claims to permit the removal of most duplication. We attempted to validate this claim in a case study of the java.io library. Detecting duplication was more complex than we had imagined, but traits were indeed able to remove all that we found.