[cap-talk] What sparked interest in capabilities

Tyler Close tyler.close at gmail.com
Tue Feb 19 14:08:09 EST 2008


Wow, this has been a very enjoyable thread. Here's my contribution.

In the mid-90's I got a copy of Design Patterns by the Gang of Four
and felt like I was finally learning something about software design.
Having consumed this book, I went on to successfully apply the
techniques in a series of software applications, one of which was
large and won me several awards. So by the time of my graduation from
university in 1998, I was well versed in the use of object notation as
a language for expressing solutions to a variety of problems.

Though good at it, I never much liked school and felt like I learned
more on my own, so chose not to continue on to higher degrees. I also
didn't feel like moving directly into a long-term job. Instead, I kept
on programming on my own, and travelling. One of my trips landed me in
Silicon Valley to check in on my former lab partner, Ping. He took me
to a meeting where Mark Miller was unveiling the grammar for this new
language E. I was skeptical about many aspects of this language, but
there was also clearly some stuff here that I didn't know yet and
MarkM seemed more than willing to teach.

Since I was already an object programmer, the argument that the object
notation I had been using to attack so many other problems could also
be used to express access control policy, went down easy. I was
fortunate in that I had not learned much about ACLs, so didn't have a
lot to unlearn. The toughest part for me was the argument that
asynchronous communication between event loops was better than shared
memory concurrency. Seems unbelievable now, but that's how it was.
Part of the problem was that I had been successfully building a
multi-threaded GUI library that exploited the GUI's natural tree
structure to order the locks. In such a design, many of the problems
you can encounter with threads don't arise. I suspected there were
similar patterns that could be used in other applications. On the
other side, use of  the Unix IPC mechanisms in school, had convinced
me that these mechanisms were too heavyweight to get much work done.
Being able to cross execution threads with a simple method invocation
was much easier and more efficient. Of course, the asynchronous
communication between event loops also works across the network,
whereas the shared memory concurrency seems like a dead end. It was
this realization that the object notation I knew could be combined
with capabilities and asynchronous messaging to create a productive
platform for distributed applications that sold me. The similarities
of this platform with my other great interest, the Web, convinced me
that there was something very useful here. I released the first
version of the Waterken server in the winter of 1999, and have been
refining it, and variations of it, ever since.

On Feb 18, 2008 8:42 PM,  <ihab.awad at gmail.com> wrote:
> Bill asked what sparked our interest. For me, the bigger deal is what
> sustains it....

For me, it's the simple matter that it just works. I can get more done
with the Waterken server than with anything else. Everything else
seems overly complex, and often just plain broken, in comparison.

--Tyler

-- 
Use web-keys for RESTful access-control:
http://waterken.sourceforge.net/

Name your trusted sites to distinguish them from phishing sites.
https://addons.mozilla.org/firefox/957/


More information about the cap-talk mailing list