21 ms·
Caml Trading – Experiences with OCaml on Wall Street [video]
- pokpokpok 12y agoMy girlfriend found a jane street promo t-shirt in an Ithaca thrift shop - it has a nice starry sky pattern and reads something like "A more elegant language for a more civilized age". I'm enamored with the shirt! I don't know much about performant FP financial wizardry but appreciate their design dept. https://www.janestreet.com/blog/what-we-do/faqs/ https://www.janestreet.com/blog/what-we-do/faqs/ <-404's for me
- azmenthe 12y agoWow I would love a Jane Street shirt
- pokpokpok 12y agoI know, right? It's one of those companies that depresses me because I think I'd love working there but I don't consider myself a genius
- mcguire 12y agoI don't believe you need to be a genius. Just willing to move to New York. Give it a whack. How much can it hurt?
- tome 12y agoI got given one at ICFP this year. If you're in the UK I'll send it to you.
- saosebastiao 12y agoQuick question for the ocaml crowd: what keeps you with ocaml when you have a very similar and more easily parallelized f# available? I ask as an outsider to both, but a fan of ML-ish languages in general. Would Jane Street ever be open to using F# or Haskell or Rust or Scala?
- mercurial 12y agoI'm only a recent dabbler in OCaml, so take my opinion with a grain of salt. First off, it depends on what kind of problem you are working on. Support for concurrency is good (through Lwt and Async), so the situation is not worse (actually, better, because monadic concurrency is vastly superior to callbacks) than in a popular language like Javascript, or Python with its GIL. Secondly, work started on a parallel runtime a few months ago, and seems to progress at a steady pace, so we should get parallelism and cheap fibers at some point. Regarding other functional languages, you are mixing some oranges in your apples. I find Rust appealing, especially with the amount of thought that goes into crafting it, but when it comes down to it, it is intended to replace C++. You are trading the convenience of a garbage-collected runtime for more control over memory allocation, and this comes at a cost. I could imagine OCaml calling Rust code for performance-critical sections, though. Regarding F#, it's no doubt a nice language and works as an incubator for ideas which trickle down to C# eventually, but I for one have little interest in the .Net ecosystem. Scala I find too scattered in terms of features, it doesn't make for a very elegant language. Also, the JVM is performant, but it's a pig in terms of memory. As for Haskell, many OCaml developers have been moving to it in the last few years. On the other hand, you don't switch to language with a lazy runtime with impunity (debugging Haskell is not particularly fun). I find the average complexity of Haskell programs higher, and a combination of syntactic features, popularity of custom ASCII operators and one-letter variable names make for sometimes barely readable code. Not to mention that OCaml is more pragmatic: sometimes it is convenient to write a for loop.
- adamnemecek 12y agoRust actually has an optional GC. Also, even non-GC code in Rust is a lot different than say in C++ since the compiler can point out a lot of memory leaks to the programmer.
- mercurial 12y agoI'm well aware of that. However, using GC fattens considerably Rust type signatures (want a garbage-collected list of garbage-collected Foos? Enjoy writing Gc<List<Gc<Foo>> everywhere). It's just not particularly idiomatic. And Gc types are not Send types, so you can't share them across tasks, which is unfortunate since we were precisely discussing the lack of parallelism in OCaml :) It's not a dig at Rust, which I think is very well designed, but IMHO, it is in a different niche compared to the other functional languages listed above.
- DanielBMarkham 12y agoVery cool. I was very close to going all-in with OCaml a few years back when I made the switch to FP. I still love their module system -- and am very disappointed to see F# leaving its roots and becoming just another .NET language (which has it's good parts and bad parts) What swayed me at the time was the fact that you had to roll your own libraries for so many things that you get out of the box with .NET. I understand that's changing, but in my mind it's just not ready yet. Maybe in a year or two. I'm still thinking of moving on to something else. It's either going to be OCaml or Haskell. Would love to see some folks doing this same kind of thing with F#, talking about real-world production systems. I've done some small app work with it, and blogged about it ( http://tiny-giant-books.com/blog/real-world-f-programming-part-1-structuring-your-solution/ http://tiny-giant-books.com/blog/real-world-f-programming-pa... ), but what the F# community could use is some fans like OCaml has with Jane Street.
- mercurial 12y agoOPAM, the new package manager, is very good. But, yeah, the ecosystem isn't that huge.
- logicchains 12y agoOut of interest, what were some of the major things you found missing from the OCaml library ecosystem?
- DanielBMarkham 12y agoRemember, it was 4-5 years ago, and OPAM didn't exist. I remember thinking, "Wouldn't it be neat to scrape some web sites?" I couldn't find anything in OCaml, but .NET had the HtmlAgilityPack written in C# for Windows. Pop over to github, pull down the source, recompile? Badda bing, badda boom, it's running in Linux. And I'm able to use it in F# without really having to know C# (Even though that's not the case). I realized that I could do that for literally thousands of different apps and utilities. So you had this entire ecosystem of programmers making open source stuff for windows that you could easily use in linux. That was the deal-closer. Plus it looked like Mono had finished going through it's almost-ready-but-not-quite stage. I would still love to be able to permanently load .NET apps in Apache and call them a la fastCGI, but heck, even that might be a solved problem by now. Finally there was the F# community, which was basically a bunch of old OO MS hacks like myself trying to find their way along mixed in with some really nice academic types who were helpful. OCaml, sadly, did not have that kind of feel. Instead there was a lot of French. And searching around the web for answers to how to do really simple things, like get started, write a web app, or cross-system develop. The barrier to entry was just too high. But, like I said, that's changing.
- toolslive 12y agoHe also persuaded the traders to use emacs.
- ANTSANTS 12y agoI couldn't get the video or presentation to play, even in Chrome with Flash enabled, without using a mobile user agent. And you can't download the audio or slides without an account. Great web design. http://d1snlc0orfrhj.cloudfront.net/presentations/14-jun-camltrading-2.mp4 http://d1snlc0orfrhj.cloudfront.net/presentations/14-jun-cam...
- lukasm 12y agoWorks for me. Have you tried in p0rn mode?