Component Deployment with PLaneT You Want it Where? Jacob Matthews University of Chicago
[email protected] Abstract install it if necessary. Effectively, programmers get to treat every For the past two years we have been developing PLaneT, a pack- library, even those they write themselves, as a standard library, age manager built into PLT Scheme’s module system that simplifies giving them the advantages of libraries without the pain of library program development by doing away with the distinction between deployment. installed and uninstalled packages. In this paper we explain how Since PLaneT retrieves packages from a centralized reposi- PLaneT works and the rationales behind our major design choices, tory, it also establishes a component marketplace for developers; focusing particularly on our decision to integrate PLaneT into PLT it serves as a one-stop shop where they can publish their own pro- Scheme and the consequences that decision had for PLaneT’s de- grams and discover useful programs written by others. In effect, sign. We also report our experience as PLaneT users and developers PLaneT is an infrastructure that transforms PLT Scheme’s effec- and describe what have emerged as PLaneT’s biggest advantages tive standard library from a monolithic cathedral development ef- and drawbacks. fort into a bazaar where anyone can contribute and the most use- ful libraries rise to the top, buoyed by their quality and usefulness rather than an official blessing [11]. This bazaar-like development 1. Introduction reinforces itself to the benefit of all PLT Scheme users: in the two No matter how great your programming language is, it is always years since PLaneT has been included in PLT Scheme, users have harder to write a program in it yourself than it is to let someone contributed nearly 300,000 lines of new Scheme code in 115 pack- else write it for you.