Discover a new way
to program the Web!
Our philosophy
Ocsigen is a free software project aimed at developing new programming techniques for the Web. Its goal is to offer an alternative to Apache/PHP/Flash, based on cutting-edge technologies from research in programming languages. It contains a full featured Web server and a programming framework, called Eliom, that provides a new way to create dynamic Web sites. With Eliom, you program in a concise and modular way, with a strong type system which helps you to produce valid XHTML. Eliom handles sessions, URLs, and page parameters automatically.
Today, most web sites are written using old technologies, such as CGI scripts or (untyped) scripting languages embedded in html. This situation, was acceptable at the time when the web was mainly static. But today, more and more sites are highly dynamic, and web developers experience difficulties every day for creating and maintaining large pieces of code written in such languages. Inspired by theoretical research in computer science and logic, there are now new languages allowing to program in a cleaner way, drastically reducing the time of the debugging process. But up to now these technologies have not been fully exploited in the domain of web programming.
In particular, some recent research papers have shown that functional programming works very well for this domain (use of continuations or closures, continuation passing style ...). Accordingly, Eliom considers each URL as a function taking arguments and producing a web page. Clicking on a link or a form triggers execution of this function.
Project history
- 1999: Christian Queinnec "Continuations versus page-centric programming"
- 2003: Jean-Vincent Loddo "WebSiCoLa: Programming the three tiers in one single source, using functional programming" (European project proposal HyperLearning)
- 10/2004: first prototype of Ocsigen, as an experimental implementation of WebSiCola in OCaml
- 01/04/2008: Version 1.0.0 of Ocsigen
Related projects
- Nurpawiki, a personal information manager written with Eliom
- Lambdium Light, a CMS written with Eliom
- Litiom, complement to Eliom, offering higher-level modules codifying a number of common patterns found in Web sites
- Websicola
- OcamlDuce, CDuce, XDuce
Links
Another significant issue addressed by Eliom is the generation of valid xhtml pages. The web relies on recommendations defined by the W3 consortium, and the only means to ensure universal availability of information is to respect these standards. Today, very few web sites are fully standard compliant. Eliom uses an advanced type system that guarantees that your web site will be valid (or very close).
OCaml
Rather than being a new language itself, Eliom uses OCaml, one of the world's most advanced programming languages, which already contains almost all the features we need (at least for this first version). This choice of a concrete language already widely used (even in industry) allows the programmer to take advantage of all the libraries and tools developed for this language. OCaml allows to program in a very efficient way, mixing several programming paradigms (functional, imperative, objects ...), and with a strong typing system that eliminates a lot of programmer errors that may cause problems at runtime. Programming with OCaml drastically reduces the time of the development/debugging process.
