JSFoo 2018

On JavaScript and Security

ReasonML: Strict, powerful, and forgiving.

Submitted by Hari Gopal (@harigopal) on Friday, 7 September 2018

videocam_off

Technical level

Beginner

Section

Full Talk

Status

Confirmed & Scheduled

View proposal in schedule

Vote on this proposal

Login to vote

Total votes:  +2

Abstract

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.

Outline

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.

Links

Comments

Login with Twitter or Google to leave a comment