Von OCaml nach JavaScript mit BuckleScript 1.0

Bloombergs Entwicklungsabteilung hat mit BuckleScript ein JavaScript-Backend für die Programmiersprache OCaml vorgestellt. Der erzeugte Code soll besonders gut lesbar sein und sich auch gegen TypeScript durchsetzen können.

Bloombergs Hongbo Zhang hat in einem Blogeintrag die Freigabe von BuckleScript 1.0 bekanntgegeben. Bei dem quelloffenen Projekt handelt es sich um ein Backend für die statisch typisierte Programmiersprache OCaml, das entsprechenden Code in JavaScript umwandelt. So erzeugte Quelltexte sollen besonders gut lesbar sein und durch Typsicherheit sowie Effizienz glänzen können.

Letztere Faktoren lassen sich laut Zhang auf OCamls Typsystem zurückführen, das starke Typinferenz bietet und so solide sein soll, dass nach einer Typprüfung keine Laufzeitfehler mehr auftreten. Andere Features des Systems wie polymorphe Varianten und generalisierte, algebraische Datentypen sind zudem dafür verantwortlich, dass BuckleScripts Foreign Function Interface (FFI) JavaScript-Bibliotheken nachmodellieren kann. Eines der Ziele beim Erstellen des FFI war es, dass keine unsicheren JavaScript-Stummel (stubs) entstehen und es besonders auf unnötige Speicherreservierung verzichtet.

Unter der Lupe

Gegenüber Projekten wie TypeScript, die sich ebenfalls durch ihr Typsystem hervortun sollen, kann BuckleScript laut Zhang unter anderem mit höherer Kompiliergeschwindigkeit und dem Fakt punkten, dass es keine ausführlichen Typannotationen benötigt. OCaml an sich vereint Eigenschaften funktionaler und imperativer Programmiersprachen mit einem objektorientierten Ansatz und lässt sich sowohl in Byte- und Maschinencode kompilieren. Die Sprache ist seit 1996 in der Entwicklung und stammt aus dem akademischen Umfeld des Institut national de recherche en informatique et en automatique (INRIA). Sie kommt unter anderem bei Facebook und Docker zum Einsatz.

Interessierte können BuckleScript auf einer interaktiven Testseite ausprobieren. Weiterführende Informationen sind im Nutzerhandbuch des Projekts zu finden. (jul)

Anonymous Read more