|
| 1 | +Links is a functional programming language designed to make web programming |
| 2 | +easier. |
| 3 | + |
| 4 | +Links eases building interactive web applications with significant client- and |
| 5 | +server-side components. |
| 6 | + |
| 7 | +A typical, modern web program involves many "tiers": part of the program runs |
| 8 | +in the web browser, part runs on a web server, and part runs in back-end |
| 9 | +systems such as a relational database. To create such a program, the programmer |
| 10 | +must master a myriad of languages: the logic is written in a mixture of Java, |
| 11 | +Python, and Perl; the presentation in HTML; the GUI behavior in Javascript; and |
| 12 | +the queries are written in SQL or XQuery. There is no easy way to link these, |
| 13 | +for example, to be sure that an HTML form or an SQL query produces the type of |
| 14 | +data that the Java code expects. This problem is called the impedance |
| 15 | +mismatch problem. |
| 16 | + |
| 17 | +Links eases the impedance mismatch problem by providing a single language for |
| 18 | +all three tiers. The system generates code for each tier; for instance, |
| 19 | +translating some code into Javascript for the browser, some into a bytecode for |
| 20 | +the server, and some into SQL for the database. |
| 21 | + |
| 22 | +Links incorporates proven ideas from other programming languages: |
| 23 | +database-query support from Kleisli, web-interaction proposals from PLT Scheme, |
| 24 | +and distributed-computing support from Erlang. On top of this, it adds some new |
| 25 | +web-centric features of its own. |
0 commit comments