Tangible Functional Programming

A March 27, 2007 draft of a paper by Conal Elliot:

We present a user-friendly approach to unifying program creation and execution, based on a notion of “tangible values” (TVs), which are visual and interactive manifestations of pure values. Programming happens by gestural composition of TVs. Our goal is to give end-users the ability to create parameterized, composable content without imposing the usual abstract and linguistic working style of programmers. We hope that such a system will put the essence of programming into the hands of many more people, and in particular people with artistic/visual creative style.

In realizing this vision, we develop algebras for visual presentation and for “deep” function application, where function and argument may both be nested within a structure of tuples, functions, etc. Composition gestures are translated into chains of combinators that act simultaneously on statically typed values and their visualizations.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Note the "comments please"

Note the "comments please" notice at the top of page 1.

Additional context

Hey, I did a talk about the

Hey, I did a talk about the tangible values part of this today, as a part of the course on advanced functional programming at Universiteit Utrecht.

The idea seems really promising, though not so much for functional programming visually, as for making GUIs for your functional programs. Let's hope he can find enough time and manpower to develop it into something usable (at the moment, the user interface library supports only sliders, text fields and checkboxes).

Two more pointers

I just added two relevant pointers to the paper's web page:

The citation trail is cold

The citation trail is cold on this work even though it is so awesome. It is quite relevant to my current goal of developing richer programmer interfaces for abstractions.

video still exists

on youtube, fwiw.

(p.s. can't you just meet e.g. Conal in person at some conference?)

I've seen the video (Google

I've seen the video (Google tech talk?). I'm just frustrated that work like this doesn't start much in the community. It is really good stuff.

ditto frustration

and I assume people like Conal might have a similar feeling. If I can suggest, what if you and him and people like you all to start getting together and make such a little community really exist -- then there's a better chance it can grow :-). I cannot say I pay enough attention to know what folks in your arena already do that.

This is why I'm trying to

This is why I'm trying to startup new conversations on programmer experiences. I'm not sure Conal would be interested, even though his work often presents inventive programmer experiences, he also focuses on a lot of formal content with them; e.g. the tangible functional programming publication presents an algebra that dominates 80% of the paper. So...perhaps we have gotten used to dropping PX ideas and then just describing how we can implement them (you can't formally reason about humans, anyways).