First Thoughts on Elm

Functional Programming
Elm
Web Development
February 17, 2024
5 min read

Exploring Elm from a PureScript developer's perspective - first impressions, key differences, and initial thoughts on the ecosystem.

I would not recommend developing in Elm for greenfield projects - the compiler has not been updated in several years - and there are very few novel libraries being created.

Abstract

Elm is widely regarded as an accessible option for beginners transitioning from JavaScript or TypeScript. In this post, I will present my initial impressions of Elm by creating a depth-first search maze generation animation - this animation can be viewed in the heading. Additionally, I will discuss my thoughts on the Elm architecture.

Functional Programming
Depth-First Search
Elm Architecture
Zero Runtime Errors

Problem Statement

Elm is widely regarded as a beginner friendly language. I think the Model-View-Update approach makes a lot of sense, especially for applying functional programming to web development. However, I believe that it can produce unnecessary cognitive overhead for simple problems. In this post, I will elaborate more on what I mean by that, and how I think it compares to PureScript.

Key Questions

  • What is the Elm architecture and why is it important?
  • Can we actually achieve zero runtime errors, in practice?
  • How does the development experience of a toy program in Elm compare to Purescript Halogen?

The Elm Architecture

Some content here