Skip to Main Content
Best practices in programming typically imply incremental coding with classes and interfaces that are either not yet defined or only partially defined. Yet integrated development environments (IDEs) don't support incremental coding well, and recent enhancements and third-party plug-ins fail to provide a seamless experience. We propose to reify undefined entities as ghosts, properly supported by the IDE. A Ghost View provides an integrated, modular view of each ghost, reflecting the current set of assumptions about a given undefined entity. This view is built unobtrusively and on the fly, without interrupting the programming workflow, and it supports program understanding tasks such as navigating from ghosts to the places where they're used. Ghosts and their usages are type-checked automatically as soon as they're defined. Busting a ghost generates a complete skeleton, in the background. Ghosts are a simple and useful metaphor to better support incremental development.