AJAX Is No Overnight Success

An update on AJAX, recommended by Vladimir Gapayev.




Merging ideas from Pi Calculus, Join Calculus, Xduce, and Cduce. An interesting blend of theory with practice, as they try to build on using XML for communication and WSDL to link to web services. An early paper on the system was coauthored by Greg Meredith, one of the driving forces behind BizTalk.




As David B. Wildgoose put it on Lambda the Ultimate

Tired of talking about Erlang and Telephone Switches? Next time someone asks for an example of functional programming techniques in the "real" world, suggest Google Labs to them.

(Thanks to Will Partain for suggesting this entry!)



Penn, PADL, POPL, and Plan-X

I spent 5-15 January visiting U Penn and attending PADL, POPL, and Plan-X in Charleston, SC.

At U Penn I served on the thesis committee for Vladimir Gapayev, a student of Benjamin Pierce, on the design and implementation of Xtatic, an extension of C# to support XML processing in the style of Xduce. This is one of the few doctoral examinations I have been involved with where the committee agreed to tick off the very first box on the form: absolutely no substantial revisions required. Well done, Vladimir! I also had many interesting discussions, notably with Benjami, Geoffrey Washburn, and Steve Zdancewic, and a great dinner at Django.

At PADL I delivered an invited talk on Links. The audience had scores of useful suggestions afterward; notably Zoltan Somogyi and Manuel Hermengildo suggested I look at updatable predicates in the logic programming community as an approach to integrating database update with a declarative language. My favorite presentations included Steve Kollmansberger on Modeling Genome Evolution with a DSEL for Probabilistic Programming, Kris De Volder on A Generic Code Browser with a Declarative Configuration Language, Zoltan Somogyi on several new twists in the implementation of Mercury, and Erik Meijer's invited talk on LINQ.

Then it was on to POPL. Tim Sweeney, founder of Epic Games, gave a fascinating talk on "The next mainstream programming language: a game developer's perspective". Matthias Felleisen categorized it as "an advertisement for Haskell". This talk reiterated a point I head John Hennessy make when he picked up an honorary degree at Edinburgh: the advent of multicore hardware has made concurrency (and hence functional programming) immensely more important. Sweeney noted that most of the processing in a game is rendering, which can be viewed as purely functional. But there are also about 10,000 objects interacting, which are best treated imperatively. What I found most surprising is that communicating processes (as in, say, Erlang) would not work well for objects in a game: one needs transactions to ensure that when one character transfers hit points or momentum to another that nothing is lost (just as one needs transactions to ensure that when one bank account transfers money to another that nothing is lost).

My other favorite talks were Yitzhak Mandelbaum (with Kathleen Fisher and David Walker) on The Next 700 Data Description Languages; Nils Anders Danielsson (with Jeremy Gibbons, John Hughes, and Patrik Jansson) on why Fast and Loose Reasoning is Morally Correct; and Cormac Flanagan on Hybrid Typechecking.

Erik Meijer posed me the problem of how to integrate groupBy neatly into a list comprehension. I think I found a neat answer based on "Theorems for Free". Watch this space!

Charleston is a lovely city, and I did not see enough of it. It has some fine restaurants: Fig is very good, and Cordavi is superb.

Finally, there was Plan-X. My favorite talk was Alain Frisch on "Ocaml+Xduce", a clever way to integrate Xduce typing into the Ocaml compiler with minimal changes. Other favorites were Mary Fernandez (with Kathleen Fisher, Robert Gruber and Yitzhak Mandelbaum) on PADX (a follow up to the "Next 700" paper) amd Vladimir Gapeyev, Fran├žois Garillot and Benjamin Pierce on "An Xtatic Experience", a practical example based on Michael Kay's XMLSpec example program for XSLT. This paper covers some of the most interesting results in Vladimir's thesis, taking this entry full circle!


Bikeshed coloring

My experience on the Haskell committee caused me to formulate 'Wadler's Law': time spent in debating a feature doubles as one moves down the following list:

Ezra Cooper spotted a blog entry that explains the same point, more generally and more eloquently.



Javascript WYSIWYG editor

One application for Links might be a WYSIWYG editor that runs on the client, as a step toward building an IDE for Links in Links, that runs in your browser. Turns out there is already a free WYSIWYG editor available in Javascript aimed at AJAX.

This page is powered by Blogger. Isn't yours?