|
| 1 | +--- |
| 2 | +title: Announcing OCaml Labs |
| 3 | +description: Introducing OCaml Labs, a new project at Cambridge Computer Lab to develop |
| 4 | + and improve the OCaml programming language. |
| 5 | +url: https://anil.recoil.org/notes/announcing-ocaml-labs |
| 6 | +date: 2012-10-19T00:00:00-00:00 |
| 7 | +preview_image: |
| 8 | +authors: |
| 9 | +- Anil Madhavapeddy |
| 10 | +source: |
| 11 | +--- |
| 12 | + |
| 13 | +<p>I’m very excited to announce <a href="https://anil.recoil.org/projects/ocamllabs">OCaml Labs</a>, the latest project |
| 14 | +to hit the Cambridge Computer Lab. As anyone that hangs out near me |
| 15 | +probably realises, I very much enjoy functional programming. My weapon |
| 16 | +of choice tends to be <a href="http://www.ocaml-lang.org">OCaml</a>, as it |
| 17 | +condenses <a href="http://events.inf.ed.ac.uk/Milner2012/X_Leroy-html5-mp4.html">decades of |
| 18 | +research</a> |
| 19 | +into a pragmatic blend of functional, imperative and object-oriented |
| 20 | +programming styles. What’s perhaps less well known are the steady |
| 21 | +<a href="http://www.ocaml-lang.org/companies.html">inroads</a> that OCaml has been |
| 22 | +making into mission-critical areas of industry. At <a href="http://ocaml.janestreet.com">Jane |
| 23 | +Street</a>, billions of dollars of |
| 24 | +transactions are routed through a huge ML code-base that is designed to |
| 25 | +catch bugs <a href="http://vimeo.com/14313378">at compile-time</a>. At |
| 26 | +<a href="http://github.com/xen-org/xen-api">Citrix</a>, the Xen management |
| 27 | +toolstack that powers |
| 28 | +<a href="http://blogs.citrix.com/2012/10/09/one-in-a-million/">millions</a> of |
| 29 | +hosts in the cloud is <a href="https://anil.recoil.org/papers/2010-icfp-xen.pdf">largely written in |
| 30 | +OCaml</a>. Facebook does |
| 31 | +sophisticated <a href="https://github.com/facebook/pfff/wiki/Main">static |
| 32 | +analysis</a> using OCaml over |
| 33 | +their vast PHP codebase to close security holes.</p> |
| 34 | +<p>The OCaml community is small but dedicated, but there is always more to |
| 35 | +do to improve the language and ecosystem. So, thanks to a generous |
| 36 | +platform grant from <a href="http://ocaml.janestreet.com">Jane Street</a>, we are |
| 37 | +launching a program to help with the open-source development of OCaml |
| 38 | +from Cambridge.</p> |
| 39 | +<p>The <em><a href="http://www.cl.cam.ac.uk/projects/ocamllabs/">OCaml Labs</a></em> are |
| 40 | +based in the <a href="http://www.cl.cam.ac.uk">Cambridge Computer Lab</a> and led |
| 41 | +my myself, <a href="http://www.cl.cam.ac.uk/~am21/">Alan Mycroft</a> and <a href="http://www.cl.cam.ac.uk/~iml1/">Ian |
| 42 | +Leslie</a>. We’re closely affiliated with |
| 43 | +other |
| 44 | +<a href="http://www.cl.cam.ac.uk/projects/ocamllabs/collaboration.html">groups</a>, |
| 45 | +and will be:</p> |
| 46 | +<ul> |
| 47 | +<li> |
| 48 | +<p>developing the OCaml Platform, which will bundle the official OCaml |
| 49 | +compiler from INRIA with a tested set of community libraries that |
| 50 | +refreshed every six months.</p> |
| 51 | +</li> |
| 52 | +<li> |
| 53 | +<p>working with the core OCaml team at INRIA’s |
| 54 | +<a href="http://gallium.inria.fr/">Gallium</a> group on the compiler, and with |
| 55 | +commercial partners like <a href="http://ocamlpro.com">OCamlPro</a> on tool |
| 56 | +development. OCamlPro are making some very impressive progress |
| 57 | +already with the <a href="http://opam.ocamlpro.com">OPAM</a> packge manager and |
| 58 | +<a href="http://www.typerex.org">TypeRex</a> IDE helper.</p> |
| 59 | +</li> |
| 60 | +<li> |
| 61 | +<p>supporting the online presence with more teaching material and |
| 62 | +content. Yaron, Jason and I are working hard on a <a href="http://realworldocaml.org">new |
| 63 | +book</a> that will be published next year, |
| 64 | +and the OCaml Web team (led by <a href="http://ashishagarwal.org">Ashish</a> |
| 65 | +and |
| 66 | +<a href="https://plus.google.com/109604597514379193052/posts">Christophe</a>) |
| 67 | +have made great progress on a <a href="http://www.ocaml-lang.org">brand new |
| 68 | +website</a> that we will move to the |
| 69 | +<code>ocaml.org</code> domain soon.</p> |
| 70 | +</li> |
| 71 | +</ul> |
| 72 | +<h3>Research efforts</h3> |
| 73 | +<p>Of course, it is difficult to hack on a language in a void, and we also |
| 74 | +<em>use</em> OCaml heavily in our own research. The other half of OCaml Lab’s |
| 75 | +goals are more disruptive (and riskier!):</p> |
| 76 | +<ul> |
| 77 | +<li>The upcoming first beta release of <a href="http://openmirage.org">Mirage</a>, |
| 78 | +which is an operating system designed for cloud and embedded |
| 79 | +environments, and is written almost entirely from the ground up in |
| 80 | +OCaml. The outputs of Mirage include a <a href="http://www.openmirage.org/blog/breaking-up-is-easy-with-opam">large number of |
| 81 | +libraries</a> |
| 82 | +which are usable separately, such as pure implementations of TCP/IP, |
| 83 | +DNS, SSH, DHCP and HTTP. The Xen hackers, led by <a href="http://dave.recoil.org">David Scott</a>, are out in force to integrate Mirage |
| 84 | +into their <a href="http://www.xen.org/xensummit/xs12na_talks/T2.html">next-generation</a> |
| 85 | +platform. Meanwhile, Raphael Proust is busy eliminating the <a href="https://anil.recoil.org/papers/drafts/2012-places-limel-draft1.pdf">garbage |
| 86 | +collector</a> |
| 87 | +with his cut-down “LinearML” variant.</li> |
| 88 | +<li>Working with our collaborators at the <a href="http://horizon.ac.uk">Horizon |
| 89 | +Institute</a> on privacy-preserving technologies |
| 90 | +such as |
| 91 | +<a href="https://anil.recoil.org/papers/2012-sigcomm-signposts-demo.pdf">Signposts</a> |
| 92 | +which let you build and maintain your own personal clouds that |
| 93 | +operate <a href="https://anil.recoil.org/papers/2011-icdcn-droplets.pdf">autonomously</a> |
| 94 | +from the central cloud. You can read more about our <a href="http://www.cam.ac.uk/research/features/privacy-by-design/">privacy-by-design</a> philosophy too.</li> |
| 95 | +<li>Extending OCaml to run on secure hardware platforms that doesn’t |
| 96 | +compromise on performance, using the MIPS64-based <a href="http://www.cl.cam.ac.uk/research/security/ctsrd/cheri.html">capability |
| 97 | +processor</a> |
| 98 | +that is being developed at at the Lab.</li> |
| 99 | +<li>The <a href="http://www.trilogy-project.org">Trilogy</a> was a hugely |
| 100 | +successful EU-funded effort on future evolution of the Internet, and |
| 101 | +resulted in <a href="http://trilogy-project.org/publications/standards-contributions.html">numerous |
| 102 | +RFCs</a> |
| 103 | +on subjects such as multipath-TCP. We’re partipating in the |
| 104 | +follow-up (imaginatively dubbed “Trilogy2”), and look forward to |
| 105 | +working on more structured abstractions for programming large-scale |
| 106 | +networks.</li> |
| 107 | +</ul> |
| 108 | +<h3>Getting involved</h3> |
| 109 | +<p>So, how can you get involved? We are initially advertising three |
| 110 | +positions for full-time developers and researchers |
| 111 | +(<a href="http://www.jobs.cam.ac.uk/job/-21662/">junior</a> and |
| 112 | +<a href="http://www.jobs.cam.ac.uk/job/-21942/">senior</a>) to help us get started |
| 113 | +with the OCaml Platform and compiler development. These aren’t |
| 114 | +conventional pure research jobs, and a successful candidate should enjoy |
| 115 | +the open-source development cycle (you retain your own copyright for |
| 116 | +your own projects). The Computer Lab offers a pretty unique environment: |
| 117 | +a friendly, non-hierarchical group in a beautiful city, and some of the |
| 118 | +best faculty and students you could hope to hang out with.</p> |
| 119 | +<p>And finally, there is a longer lead time on <a href="http://www.cl.cam.ac.uk/admissions/phd/">applying for |
| 120 | +PhDs</a>, but this is a great time |
| 121 | +to get involved. When I started at the Lab in 2002, a little project |
| 122 | +called <a href="http://xen.org">Xen</a> was just kicking off, and many of us had a |
| 123 | +wild (and oft great) time riding that wave. Get in touch with myself, |
| 124 | +<a href="http://www.cl.cam.ac.uk/~am21/">Alan</a>, |
| 125 | +<a href="http://www.cl.cam.ac.uk/~iml1/">Ian</a> or |
| 126 | +<a href="http://www.cl.cam.ac.uk/~jac22/">Jon</a> soon if you are interested in |
| 127 | +applying! There’s some more information available on the <a href="http://www.cl.cam.ac.uk/projects/ocamllabs/collaboration.html">OCaml Labs |
| 128 | +pages</a> |
| 129 | +about options.</p> |
| 130 | + |
0 commit comments