In-Cloud Development using Eclipse
Eclipse is an awesome IDE, but setting up your application's dependencies to run locally... sucks. The "browser-based" Eclipse makes it easy to develop in the cloud, but only if you forgo the rich features of your desktop IDE. Why can't we have the best of both worlds? Turns out, we can! This talk investigates the principles of the CDT/PTP (what works well and what works not-so-well), and applies the lessons learned to create a cloud-capable build of eclipse which we use for editing general Java & Web Applications. Users run a full-featured local IDE, but their entire workspace lives in the cloud, making cloud development a first-class citizen in the Eclipse IDE. We investigate the details of our caching, prefetching, and lazy loading, which allow nearly all operations to occur at local-filesystem speeds. We investigate the clever use of Eclipse's API hooks to further improve the performance of time-sensitive operations. We then demonstrate the other benefits of developing on a remote environment - like being able to do distributed builds, distributed unit testing, managed infrastructure/configuration/dependency upgrades, etc. Ultimately, we conclude by open sourcing what we believe is the perfect development environment for anyone who hates dealing with local configuration/environment issues and just wants to write code!