This document discusses why Java does not have instant code reloading capabilities out of the box. It describes how the typical development cycle requires building, deploying, and waiting for changes to take effect. It then explores some of the challenges around reloading classes at runtime, such as handling externalized and derivative state. The document introduces JRebel as a solution that can hotswap code changes without redeploys by leveraging different classloaders and configuration to reconnect objects to the new code.