OCaml As Implementation Language

OCaml is still an insider tip. Although large companies have used it for interesting projects mostly in code verification (Intel, Microsoft, Airbus), and there are plenty of industrial users now (Lexifi, Janestreet Capital, Mylife.com), it is still mostly unknown even to the professional audience. There is the sister language F#, developed by Microsoft and with practically the same syntax, that targets .NET and tries to bring OCaml to the masses.

Gerd Stolpmann still prefers the original implementation developed by Xavier Leroy and team at INRIA. It runs on all major Unix platforms (even on the iPhone), and all processor architectures. There is also a Win32 port (independent of Microsoft's F#).

OCaml for system programming

There are good reasons for choosing OCaml as implementation language in the system domain:

Where OCaml outperforms other languages

Originally, OCaml was developed as high-performance language for symbolic programming (e.g. code verification problems). Interestingly, exactly this area becomes more and more interesting for everybody, because symbolic data processing is a growing area of application programming: Even large data sets are nowadays modeled with a fine-grained structure (e.g. fields contain subfields), and OCaml easily outperforms the mainstream languages here.

Another trend is that computations are less linear than ever. The control flow is no longer only organized as a sequence of steps, somtimes enriched with loops, but other techniques like recursion, coroutines, and delayed computation become more and more important. OCaml shines here, too.

Gerd Stolpmann and OCaml

Since 2005 I'm using OCaml professionally, and have developed more than 90% of my code in OCaml. Customers hire me because of my excellent knowledge.

Gerd Stolpmann has supported OCaml for years (since around 1998). There is now the Camlcity website giving an overview over my activities, especially software that is distributed with an Open Source license. Relevant for the area of system programming:

 
Dipl.-Inform. Gerd Stolpmann
[de] Deutsch / Lokale Kunden
[en] English / Int. Customers