In diesem Post geht es endlich mal wieder um OCaml, eine großartige funktionale Sprache, die es schon seit 1996 gibt. (Wenn man den Vorgänger Caml mitzählt sogar schon seit 1985.)
OCaml hat wie viele andere funktionale Sprachen seinen Ursprung in der Forschung am INRIA in Frankreich, ist aber seit ca. 20 Jahren zunehmend auch in industriellen Projekten im Einsatz, zum Beispiel bei Facebook, Jane Street und Bloomberg.
Zum Erfolg von OCaml haben allem vor das elegante Modulsystem, die ergonomische Syntax, der schnelle Byte-Code- und der effiziente Native-Code-Compiler beigetragen. Ein Manko plagte aber die OCaml-Programmierung seit den Anfangstagen: OCaml unterstützte bis vor kurzem keine Multicore-Programmierung, zumindest nicht direkt.
Mit dem Release von OCaml 5.0.0 im Dezember 2022 ist das Problem allerdings ausgeräumt: Multicore-Programmierung sowie Nebenläufigkeit werden unterstützt. Das Multicore-OCaml-Team um KC Sivaramakrishnan hat sich viel Zeit gelassen, um wirklich alles richtig zu machen.
„Multicore OCaml“ hat eine ganze Reihe von Facetten, heute geht es speziell um die Nutzung von Betriebssystem-Threads. In späteren Posts werden wir uns auch noch die Unterstützung von Nebenläufigkeit mit „effect handlers“ anschauen sowie die effiziente parallele Programmierung mit „Reagents“.
Weiterlesen...