I have been invited to give a keynote talk at the First International Workshop on Programming Methods for Mobile and Pervasive Systems (PMMPS 10) which will be held in Helsinki, Finland on May 17, 2010 and is co-located with Pervasive 2010. The topic I have choosen for this talk is the Challenges in Producing Integrated Development Environments for Pervasive Computing. It's a topic I've been worrying about for a number of years and with my move to St. Andrews where there are world class Software Engineering and Pervasive Computing academics, it's something I hope to help address.
Integrated Development Environments or IDEs are single software applications that provide a comprehensive range of features to aid in the software development process. Features include the ability to author, edit, compile, test, debug and deploy software onto a range of target platforms. Moderns IDEs support developers creating software applications for desktop platforms, mobile phones, set-top boxes, and PDAs. However, Pervasive Computing or Ubiquitous Computing consists of a myriad of hardware, software, systems and services which act as the computational edifice around which we need to build systems to afford natural or “invisible” interaction styles. This is driven by the evolution from the notion of a computer as a single device, to the notion of a computing space comprising personal and peripheral computing elements and services all connected and communicating as required. Further complications arise when we consider the range of GUI applications which might be deployed which in some contexts may have access to 1 display and in others 10.
In this context, with varying hardware, software, services and sensors being available throughout the context of use for a particular "pervasive application", what challenges do we face in the development of suitable IDEs and is this even the correct paradigm? This talk will survey the approaches taken to date in this space and will seek to motivate a broader interest in the challenge of increasing developer productivity through IDEs which are not fragile to the vagaries of Pervasive Computing contexts of use.