Links: Linking Theory to Practice for the Web

About Links

Links is a functional programming language designed to make web programming easier.

Links eases building interactive web applications 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 may be written in Java; the presentation in HTML and CSS; the GUI behavior in Javascript; and the queries in SQL. 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 Racket, and distributed-computing support from Erlang. On top of this, it adds new web-centric features of its own.

The initial Links development effort was funded by EPSRC grant EP/D046769/1 from 2005-2009. In 2014 development on Links resumed with a focus on adding session types to Links, funded by EPSRC Programme Grant "From Data Types to Session Types: A Basis for Concurrency and Distribution" (EP/K034413/1). Other active areas of research which are driving Links development include work on adding algebraic effects and effect handlers to Links (UKRI Future Leaders Fellowship EHOP, grant number MR/T043830/1) and the Skye project, which builds on Links to support scientific data curation (funded by the European Research Council, grant number 682315).

Publications

Grants

Core team

Alumni

The links team
The Links team on Arthur's Seat: Philip Wadler, Jeremy Yallop, Sam Lindley, Ezra Cooper. (Nov 2006)

Visitors

Undergraduate projects

MSc Projects

Interns

Security

Talks