Elm Software Foundation
A delightful functional language for reliable webapps.
Elm is a functional language that compiles to JavaScript. It competes with projects like React as a tool for creating websites and web apps. Elm has a very strong emphasis on simplicity, ease-of-use, and quality tooling.
The overall goal is to combine:
- A devotion to communication, design, and user experience.
- Strong theoretical foundations.
Examples of these goals in practice include the following.
No Runtime Exceptions
Unlike hand-written JavaScript, Elm code does not produce runtime exceptions in practice. Instead, Elm uses type inference to detect problems during compilation and give friendly hints. This way problems never make it to your users. NoRedInk has 90k+ lines of Elm, and after more than a year in production, it still has not produced a single runtime exception.
Great Performance
Elm has its own virtual DOM implementation, designed for simplicity and speed. All values are immutable in Elm, and the benchmarks show that this helps us generate particularly fast JavaScript code.
Enforced Semantic Versioning
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!