Strange Loop

Towards an Open, Reason(ML)able Web

Web technologies today are converging towards two paradigms - static typing and compilation to JavaScript. More than ever before, engineers want sound type systems and elegant language ergonomics while generating performant JS. ReasonML promises the best of both by pairing OCaml's robust type system with a blazing fast JavaScript compiler, BuckleScript.

Despite these benefits, Reason made a minimal splash when it arrived in 2016. Other projects like TypeScript eclipsed community attention around static typing and performance. But that's beginning to change. According to 2018's State of JS survey, Reason has seen 94% growth in developer interest over the last year, greater than any other surveyed language. This success has been the result of a distributed open source effort by community contributors. The proliferation of bindings for JavaScript libraries like React and Apollo are making Reason a production choice for teams. In addition, the creation of a native package manager, esy, and UI framework, revery, signals a major breakthrough in cross-platform development.

In this talk, we'll dive into how the Reason community embraced open source design to create a language that fulfills the promise of "write once, run anywhere." We'll dig into Reason's internals and examine the many rapid evolutions of the language. Finally, we'll discuss the challenges of developing open source in uncharted technical frontiers through the lens of two Reason projects, revery and wonka.

Parker Ziegler

Parker Ziegler


Parker is a software engineer at Formidable, a JavaScript consultancy and open source software organization. He helps to author and maintain Formidable's expansive open source repertoire, and contributes actively to projects like victory, spectacle, webpack-dashboard, and urql. Over the past year, Parker has become an active contributor in the Reason community working on reason-react, revery, and wonka. Most recently he has authored reason-urql, a fully-featured GraphQL client for Reason and OCaml.