Archive for September 2006

New Pajama wiki


  • 2008-11-24: The wiki broke a few months ago, after a server change. I’ll restore it someday, when I get Pajama into releasable shape.

I set up a new wiki for Pajama (interactive, continuous, web-embeddable images). Please try it out and leave comments on the wiki or email them to me.

I’m very interested in help with Pajama, particularly:

  • Replacing the remaining old code from Pan (done while I was at Microsoft Research). Most of the code has been rewritten and simplified, including the complicated code motion stuff (common subexpression elimination and loop hoisting), code generation (nicely exploiting Java), and GUI construction.
  • Getting it whipped into shape to be a open source project.
  • Applying the (domain-independent) compiler to other domains (sound, 3D, …).
  • Improvements to the wiki, including easier uploading of examples and automatic generation of galleries.
  • Integration of Pajama and Eros (end-user syntax-free authoring of functional programs).

On wiki software selection: After looking around at different engines, including a visit to #wiki and WikiMatrix, I picked MoinMoin. It satisfies my requirements nicely: Java applet embedding (as generated by the Pajama compiler), free, wysiwyg page editing and a friendly implementation/extension language, namely Python. Then I started learning Python, which is a reasonably nice programming language for customizing the wiki server. My first Python program is a wiki macro that makes it fairly easy to embed Pajama effects in a wiki page.

Non-syntactic, end-user, functional programming

(This is an edited version of a post made on April 11 that somehow became inaccessible from my main blog page.)

I have a draft paper called “Functional Programming by Interacting with Concrete Values”. I’m very excited about this research direction as a way to let people program without turning them into programmers. A concrete form of this goal is enable artists to make and share their own software tools (parameterized image effects), while staying in an artistic creative mode.

An excerpt from the introduction:

Suppose users of interactive programs could also create such programs with a simple extension of their current style of interaction. First, such a development would enable many more people to create and share computational content. Second, it would allow this content to be created without imposing the abstract, linguistic mode of creativity. This freedom may give birth to new kinds of programs whose creation is nurtured by a concrete and visual environment.

Comments please (related work, ideas, typos, unclear bits, etc)!

Edit 2008-04-17: The paper didn’t get accepted in 2006. Thanks to very helpful review comments, and a lot of rewriting, the paper did get accepted in 2007, under the title “Tangible functional programming”.