JSFoo 2019

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

Learning to learn ReasonML

Submitted by Jasim A Basheer (@jasim) via Zainab Bawa (@zainabbawa) on Sep 9, 2019

Section: Full talk (40 mins) Technical level: Intermediate Status: Confirmed & scheduled

Abstract

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.

Outline

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

Requirements

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

Links

Slides

https://jasim.github.io/jsfoo-talk-learning-to-learn-reason/index.html

Comments

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

{{ gettext('You need to be a participant to comment.') }}

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

{{ errorMsg }}