There have been a number of questions about Zaphod and Narcissus. Or perhaps just the one major question:
“Seems cool. Why should I use this?”
In programming language (PL) research, we like to write up fancy evaluation rules containing lots of Greek letters. Unfortunately, these rules tend to be inscrutable to anyone who isn’t a PL researcher. Even for PL researchers, there is something unsatisfying about seeing a bunch of rules on a piece of paper.
We want to be able to try our ideas out with a real implementation — kick the tires, so to speak. Also, we want to share our ideas as widely as we can. This way, we can get feedback from programmers who experiment with our design.
Unfortunately, this usually means editing a sizable, constantly shifting C++ code base. Anyone who wants to test out our ideas has to build the browser from source, which can be a daunting task.
But Narcissus does not by itself integrate smoothly with the browser. That is where Zaphod comes in.
Zaphod looks for scripts with a tag of “application/narcissus” (which SpiderMonkey will ignore) and parses those scripts with Narcissus. This setup allows us to demonstrate a few examples using the new feature. Here are a few simple pages using this technique. Using this, you can show some examples of how your new feature could be used.