weblogging at the beach

« Visual Manipulation | Main | Refactoring Functional Programs »

August 02, 2007

A Scheme Case Study

If you've looked at the ICFP 2007 preliminary program you'll have noticed we're presenting “Experience Report: Scheme in Commercial Web Application Development”. We submitted the final version of the paper a couple of weeks ago, and I've finally got around to putting it online for your reading pleasure. The contents shouldn't come as a surprise: a summary of our experiences developing commercial web applications in PLT Scheme over the last year. We've tried to be honest, including the good and bad. Hopefully the points you'll take away are that we've been able to overcome initial problems with stability, and in a fairly short time we've developed a framework that compares well to popular alternatives such as Ruby on Rails.

The four page limit on experience reports is very tight, and unfortunately our experiences with Flapjax were cut from the final version. So let me say here that if you write Javascript code you need to check out Flapjax! Our Flapjax code is about half the size of the equivalent Javascript, and this is without using the Flapjax compiler. The only problem with Flapjax is performance in large networks. This is more a property of the poor quality of Javascript interpreters: Wolfenstein 3D on my 286 back in 1990-something was smoother than Javascript raycaster running today on my Powerbook. Luckily the new developments taking place at Mozilla will alleviate this problem in the next few years.

Posted by Noel at August 2, 2007 09:47 PM

Trackback Pings

TrackBack URL for this entry:
http://www.untyped.com/mt/mt-tb.cgi/118

Comments

I wish you'd included a link to the web site that the paper refers to.

Posted by: me at August 3, 2007 03:04 AM

So, Noel, how about next year you write another application paper, this time about your use of Flapjax? If you got cut down from 10 pages to 4, that means you have at least 6 more pages of material left. (-:

Posted by: Shriram Krishnamurthi at August 3, 2007 03:06 AM

Me: As you can imagine the applications deal with lots of confidential information (student addresses, marks, and so forth), so we can't make them available to the public. SK: If our web testing framework works out we'll have something to say about Flapjax. As you can imagine Flapjax is useful in the same way that MzTake is -- dynamically ensuring invariants are maintained. In this case we're more interested in testing than debugging, but the basic idea is the same. Development is very preliminary, so I don't have any details at this point.

Posted by: Noel at August 3, 2007 12:52 PM

Have you looked at how Seam uses objects and (not in their words http://labs.jboss.com/jbossseam/faq#continuation) continuations to abstract what I would call 'state'?

Posted by: grettke at August 5, 2007 12:19 AM

Please writeup your experience with FlapJax

Posted by: grettke at August 5, 2007 12:19 AM

Grant, our experiences with Flapjax have been described in the post Flapjax in action. We don't really have much to add to that; I just wanted to highlight Flapjax again, and make sure no-one got the idea we'd dropped Flapjax because it didn't appear in the paper. I hadn't seen Seam before. I'll check it out when I get time.

Posted by: Noel at August 6, 2007 01:35 PM