Bloomberg engineer: "I feel more productive in OCaml" than Haskell
While C++ is the standard for low-level programming languages, there are more specialist niche ones with devout fans. Two of these are Haskell, well liked at Standard Chartered, and OCaml, a favorite of Jane Street.
But if you're looking for an alternative to C++, which is right for you? Dmitrii Kovanikov, a former Standard Chartered quant and current senior engineer at Bloomberg, spent most of his career in Haskell, but after switching to OCaml with Bloomberg he released a blog which had some interesting observations.
Haskell has "more features than probably any other programming language", but Kovanikov highlights that this can sometime be a problem. When working on a collaborative project, or picking something up from another developer, the "ugly side" can be unmanageable.
In OCaml, on the other hand, he says "the worst thing previous developers could do to it is have poor variable names, minimal documentation, and 200+ LOC functions." By not having to worry about all these potential complications, Kovanikov says, "I feel more productive in OCaml."
This extends to the ecosystems and plugins each language has. Kovanikov says the VSCode plugin, for example, "works out-of-the-box. I never had any issues with it." Haskell's ecosystem meanwhile is like "an emotional rollercoaster" with tons of good features, but a lot of errors and/or extra work to do to implement them.
OCaml's simplicity helps when working with the compiler. He says in Haskell, "compiler messages tend to be verbose with lots of contextual, often redundant, and distracting information." OCaml's messages meanwhile are "succinct" but they can sometimes be too succinct.
There are some areas, however, where Haskell shines. For one, Kovanikov says, "Haskell probably has the most elegant syntax across all languages I've seen," and expressing ideas in it can provide "utter joy." He also compliments the extensive documentation for Haskell's standard library, which can be especially important for beginners in the language.
Have a confidential story, tip, or comment you’d like to share? Contact: +44 7537 182250 (SMS, Whatsapp or voicemail). Telegram: @SarahButcher. Click here to fill in our anonymous form, or email firstname.lastname@example.org. Signal also available.
Bear with us if you leave a comment at the bottom of this article: all our comments are moderated by human beings. Sometimes these humans might be asleep, or away from their desks, so it may take a while for your comment to appear. Eventually it will – unless it’s offensive or libelous (in which case it won’t.).