JSFoo 2018

JSFoo 2018

On JavaScript and Security

Hari Gopal


ReasonML: Strict, powerful, and forgiving.

Submitted Sep 7, 2018

As a developer, I’ve worked for over 9 years with dynamically typed languages, and for the past year, I’ve been learning and working with a new language called ReasonML - a statically typed functional “language” which, in reality, is a brand new syntax for OCaml. And it compiles to Javascript! I’ve been using ReasonML to build a password manager for teams, and I’d like to share a few insights that I’ve gained during the process.

The gist of the talk is that while getting started with ReasonML is really simple, the true value of adopting a language like ReasonML does not lie in its obvious features. There are patterns and complex capabilities that are made possible by the strong type system that can elevate our ability, as developers, to accurately describe our intent when writing programs. It also gives tools and techiques to deal with our unfortunate tendency to make mistakes.


During the talk, I will cover the following topics:

  1. A short introduction to ReasonML & how to get started.
  2. How it’s similar to Javascript, and how basic types work with great type inference.
  3. How it differs from Javascript, and what records & variants are.
  4. How to use pattern matching on variants.
  5. How we can combine these features to make illegal states unrepresentable.
  6. Other patterns that static typing and functional programming makes possible.

Speaker bio

I’m the Engineering Lead at SV.CO, and I’ve been a professional programmer since 2009. I’ve worked on a variety of products using a range of programming languages, including PHP, Python, Java, Ruby, and Javascript. I’m currently building an open-source password management tool called Turaku.


{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}

Hosted by

JSFoo is a forum for discussing UI engineering; fullstack development; web applications engineering, performance, security and design; accessibility; and latest developments in #JavaScript. Follow JSFoo on Twitter more