Elm Software Foundation

A delightful functional language for reliable webapps.

Technologies
javascript, haskell, elm
Topics
compilers, programming languages, functional programming, web applications, user interface
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!

2017 Program

Successful Projects

Contributor
Palmer Paul
Mentor
Evan Czaplicki
Organization
Elm Software Foundation
Elm for iOS
Elm is a programming language for creating browser-based web apps. Elm for iOS (a.k.a. Elm Mobile) aims to bring the benefits of the Elm programming...