CS 446 Notes 7 for 18 Oct 1995

CS 446 Fall Quarter Notes 7 Gio Wiederhold
Experimental Seminar on Large Scale Software Construction.

Charles Simonyi

currently of Microsoft Corporation, author of the original Micosoft Word will give a special seminar about recent work at Microsoft Research.

Wednesday, October 18, 1995 at 3:15 in MJH 146.

The Death of Computer Languages, the Birth of Intentional Programming

High level languages have been one of the most successful concepts in software, yet we still feel strangely dissatisfied. New language development has practically ceased not because of (or should I say not only for) a dearth of ideas but for the pragmatic reason that legacy code needs outweigh any benefits that could be reasonably expected. We will deconstruct the principles of high level languages into three groups: unassailable, doubtful, and terrible-but-accepted-as- necessary. By re-evaluating the latter two groups in light of the revolution in user interfaces and machine power, we reach an arrangement whereby the programmer's contributions can be directly encoded into a form which we term intentional. An Intention represents an arbitrary abstraction by defining its looks, semantics, and other behaviour that the abstraction might need in an integrated development environment. Since individual programming language features in existing or even just planned future programming languages can be expressed as intentions and thereafter can co-exist with each other, any programming languages possessing a fixed set of syntactic and semantic rules will be superceded just as old dedicated word processors were obsoleted by personal computers. The main benefit will be that the new high level language ideas will be able to flourish without ever again creating a conflict with the legacy code which has been absorbed into the intentional system, a state which we term software immortality. The cost of introducing a new intention will be low enough that special intentions can be defined by users for their own domains and with domain specific knowledge the intentions can yield highly optimized implementations. We will discuss some plausible ideas which have been waiting in the wings just for such an opportunity.