Jane and the Compiler

  • Jane Street first introuced OCaml as a temporary prototype language that happened to stick around. They consider it a good decision, but one that happened by accident!
  • They’ve since grown (from 30 -> 800 people), and make language/compiler-level contributions themselves.
  • A framework to think about how language choice affects an organization:
    • Performance
    • Safety
    • Productivity
    • Learnability
  • Many additions to OCaml have been useful to Jane Street; some they’ve asked for/implemented, but others they didn’t realize they needed.
  • Some of the latter (not sure I understand most of these):
    • First-class modules allow you to work with modules as regular values at runtime, performing module-level dynamic dispatch (as an example) at runtime.
    • GADTs
    • Merlin provides IDE-like features in regular text editors; the speaker was completely ok using OCaml without this sort of tooling until it existed, at which point the old way seemed archaic. I’ve definitely seen this in practice a bunch.
    • PPXs improve OCaml’s metaprogramming capabilities (admittedly not as good as Lisp{-like} languages).
  • And some things they’ve implemented themselves:
  • Open-sourcing internal tooling usually makes it better on both sides.
  • They have a vested interest in making OCaml easy/appealing to work in in general; what if it becomes the next COBOL/Forth/etc. in 20 years?
  • Does the work Jane Street is doing count as HFT? If so, is OCaml actually a serious alternative to C++?