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:
Also — the compiler has even helped developers with ADHD stay focused.
You can see the benchmarks that were run back in July 2014 and more recently in August 2016. They are pretty impressive and I have not read a single account of poor performance from the companies using it in production.
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 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.