Removing duplication from java.io: a case study using Traits
Golden West Room
Wednesday, 11:00, 30 minutes
Emerson Murphy-Hill, Portland State University
Philip Quitslund, Portland State University
Andrew Black, Portland State University
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.