I’m very excited to announce OCaml Labs, the latest project to hit the Cambridge Computer Lab. As anyone that hangs out near me probably realises, I very much enjoy functional programming. My weapon of choice tends to be OCaml, as it condenses decades of research into a pragmatic blend of functional, imperative and object-oriented programming styles. What’s perhaps less well known are the steady inroads that OCaml has been making into mission-critical areas of industry. At Jane Street, billions of dollars of transactions are routed through a huge ML code-base that is designed to catch bugs at compile-time. At Citrix, the Xen management toolstack that powers millions of hosts in the cloud is largely written in OCaml. Facebook does sophisticated static analysis using OCaml over their vast PHP codebase to close security holes.
The OCaml community is small but dedicated, but there is always more to do to improve the language and ecosystem. So, thanks to a generous platform grant from Jane Street, we are launching a program to help with the open-source development of OCaml from Cambridge.
developing the OCaml Platform, which will bundle the official OCaml compiler from INRIA with a tested set of community libraries that refreshed every six months.
working with the core OCaml team at INRIA’s Gallium group on the compiler, and with commercial partners like OCamlPro on tool development. OCamlPro are making some very impressive progress already with the OPAM packge manager and TypeRex IDE helper.
supporting the online presence with more teaching material and content. Yaron, Jason and I are working hard on a new book that will be published next year, and the OCaml Web team (led by Ashish and Christophe) have made great progress on a brand new website that we will move to the
Of course, it is difficult to hack on a language in a void, and we also use OCaml heavily in our own research. The other half of OCaml Lab’s goals are more disruptive (and riskier!):
The upcoming first beta release of Mirage, which is an operating system designed for cloud and embedded environments, and is written almost entirely from the ground up in OCaml. The outputs of Mirage include a large number of libraries which are usable separately, such as pure implementations of TCP/IP, DNS, SSH, DHCP and HTTP. The Xen hackers, led by David Scott, are out in force to integrate Mirage into their next-generation platform. Meanwhile, Raphael Proust is busy eliminating the garbage collector with his cut-down “LinearML” variant.
Working with our collaborators at the Horizon Institute on privacy-preserving technologies such as Signposts which let you build and maintain your own personal clouds that operate autonomously from the central cloud. You can read more about our privacy-by-design philosophy too.
Extending OCaml to run on secure hardware platforms that doesn’t compromise on performance, using the MIPS64-based capability processor that is being developed at at the Lab.
The Trilogy was a hugely successful EU-funded effort on future evolution of the Internet, and resulted in numerous RFCs on subjects such as multipath-TCP. We’re partipating in the follow-up (imaginatively dubbed “Trilogy2”), and look forward to working on more structured abstractions for programming large-scale networks.
So, how can you get involved? We are initially advertising three positions for full-time developers and researchers (junior and senior) to help us get started with the OCaml Platform and compiler development. These aren’t conventional pure research jobs, and a successful candidate should enjoy the open-source development cycle (you retain your own copyright for your own projects). The Computer Lab offers a pretty unique environment: a friendly, non-hierarchical group in a beautiful city, and some of the best faculty and students you could hope to hang out with.
And finally, there is a longer lead time on applying for PhDs, but this is a great time to get involved. When I started at the Lab in 2002, a little project called Xen was just kicking off, and many of us had a wild (and oft great) time riding that wave. Get in touch with myself, Alan, Ian or Jon soon if you are interested in applying! There’s some more information available on the OCaml Labs pages about options.