SPA2005 session: Intentional Computing

One-line description:Models, projections, aspects, notations and transformations all wrapped up in a sesame seed bun
 
Session format: Working group [read about the different session types]
 
Abstract:A few years ago, whilst working at Microsoft Research, Charles Simonyi began advocating an approach to software development he called Intentional Programming (IP). Essentially IP is about capturing the design intent of a software solution and transforming that into an executing system. He describes “The key components of the proprietary technology are a uniform tree-like representation for all the contributions from all the stakeholders of the software that is produced; and an intentional editor that maintains the invariances that are represented and lets the stakeholders edit the contributions in any number of notations that are projections of the intentional tree.”

Although there is much that can be questioned about Simonyi’s vision of software development and there are many technical and cultural barriers to realizing it, there seems something fundamentally sensible about representing software as a model and providing tools that present projections of it and implement operations to modify it.

But isn’t this essentially how all systems should be built, not just development tools, but the tools we deliver to users? Rather than talking about Intentional Programming, shouldn’t we widen our horizons to Intentional Computing?

We have hugely powerful computing platforms available to us today in terms of processing power, display speed and network bandwidth. The low cost of this computing power versus the high cost of development and the high value and criticality of the applications we deliver provides a very different economic model to the one that existed when our current development tools and techniques were developed. Perhaps it is time to think less about optimising our programming practice for computer execution and more time optimising for developers and users.

This working group will explore what Intentional Computing might look like in terms of platforms, tools and practices and consider the merits and implications of such an approach. It will follow a similar format to our OT2003 working group, iteratively breaking into small groups to discuss issues then consolidating ideas through presenting back and raising new questions.
 
Audience background:People who think deeply about software development.
 
Benefits of participating:Working group participants will
* understand the background and context of Intentional Computing
* be able to cast a critical eye on the software advances of the last thirty years, and understand why the software revolution hasn't happened yet
* just maybe - help shape a vision of computing that moves beyond traditional styles of application design and use
 
Materials provided:Introductory presentation.

Props and stimulus items.
 
Process:00:00 – 00:45 Introduction and kick-off discussion

00:45 - 01:45 In groups: first iteration - exploring topic

01:45 - 02:30 Present back and discuss

02:30 - 03:00 Break

03:00 - 04:00 In groups: second iteration - forming ideas

04:00 - 04:30 Present back and discuss

04:30 - 04:45 Break

04:45 - 05:15 In groups: third iteration - produce conclusions

05:15 - 05:30 Present back and wrap
 
Outputs:Posters marketing fictitious IC platforms

Web pages of groups' outputs
 
History:None
 
Presenters
1. Peter Marks
Digita
2. David Harvey
Sibelius Software
3.