Tuesday 15 January 2008

POPL day 3

The final day of POPL started with an invited by Yaron Minsky from Jane Street Capital, who are a trading company based in Wall Street. The moral of his talk was that Jane Street's language of choice is OCAML. His talk was very interesting - indeed there was some discussion at the end as to whether it could be taped - it really should be seen by undergraduates! In some senses he was preaching to the converted (Functional Programming is A Good Idea!), but it was very nice to hear it explained so convincingly.

Yaron listed Jane Street's technical requirements for code: (1) Correctness (2) Agility and (3) Performance. When you are trading millions of dollars, correctness of code is very important! Indeed, the partners of Jane Street code review *all* the code. For them, the clearer the code the better. In addition, succinctness is important. That helps Jane Street be agile in their development, as does the expressiveness of OCAML. Finally, OCAML's efficient compilation is very important. During peaks in the day, Jane Street can be dealing with 100,000 equity transactions a second, and recording .5TB of data a day. This would not be possible unless OCAML were efficient.

A couple of other interesting facts from his talk:
  1. They tried C# before moving to OCAML. They dropped C# because of code verbosity and the difficulty of reasoning about their code.
  2. He mentioned that they hardly use the objects features of OCAML at all.

The rest of the day was packed with great talks - it was hard to find time to sneak out and buy presents for my daughters :-) Some highlights for me:

  • Conor McBride's talk was fantastic. It was typically eccentric - but Conor was even more on fire than normal. He had good jokes and he's really cracked animation via sellotaped ohp-slides! He was talking about some funky zipper-like techniques for walking over tree-like data structures.
  • Hugo Herbelin got me all nostalgic again for lambda-mu-calculi. I wrote a paper a long time ago about operational reasoning in a lambda-mu version of PCF. No-one has ever read this paper - which is a shame as it contains some nice results. (IMHO it's more slick than the Ong-Stewart treatment, but that still gets lots of citations...) Anyhow, Hugo gave a nice talk about generalizing this calculus (or rather the "tp" variant) to delimited continuations. Nice stuff. Maybe I'll revisit this area...
  • Sam Tobin-Hochstadt gave a wonderful talk about Typed Scheme. I've been thinking about this problem for a while - so this is the paper I am most itching to read when I get back to Cambridge.
  • Nate Foster gave a cool talk about Boomerang, which is the UPenn programming language based on lenses.

To celebrate the end of POPL, Matt and I tried the hotel's signature "flight of martinis". This is a little tray of three small cocktails. This is a very nice idea, as you get to decide which full-sized one(s) you want to drink. In between cocktails we went for a fun Chinese at Brandy Ho's in Chinatown. Brandy knows her fish - thanks to Dana and Christian for ordering for the whole table! We went back to the hotel for cocktails and then after a while I realized that I was keeping up with Matthew and it was getting late. Not a great idea, so I bailed out and staggered up to my room leaving Matt drinking until the early hours :-)

No comments: