2006-05-02
Links - Web Programming Without Tiers
From Lambda the Ultimate:
Links is a programming language for web applications. Links generates code for all three tiers of a web application from a single source, compiling into JavaScript to run on the client and into SQL to run on the database. Links provides support for rich clients running in what has been dubbed 'Ajax' style. Links programs are scalable in the sense that session state is preserved in the client rather than the server, in contrast to other approaches such as Java Servlets or PLT Scheme.
It looks like Links is making some great progress. A couple of interesting points from the paper:
- Links supports web continuations. The continuation state is stored on the client, not the server. They defunctionalize the continuation object, replacing functions with unique identifiers. In this way they reduce the size of the continuations to be manageable for client side storage.
- Client side concurrency! The client side code is compiled to Javascript in continuation passing style. This gives lightweight threads in Javascript on the browser.