Introduction to Elm

Elm is a functional language, with support for functional graphical layout and reactive programming. Elm is transpiled into JavaScript so it can run in all modern browsers. As we will see in this book, Elm is definitely a language that enables us to effectively tackle many of the challenges we face when we are building applications with interactivity and rich user interfaces.

I hope that you will have fun learning Elm and enjoy translating your ideas into delightful interactive programs!

update: for Elm 0.17 (May 12, 2016)

There are many breaking changes and some changes in philosophy (see farewell to FRP) with this release. I have not updated this document for the new release.
At this time I am not sure about the future of Elm, since I was drawn to it as an attempt to make the idea of functional reactive programming more accessible to programers. Now that it has become clear that making FRP accessible is not a goal for Elm anymore, it is not clear how to justify the investment of time and effort in Elm going forward.
Additionally, after working through some of the breaking changes in this release it seems that the language is still very immature. There is a lot code that needs rewriting and ideas that need rethinking after this release.
So, if you are a developer who wants to write (reactive) programs and build user interfaces, I suggest two paths:

  • Embracing JavaScript, since it has become the defacto standard for web programming.
  • Using TypeScript or languages like CoffeeScript or ClojureScript (which give your access to newer JavaScript features, optional static typing etc.).

This along with libraries like Angular or React (Redux) and RxJS seems to be the best way to build reactive web applications today. I am spending my time now with analyzing these tool sets. Once I get some time to review the changes to Elm, I will update this document.

I have written a similar [introduction to TypeScript]( and once I have covered the basics will also discuss reactive programming with TypeScript.


This book is dedicated to all those who are looking for a deeper understanding into programming and want to find a better way.

Request for feedback:

Please drop me a note, if you have any comments/suggestions. I would like to improve the material and your feedback is very valuable. You can leave your feedback in the discussion section. Thank you.

results matching ""

    No results matching ""