Aviva Directory » Computers & Internet » Programming » Elm

Created in 2012, Elm is a domain-specific, statically typed, functional programming language made for creating safe front-end web applications.

The designer, Evan Czaplicki, wrote a thesis about functional reactive programming, and created the language to implement the ideas in his thesis. Recognizing potential in his language, which was then very basic, he joined Prezi, a presentation software company, to work on Elm in 2013, moving to NoRedInk in 2016, when he founded the Elm Software Foundation.

Based on Haskell, Elm has the capability of compiling down to minimal JavaScript for easy deployment of applications on the web. While developing front-end JavaScript, sometimes errors will appear in the code and go unnoticed. Later, the accumulation of these errors can break the code at runtime. The use of Elm makes it impossible to introduce errors into the code, as they will be caught at the time of compilation.

Czaplicki has since changed the architecture of the language to make it easier to use and to further emphasize concurrency. The set of core tools for the language has continued to expand, and now includes a REPL, a package manager, time-traveling debugger, and installers for macOS and Windows platforms. Elm also has an advanced online editor that allows for saved work and the inclusion of community libraries.

Elm is a good language for web applications that interact with users. These may include games, single-page applications, and graphics. Elms may also be embedded into JavaScript, then imported into an HTML file.

Among its attributes are a fast virtual document object model (DOM), friendly compile-time errors, zero runtime exceptions, constraints as guarantees, piped syntax, easy refactoring, increased productivity, a helpful type system, and a time-traveling debugger.

Elm uses an abstraction called ports to communicate with JavaScript. It allows values to flow in and out of Elm programs, making it possible communication between Elm and JavaScript possible. It also includes a library called ELM/HTML that a programmer can use to write HTML and CSS within Elm, using a virtual DOM approach to make the updates efficient.

Third-party libraries (packages) are available from the Elm Public Library.

Topics related to the Elm programming language are the focus of resources listed in this category. Also appropriate here are any third-party compilers, libraries, editors, or other tools designed for use with the language, as well as tutorials, user groups, forums, or other sites associated with Elm.



Recommended Resources

Search for Elm on Google, Bing, or Yahoo!