As of this month, I’m working for Alcatel-Lucent Bell Labs in Antwerp, Belgium. I will be doing distributed systems research with a focus on programmability and programming models. I’m still active part-time at the VUB Software Languages Lab.
As of this month, I’m working for Alcatel-Lucent Bell Labs in Antwerp, Belgium. I will be doing distributed systems research with a focus on programmability and programming models. I’m still active part-time at the VUB Software Languages Lab.
Yesterday I gave a talk at the European Conference on Object-oriented Programming (ECOOP) on our paper on direct proxies in JavaScript. The slides are available online. The talk is basically recounting the story of how Mark and I refactored the original JavaScript Proxy API into the current direct proxies API because of the interaction between proxies and frozen objects. I have previously written about that interaction on my blog. The paper further focuses on membranes as a case study for proxies.
At the May TC39 meeting I presented [pdf] an overview of Notification Proxies, as a possible alternative to Direct Proxies. This post briefly summarizes my talk, and the feedback I got from the committee. tl;dr: notification proxies are off the table, we’re sticking to direct proxies in ES6.
This post is about a project I’ve been working on together with Mark Miller (with the help of many others) which we call “Dr. SES”, for Distributed Resilient Secure ECMAScript”. Dr. SES is a JavaScript extension aimed at secure, distributed computing.
Dr. SES extends JavaScript with three features:
Mark recently got invited as a speaker at ESOP 2013, and was given the opportunity to publish a paper to go along with the talk. The paper is probably the first written exposition of Dr. SES to date. It got published only recently, here’s a link to the pre-published version. The subject of the paper is not really about Dr. SES, but rather about what type of applications we can achieve on top of a platform such as Dr. SES. Nevertheless, Section 2 provides a good background on what Dr. SES ought to become. The paper is really a progress report, as Dr. SES is still very much a work in progress. Quoting the abstract of the paper:
Contracts enable mutually suspicious parties to cooperate safely through the exchange of rights. Smart contracts are programs whose behavior enforces the terms of the contract. This paper shows how such contracts can be specified elegantly and executed safely, given an appropriate distributed, secure, persistent, and ubiquitous computational fabric. JavaScript provides the ubiquity but must be significantly extended to deal with the other aspects. The first part of this paper is a progress report on our efforts to turn JavaScript into this fabric. To demonstrate the suitability of this design, we describe an escrow exchange contract implemented in 42 lines of JavaScript code.
The paper is based on two earlier talks of Mark:
The source code discussed in the paper is available.
In this post I will give an overview of Javascript’s object model. To a first approximation, by “object model”, I mean the mental model that a developer has of an object’s structure and behavior. At the end, I will hint at how proxies can be used to implement (variations on) this object model in Javascript itself.