Links helps to build modern Ajax-style applications: those with significant client- and server-side components.
Links incorporates ideas proven in 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.
- Allows web programs to be written in a single programming language
- Call-by-value functional language
- Server / Client annotations
- Scalability through defunctionalised server continuations.
- Statically typed database access a la Kleisli
- Concurrent processes on the client and the server
- Statically typed Erlang-esque message passing
- Polymorphic records and variants
- An effect system for supporting abstraction over database queries whilst guaranteeing that they can be efficiently compiled to SQL
- Handlers for algebraic effects on the server-side and the client-side