ELIOM is a dialect of OCAML for Web programming. It can be used both server and client-side. Server and client sections can also be mixed in the same file using syntactic annotations. This allows one to build a whole application as a single distributed program, in which it is possible to define in a composable way reusable widgets with both server and client behaviors. Our language also enables simple and type-safe communication. ELIOM matches the specificities of the Web by allowing the programmer to interleave client and server code while maintaining efficient one-way server-to-client communication. We present how the language extensions introduced by ELIOM enable a new paradigm for Web programming, and how this paradigm allows building complex libraries easily, safely, and in a composable manner.
['Gabriel Radanne', 'Vasilis Papavasileiou', 'Jérôme Vouillon', 'Vincent Balat']
ELIOM: tierless Web programming from the ground up