Excellent Free Tutorials to Learn Elm

Elm is a functional language that compiles to JavaScript. It helps you make websites and web apps. It has a strong emphasis on simplicity and quality tooling.

Elm is purely functional, and is developed with emphasis on usability, performance, and robustness. It advertises “no runtime exceptions in practice,” made possible by the Elm compiler’s static type checking.

Elm is open source, licensed under a Revised BSD license.


1. Learn Elm Architecture in Plain JavaScript by dwyl and contributors

This step-by-step tutorial is a gentle introduction to the Elm Architecture, for people who write JavaScript and want a functional, elegant and fast way of organizing their JavaScript code without having the learning curve of a completely new (functional) programming language.

Read the tutorial


2. Getting Started with the Elm Programming Language by Vuk Djapic

Getting Started with the Elm Programming Language goes through the pros and cons of Elm and how some of its exotic concepts perfectly suit the needs of a front-end web developer.

Read the tutorial


3. Make Your Web Front-end Reliable with Elm by Stas Davydov

This article provides an overview of how Elm can change the way we think of web front-end development and an introduction to the basics of this functional programming language. In this tutorial, we’ll develop a simple shopping cart-like application using Elm.

Read the tutorial


4. An Introduction to Elm

This guide will:

  • Teach you the fundamentals of programming in Elm.
  • Show you how to make interactive apps with The Elm Architecture.
  • Emphasize principles and patterns that generalize to programming in any language.

Read the guide


5. The Hitchhiker’s Guide to Elm by Azer Koçulu

This guide offers a concise summary of the language, and walks you through building a few apps.

Read the guide


All tutorials in this series:

Free Programming Tutorials
Java General-purpose, concurrent, class-based, object-oriented, high-level language
C General-purpose, procedural, portable, high-level language
Python General-purpose, structured, powerful language
C++ General-purpose, portable, free-form, multi-paradigm language
C# Combines the power and flexibility of C++ with the simplicity of Visual Basic
JavaScript Interpreted, prototype-based, scripting language
PHP PHP has been at the helm of the web for many years
Ruby General purpose, scripting, structured, flexible, fully object-oriented language
Assembly As close to writing machine code without writing in pure hexadecimal
Swift Powerful and intuitive general-purpose programming language
Groovy Powerful, optionally typed and dynamic language
Go Compiled, statically typed programming language
Pascal Imperative and procedural language designed in the late 1960s
Perl High-level, general-purpose, interpreted, scripting, dynamic language
R De facto standard among statisticians and data analysts
COBOL Common Business-Oriented Language
Scala Modern, object-functional, multi-paradigm, Java-based language
Fortran The first high-level language, using the first compiler
Scratch Visual programming language designed for 8-16 year-old children
Lua Designed as an embeddable scripting language
Logo Dialect of Lisp that features interactivity, modularity, extensibility
Rust Ideal for systems, embedded, and other performance critical code
Lisp Unique features – excellent to study programming constructs
Ada ALGOL-like programming language, extended from Pascal and others
Haskell Standardized, general-purpose, polymorphically, statically typed language
Scheme General-purpose, functional, language descended from Lisp and Algol
Prolog General purpose, declarative, logic programming language
Forth Imperative stack-based programming language
Clojure Dialect of the Lisp programming language
Julia High-level, high-performance language for technical computing
SQL Access and manipulate data held in a relational database management system
Erlang General-purpose, concurrent, declarative, functional language
VimL Powerful scripting language of the Vim editor
OCaml General-purpose, powerful, high-level language
Awk Versatile language designed for pattern scanning and processing
Racket Platform for programming language design and implementation
BASIC Family of general-purpose, high-level programming languages
CoffeeScript A very succinct programming language that transcompiles into JavaScript
LaTeX Professional document preparation system and document markup language
Elixir Relatively new functional language that runs on the Erlang virtual machine
Dart Client-optimized programming language for fast apps
ABAP Advanced Business Application Programming
F# General purpose, strongly typed, multi-paradigm language. Part of ML
Chapel Parallel-programming language in development at Cray Inc.
Dylan Multi-paradigm language, supports functional & object-oriented programming
D General-purpose systems programming language with a C-like syntax
Solidity Object-oriented, high-level language for implementing smart contracts
XML Set of rules for defining semantic tags that describe the structure and meaning
Vala Object-oriented language with a self-hosting compiler that generates C code
ECMAScript Best known as the language embedded in web browsers
Kotlin Statically typed, general-purpose programming language with type inference
TypeScript Strict syntactical superset of JavaScript, adding optional static typing
Markdown Plain text formatting syntax designed to be easy-to-read and easy-to-write
Pike Interpreted, general-purpose, high-level, cross-platform, dynamic language
HTML HyperText Markup Language
Factor Dynamic stack-based language
Objective-C General purpose language which is a superset of C
Standard ML One of the two main dialects of the ML language
Alice Educational language with an integrated development environment
Agda Dependently typed functional language based on intuitionistic type theory
Icon High-level, general-purpose language
PureScript Small strongly, statically typed language with expressive types
Tcl Dynamic language based on concepts of Lisp, C, and Unix shells
Eiffel Object-oriented language
ClojureScript Compiler for Clojure that targets JavaScript
QML Hierarchical declarative language for user interface layout with a syntax to JSON
VHDL Very High Speed Integrated Circuit Hardware Description Language
OpenCL Open Computing Language
Elm Functional language that compiles to JavaScript

Share this article