16 Jan 2020
4 min read
The concepts around the Elm architecture at its core are starting to be more widely used. For those of you familiar with Redux, it is very similar to that. The Redux project has looked at Elm for inspiration. It is a simple architecture and the documentation does the best job of simplifying it:
The logic of every Elm program will break up into three cleanly separated parts:
Model — the state of your application
Update — a way to update your state
View — a way to view your state as HTML
This architecture is being used by many companies like Prezi, NoRedInk, and CarFax. It allows for complex web applications to scale well and to be refactored easily. The best part is that this is already built-in to the platform. There is no need to setup a bunch of different libraries, you simply install the Elm CLI and start developing.
Elm is a statically-typed language with type inference. The compiler is the biggest reason why companies working with Elm gets no run-time exceptions. It acts as a very friendly assistant for you while developing. Rather than going through a use case, let me just show you this:
I see a big opportunity here with WebAssembly. Having Elm compile to WebAssembly as a target could help significantly improve the performance of an application.
Quoting directly from this blog post:
Also — the compiler has even helped developers with ADHD stay focused.
To quote directly from their homepage:
Elm can detect all API changes automatically thanks to its type system. We use that information to force everything in our package catalog to follow [semantic versioning](https://github.com/elm-lang/elm-package# version-rules) precisely. No more surprises in PATCH releases!
There are currently about 554 packages. This was calculated by going to package.elm-lang.org and running the following in the console:
It is growing and I really like the guidelines for creating and publishing a package.
A Swedish startup that decided to use Elm from the beginning for their project and they describe the benefits and output of that decision. NoRedInk has been using Elm in production for over a year now (if my math is right). They talked about the experience of running it in production for 6 months back in February. Futurice used it and wrote up their success around using Elm and how it helped their code base.
Ground Floor, Verse Building, 18 Brunswick Place, London, N1 6DZ
108 E 16th Street, New York, NY 10003
Join over 111,000 others and get access to exclusive content, job opportunities and more!