# Tierless Web programming in ML

**URL:** <https://discuss.ocaml.org/t/tierless-web-programming-in-ml/1125>\
**Category:** Ecosystem\
**Tags:** thesis, ocsigen, announce\
**Created:** [November 15, 2017, 3:12pm UTC](https://discuss.ocaml.org/t/tierless-web-programming-in-ml/1125 "2017-11-15T15:12:51Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Drup](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/drup/32/35_2.png) [@Drup](https://discuss.ocaml.org/u/Drup)\
**Post date:** [November 15, 2017, 3:12pm UTC](https://discuss.ocaml.org/t/tierless-web-programming-in-ml/1125/1 "2017-11-15T15:12:51Z")

</div>

I’m happy to announce that I successfully defended my PhD Thesis, titled “Tierless Web programming in ML”!

My thesis describes the formalization and the implementation of Eliom, an extension of OCaml for tierless Web programming, as part of the [ocsigen project](https://ocsigen.org). You can find all the details [here](https://www.irif.fr/~gradanne/phdthesis.html), along with [the thesis](https://www.irif.fr/~gradanne/papers/phdthesis.pdf) and [the slides](https://www.irif.fr/~gradanne/papers/talk_phdthesis.pdf). I have copied the abstract below.

* * *

Eliom is a dialect of OCaml for Web programming in which server and client pieces of code can be mixed in the same file using syntactic annotations. This allows 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.

Eliom is type-safe, as it ensures that communications are well-behaved through novel language constructs that match the specificity of Web programming. Eliom is also efficient, it provides static slicing which separates client and server parts at compile time and avoids back-and-forth communications between the client and the server. Finally, Eliom supports modularity and encapsulation thanks to an extension of the OCaml module system featuring tierless annotations that specify whether some definitions should be on the server, on the client, or both.

This thesis presents the design, the formalization and the implementation of the Eliom language.

---

<div class="post-metadata">

**Author:** ![bluddy](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/bluddy/32/104_2.png) [@bluddy](https://discuss.ocaml.org/u/bluddy)\
**Post date:** [November 15, 2017, 4:48pm UTC](https://discuss.ocaml.org/t/tierless-web-programming-in-ml/1125/2 "2017-11-15T16:48:53Z")

</div>

Yay! Are you planning on doing more work on Eliom now?

---

<div class="post-metadata">

**Author:** ![perry](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/perry/32/518_2.png) [@perry](https://discuss.ocaml.org/u/perry)\
**Post date:** [November 15, 2017, 5:03pm UTC](https://discuss.ocaml.org/t/tierless-web-programming-in-ml/1125/3 "2017-11-15T17:03:12Z")

</div>

Congratulations, Dr. Radanne!

---

<div class="post-metadata">

**Author:** ![Drup](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/drup/32/35_2.png) [@Drup](https://discuss.ocaml.org/u/Drup)\
**Post date:** [November 15, 2017, 5:44pm UTC](https://discuss.ocaml.org/t/tierless-web-programming-in-ml/1125/4 "2017-11-15T17:44:27Z")

</div>

Maybe, we will see. 😛  
I will take a small break from web-related things for now, at least. Although I have some papers to publish on the topic and I’m still maintainer of tyxml. 🙂
