[erlang-questions] [ANN] Brim - HTML templating library

Michael Turner <>
Mon Mar 19 03:27:37 CET 2012


On Mon, Mar 19, 2012 at 6:39 AM, Richard O'Keefe <> wrote:
>
> On 16/03/2012, at 6:41 PM, Michael Turner wrote:
>
>> Richard, I wouldn't consider autocompletion "programming by example",
>
> The book "Watch What I Do : Programming by Demonstration" does.
> http://acypher.com/wwid/
> Ian Witten's Predictive Calculator (chapter 3) is basically an
> autocompleter.

There's overlap, perhaps but I've enjoyed the benefits of
autocompletion without ever providing examples in the first place. And
again, the output of most autocomplete isn't code, it's data.

> In the introduction to the successor volume, "Your Wish is my
> Command", Henry Lieberman wrote
> "But it also makes sense to view more conventional user-programming facilities,
> such as so-called "interface builders", macros and scripting systems as
> the "poor man's Programming by Example".

His scare quotes together with the qualification "poor man's" suggest
to me that he knows these aren't really making the grade. There's no
attempt at algorithm synthesis through implicit pattern matching with
any of these.

> http://web.media.mit.edu/~lieber/Your-Wish-Intro.html
> Ben Shneiderman's foreword makes it clear that a tool he built that
> "enabled users to record and view their actions, and then store and replay
> macros" was conceived as part of Programming by Example.

Would that he had actually provided a definition! Actually, he only
exposes a terminological wilderness, biased toward direct-manipulation
interfaces:

"This important volume of papers carries forward the agenda of making
direct manipulation programming (or programming-by-example,
programming-by-demonstration, end-user-programming,
programming-in-the-user-interface, etc.) a reality."

The end result of programming by example is a program: a (potentially)
reusable batch of instructions for doing much the same thing on
different data. It doesn't require direct manipulation (the main
concern of that book, back when direct-manipulation interfaces were
hitting the mainstream); in fact, what I'm suggesting here is
insensitive to where the examples come from, it just figures out a way
to generalize from the examples to some kind of mapping.

Maybe I should have called it something else. My point was, people
spend a lot of time doing careful stitching to map between data and
web pages, when much of the time, the correspondence is so obvious as
to be significantly automatable.

-michael turner



More information about the erlang-questions mailing list