Communications of the ACM 54 (11): 53-58, 2011.
CR Review No. 139853
One of the often-cited success stories in the use of functional programming in recent years has been the deployment of OCaml by Jane Street, a trading company dealing in high volumes of shares and funds. Financial trading requires software of high integrity, speed, and trustworthiness; any bug in the software can cost vast sums of money.
In this lively and readable paper, Minsky explains, at a high level, the reasons why OCaml fits with the software requirements for Jane Street’s trading functions and the outcomes of its experience. Most of the paper is characterized by an informal, example-based description of the features of functional languages in general, and OCaml in particular, that make it particularly suitable for Jane Street’s purposes, mainly pertaining to the type of system. Some of the features are compared with analogues in Java and C#, and bring home the point that the type of system, based on algebraic data types and type inference, offers many benefits for software readability and correctness.
The paper starts by describing the previous use of Visual Basic for Applications (VBA) code and Excel spreadsheets to run the necessary functions, which raises the expectation that the author will compare the coding of the financial calculations in OCaml vis-à-vis VBA and Excel. However, no such comparison is made, nor does the author address the issue of mathematical calculations, which are notoriously challenging. Mutability is one of the points of contention between different functional programming theorists; the issue is described briefly, but the actual use of mutable state in Jane Street’s programs is not explained.
The short, well-written paper is particularly suitable for introducing colleagues and students to the idea of functional programming. The paper’s strength is that it provides an enthusiastic and well-informed endorsement for functional languages from the point of view of an organization where decisions on software development are not academic, but involve serious financial repercussions.
OCaml and functional languages suffer from a slightly dismissive attitude from industry-based software developers; one can hope that papers like this one, read with an open mind, may encourage more people to consider using this class of programming languages.
Reviewer: Sara Kalvala
[This is a previously published Editor's Pick.]
Comments