Introduction to Elm
Elm is a purely functional language that transpiles to JavaScript.
History
Elm is an extension of the senior thesis of Evan Czaplicki while at Harvard. It was first proposed in 2012, but is quickly gaining a large userbase.
Paradigm Shift
Most programmers are used to what is called imperative programming, which outlines the steps the computer must take to solve a problem, like a recipe.
Conversely, Elm uses declarative programming, which defines what the program must accomplish, usually using functions. This is handy, since each function can be tested and known to be bug free, even when composed in larger programs. This is especially true of pure functions, which maintain no state, and depend solely on their input.
Web Programming
Elm was written for the web, and is used for client-side applications. It is a popular alternative to JS, since it is purely functional, which allows for very performant code and very secure checking for safety, which is an area that JS tends to fall flat in.