Why Programming Languages?
When I present my research work on programming languages, people often ask me "why do you need a new programming language to solve this problem? Why not just implement it as a library?" Or, I get asked "why didn't you implement it as an extension to {some existing language}?" In this essay I try to make explicit some of the goals and motivations behind language design.
AmbientTalk at Emerging Languages Camp
Last July, I presented AmbientTalk at the first Emerging Languages Camp at O'Reilly's OSCON in Portland. The talk was well received and AmbientTalk got some media coverage, among others an article in Technology Review Magazine and an article in Data News (in Dutch). Dean Wampler posted a good summary of all discussed languages (including AmbientTalk) on his blog. After the conference, I was interviewed for Microsoft's Channel 9 together with Mark S. Miller, Jonathan Shapiro and Gilad Bracha. It's a very impromptu interview, covering topics like static typing, mirror-based reflection and AmbientTalk's interoperability with the JVM.
Harmony Proxies in Firefox
Andreas Gal from Mozilla is
implementing the Proxy API that I developed at Google
in collaboration with Mark S. Miller. This API enables
the creation of dynamic proxies that can intercept a
variety of operations applied to Javascript objects.
Proxies are currently available in the Firefox 3.7a pre-release and are
scheduled to be included in the next Ecmascript
standard. I am in the process of writing up a small
tutorial to introduce this new
feature.
A draft specification of the feature
for inclusion into ECMAScript harmony is available,
and a Google Tech Talk that explains the
rationale of our design. Javascript proxies were in
part inspired by my earlier work on mirages in AmbientTalk.
To Proxy Tutorial
DCDP and DO21 Workshops
Javascript at Google
I am currently a Visiting Faculty
member at Google in Mountain View, USA. Together with
Mark Miller I am
experimenting with proposed extensions
to the Javascript programming language. Concretely:
- We proposed
proxies for inclusion in a future ECMAScript
standard. This proposal is based on the reflective
architecture of AmbientTalk.
- We created an OMeta-based
parser for the latest ECMAScript standard
(edition 5). This parser is used in a meta-circular
experimental
interpreter and a
verifier for
SES, a secure subset of ECMAScript.
- We have implemented a traits library for Javascript, enabling the robust composition of objects via reusable traits.
