Reuse in the world of end-user programmers
End-user programmers often reuse one another’s code when creating new programs, but this reuse is rarely as clean or simple as the blackbox reuse that professional programmers aspire to achieve. In this chapter, we explore the motivations that drive reuse of end-user code, the challenges that impede reuse of end-user code, and several approaches that facilitate reuse of end-user code. We give particular emphasis to the problem of helping end-users to identify high-quality reusable code amid the millions of scripts, macros, spreadsheets, and other programs produced by essentially anonymous users out on the web. Based on a review of empirical studies, we find that reusable code is often characterized by certain traits, suggesting that it might be possible to help end-user programmers to find reusable code by automatically gathering, analyzing, and synthesizing information about whether code has these desirable traits. We close the chapter with a discussion of future research opportunities aimed at helping end users to identify, understand, and adapt reusable code.