Links is a new programming language designed to make web programming easier.
Links eases building modern Ajax-style applications: those with significant client- and server-side components.
A typical, modern web program involves many "tiers": part of the program runs in the web browser, part runs on a web server, and part runs in back-end systems such as a relational database. To create such a program, the programmer must master a myriad of languages: the logic is written in a mixture of Java, Python, and Perl; the presentation in HTML; the GUI behavior in Javascript; and the queries are written in SQL or XQuery. There is no easy way to link these, for example, to be sure that an HTML form or an SQL query produces the type of data that the Java code expects. This problem is called the impedance mismatch problem.
Links eases the impedance mismatch problem by providing a single language for all three tiers. The system generates code for each tier; for instance, translating some code into Javascript for the browser, some into a bytecode for the server, and some into SQL for the database.
Links incorporates proven ideas from other programming languages: database-query support from Kleisli, web-interaction proposals from PLT Scheme, and distributed-computing support from Erlang. On top of this, it adds some new web-centric features of its own.
Demos
Demo Links programs.Download
Currently the Links source code must be compiled with OCaml version 3.10 as there is a regression in the camlp4 tool shipped with OCaml 3.11.0.
Community
links-users mailing list
Publications
- The Arrow Calculus. Sam Lindley, Philip Wadler, and Jeremy Yallop. Draft (January 2009).
- The essence of form abstraction. Ezra Cooper, Sam Lindley, Philip Wadler, and Jeremy Yallop. To appear at APLAS 2008.
- Idioms are oblivious, arrows are meticulous, monads are promiscuous. Sam Lindley, Philip Wadler, and Jeremy Yallop. In the proceedings of MSFP 2008
- Links: Web Programming Without Tiers. Ezra Cooper, Sam Lindley, Philip Wadler, and Jeremy Yallop. In the proceedings of FMCO 2006, LNCS 4709.
- Original grant proposal for EPSRC (2005).
People
Group photo (Nov 2006).- Ezra Cooper, PhD student (research blog).
- Gilles Dubochet, MSc student (graduated).
- Shriram Krishnamurthi, visitor, Nov 2006.
- Sam Lindley, RA.
- Thierry Martinez, Visitor from ENS, Mar–Aug 2006.
- Rodney Topor, Visitor, Sep–Dec 2005. Rodney taught us about transactions.
- Philip Wadler, Principal investigator.
- Jeremy Yallop, PhD student (research blog).
Undergraduate projects
- Compiling Links server-side code. Steven Holmes (2009).
- LODE: an online IDE for Links in Links. Carl Andersson (2008).
- Online Scrabble in Links. Ashvin Jayaram (2008).
- Building web 2.0 applications in Links: Speed dependent automatic zooming for web applications. Sjoerd van Roosmalen (2008).
- Creating linksCollab: an assessment of Links as a web development language. Steve Strugnell (2008).
MSc projects
- Implementing the Java Pet Store in Links: An assessment of Links as an effective platform for building web applications . Gabriel Tellez (2008).
- Building biological database applications using Links. Ravi Shankar Dangeti (2008).
- The SLinks language. Gilles Dubochet (2005).
Security
Talks
- Talk slides (Melbourne, 2 Feb 2006)
- Talk slides (PADL, 9 Jan 2006)
- Links meeting at ETAPS (Edinburgh, 6 Apr 2005)
- Talk slides (Cambridge, 9 Feb 2005)
Last modified: Thu Jul 29 15:50:54 BST 2010