JSFoo 2019

JSFoo 2019

On component architecture, front-end engineering and Developer Experience (DX)



Jasim A Basheer


Learning to learn ReasonML

Submitted Sep 9, 2019

This is a talk for the self-indulgent programmer; it is about a shortcut for leveling up in the craft so we can work less, have more fun, and ship better software faster.

This shortcut is statically typed functional programming, a profoundly interesting way of looking at computation. It has fewer things to learn than imperative, dynamic programming, yet it embodies insights that improves our craft like few other techniques can.

I started learning Reason without realizing any of this - I was working on a problem that revolved around data, and I was tripping over myself all the time because the data model was complex and I couldn’t keep them all in my head at the same time. I picked Reason because it felt perfect for the task at hand, and it turned out to be a great choice. But there were a few surprises: things that could’ve been learnt faster in hindsight, and hidden treasures that I had never expected when I started on this path. This talk is that story so you too can learn to learn Reason, but with more panache than I had.


This talk will cover:

  • The three things to wield a language intimately: programming in the small, programming in the large, and tooling
  • Language use-case: UI development with React and ReasonReact
  • Types: what does it really mean to say there is no null
  • Front-loading all the thinking to types, so you can program without thinking


This talk should be accessible to everyone regardless of experience level. You’ll be able to connect more with some of the ideas if you’ve already experienced the pain of building robust software; if not, they should serve as waypoints for when you encounter them.

Speaker bio

I’m an independent programmer building tools for user interface design and development at protoship. I have been programming for over a decade, working across languages and paradigms, and have helped build sophisticated back-end systems as well as rich front-end web applications. You can find me on Twitter at @jasim_ab




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

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

{{ errorMsg }}

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

Hybrid access (members only)

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