Links
Philip Wadler
Edinburgh
A typical web system is organized in three tiers, each running on a
separate computer. Middle-tier logic on the server generates forms to
send to a front-end browser and queries to send to a back-end
database. The programmer must master a myriad of languages: the logic
is written in a mixture of Java, Python, and Perl; the forms in HTML,
XML, and Javascript; and the queries are written in SQL or XQuery.
There is no easy way to link these --- to be sure that a form in HTML
or a query in SQL produces data of a type that the logic in Java
expects --- this is called the impedance mismatch problem. Links
collapses this Tower of Babel by providing a single source that
compiles into Javascript, Java, SQL, and XQuery, among others. Links
builds on previous successes with functional languages, incorporating
support for database programming from Kleisli, for XML programming
from Xduce, for web interaction from Scheme and Haskell, and for
distributed programming from Erlang.