Practical Elm book: Elm 0.19 update published

I've published the Elm 0.19 update of my book, Practical Elm for a Busy Developer. This update is also based on the latest versions of elm-ui and elm-test packages.

Why Elm?

If you're not familiar with Elm, why would you choose it? There are many good reasons, whether your goal is to broaden your knowledge or to find a new language to use for production applications. Here are a few:

  • Its goal is to produce no runtime exceptions
  • It can be a relatively easy introduction to functional programming in a statically typed language
  • If you already use JavaScript, it gives you a different perspective on dealing with state and data flow
  • There is an Elm package which allows you to write your UI code in pure Elm - mostly without thinking about HTML/CSS at all; it's a very promising experiment and I wrote up an introduction to it
  • It has a time-travelling debugger, which isn't something widely available in other languages
  • It's also an experiment in different approaches to building the community and evolving the language. It's starkly different to the constant churn in the JavaScript world
  • There are at least dozens, and possibly over a hundred companies already using it in production.

What is this book?

There is still a chasm between learning the basic concepts of Elm, and using it to create complex real world applications - the kind that you'd release into production at work.

What if you could skip the frustration of figuring things out from meandering blog posts, scant tutorials, and terse package READMEs?

Practical Elm for a Busy Developer will help you get to the point where writing Elm code feels as comfortable as writing JavaScript.

It will guide you through the practical tasks of creating applications with Elm: building UIs, styling, working with JSON, interacting with JavaScript code, testing and so on. It will also show you the power user features of Elm, beyond the basic syntax.

You will start to benefit from Elm's type system and write reliable, exception-free code.

There is one crucial difference from other Elm books: Practical Elm will NOT rehash the basics that you can easily pick up from the Elm guide and other online resources. No explaining why functional programming is great, or why we want currying, or what union types are. I don't want to waste your time on stuff you already know.

What does the book cover?

The focus of the book is on practical topics:

  • A discussion of options for creating UIs and styling
  • Approaches and tools for preventing and finding bugs
  • JSON parsing (the most commonly reported problem Elm newcomers face)
  • Making server requests and working with commands
  • JS interop and ports
  • A discussion of code organisation as your application grows
  • An example of integrating a rich editor with the help of custom elements
  • A detailed introduction to elm-ui, a UI package that liberates you from HTML and CSS
  • A discussion of integrating Elm into a JS application
  • An in-depth look at language features such as pattern matching
  • Tools for being more productive when writing Elm code

Check out the sample and get the book.

Readers find it useful:

"While I usually find the Elm documentation on the web excellent, I find the stuff in your book more directly transferrable to real-world tasks. I look forward to reading about saving session IDs to localStorage or Custom Elements, for example. Thanks a lot for your book, I find it a valuable resource."

Finally, thanks a lot to everyone who has already bought the book, and to those who are going to read it: I hope you find it helpful.

Comments or questions? I'm @alexkorban on Twitter.