Arc Forumnew | comments | leaders | submitlogin
Using Arc to quickly sketch a simple idea
15 points by CatDancer 6432 days ago | discuss
In http://www.arclanguage.org/item?id=1263, pc points out that it can often be useful to let the user do things in parallel: for example, it would be nice if airline sites let you do multiple searches in different tabs at the same time. This doesn't work in a pure cookie/session approach... at least not without something in the URL to tell the server which browser tab the request is coming from.

This got me to thinking... I can imagine that I'm on a web site, working on putting something together. I get to a certain point, and I'd like to open what I'm working on in multiple tabs so that I can try out different things independently. Rather than my two tabs being a two views of the same thing, instead I want each tab to be a view on its own thing that I can try out modifying in different ways... perhaps to see which one I like better.

Here, in this simplistic example, the "thing that I'm working on" is adding items to a list, and the application isn't doing anything more than just showing me the list. By right-clicking on "clone" and selecting "Open Link in New Tab", I get a copy of the list. Adding an item to one list doesn't affect the other list.

  (def my-page (lst)
    (w/link (my-page lst) (pr "clone"))
    (br2)
    (prn "The list: " lst)
    (br2)
    (aform [my-page (+ lst (list (arg _ "item")))]
      (input "item")
      (but "Add")))

  (defop page req
    (my-page '()))
I don't claim this is particularly deep or anything :-) Nor that it couldn't easily be implemented in other languages. But I have to say I found it nifty that I had an idea for an interaction style and I was able to try it out so easily.