Ambient References (was: Communicating Event Loops with Promises (was: Understanding capabilities in a web-desktop setting))
"Mark Miller" <[email protected]>
| Newsgroups | gmane.comp.capabilities.general,gmane.comp.lang.e.general |
|---|---|
| Message-ID | <[email protected]> |
On Tue, Aug 12, 2008 at 11:02 AM, Mark Miller <[email protected]> wrote: > A very interesting new system based on "communicating event loops with > promises" is AmbientTalk/2 > <http://prog.vub.ac.be/~tvcutsem/publications/phd_tom_van_cutsem.pdf> > <http://prog.vub.ac.be/amop/> <http://code.google.com/p/ambienttalk/>. > They would also like to move this system towards object-capabilities > someday. Check it out! I should have mentioned that I was on Tom's "jury" for his thesis -- a bit like being on his thesis committee if I understand it. (Tom's thesis is the first link above.) After Tom passed his private defense (quite well, btw), I wrote: The significance of Tom's work is best understood with some the historical context. In the original pure untyped lambda calculus, all values are functions, and all interaction is function application. Similarly, in pure dynamically typed object languages going back to Smalltalk and Actors, all values are objects and all interaction is by message passing. These pioneering systems discovered that lambda and object abstraction *mechanisms* could express *patterns* of data-, procedural-, control-, and communication-abstractions. Each of these discoveries reveals a "continent" of patterns to be explored and explained by later expeditions. Today, data, procedural, and control abstractions are well explored and settled territory -- explained by hundreds of books and supported well by dozens of languages and libraries. However, communication abstraction remains a mostly undiscovered frontier. Just as data abstraction enables user-defined objects to act like primitive data types, but "smarter", the ability to handle first-class messages generically enables user-defined objects to act like primitive object-references, but "smarter". Prior to Tom's work, this has been explored well only in the contexts of distributing objects over mostly reliable networks, and of limiting communication to prevent inappropriate access. Tom's is the first extensive object-based exploration in an opposite direction: providing adequate and well-enough behaved communication abstractions in contexts -- such as mobile ad hoc networks -- where connectivity seems too unpredictable to be of much use. Tom explores how previous special purpose solutions, such as event-distribution channels, can be expressed as simple object patterns representing discovery-based connectionless smart object-references, i.e., ambient references. In addition to his very readable dissertation, Tom co-created the ideal expository tool to explain his discoveries: a programming language, AmbientTalk/2, supporting all four forms of abstraction well in a single integrated fabric. -- Text by me above is hereby placed in the public domain Cheers, --MarkM