Lately I have been working in Erlang (forgive me, Tom), and in particular on a distributed web-based system that exposes much of its functionality over a RESTful interface. The web server has been Yaws and the database Mnesia, both of which are also implemented in Erlang, and are quite complex and interesting in their own right. Using Erlang's OTP (Open Telecom Platform) framework it's relatively easy to create and configure complex, robust client-server/state-machine applications, taking advantage of Erlang's native support for massive concurrency, high-availability and fault tolerance.
Anyway, building such a system gives you a sense of where the grunt work is, and grunt work is a great candidate for code generation to mitigate the problem of time-to-market. This time-to-market problem is an issue that is felt quite poignantly when you are working in a startup on borrowed time, as I am at the moment. :)
So currently I am devoting a little R&D time each day to the development of a code generation tool for RESTful applications in Erlang, which I call "shenkuo." The reason for the name is two fold: 1.) I plan to release it as open source via the Erlware project (www.erlware.org), and 2.) they like funky and exotic names based on real people that have some (obscure or obvious) relevance to the functionality of the project. The reason for Erlang is that it rocks for any problem involving concurrency and network communications--I mean really ROCKS. (More on that subject will be forthcoming in my Functional Programmer blog.)
Shen Kuo was an ancient Chinese polymath who, among other things, came up with the concept of "due north" (a great aid to the compass, by the way), described the first ideas behind movable type, and invented several branches of what we in the west today call the social sciences. Whatever do these wacky and diverse things have to do with what I'm building?
Well, RESTful applications are all the rage in social networking sites, and they are used to do all kinds of various and sundry things in real world "Web 2.0" architectures. REST has attained something of the aura of "due North" as a philosophy behind web application design. So the name "shenkuo" for a code generation framework for RESTful applications based on Erlang/OTP seems as good as any. And it just so happens that my first such distributed application is in the sphere of web publishing, so the reference to movable type in Shen Kuo's curriculum vitae seems to close the deal for me.
I will be posting more about this YAAP in this space as I work on it. One of its key requirements will be to generate client proxy libraries to consume the generated RESTful interfaces in addition to the interfaces themselves, and I'll be focusing in this space on .NET clients (particularly WPF and Silverlight), for those of you here wondering why Tom tolerates my presence on his Microsoft SOA blog site. :)