[001.1] The Elm Programming Language

A brief introduction to the Elm programming language and links to various useful resources.

Subscribe now

The Elm Programming Language [05.06.2016]

Elm describes itself as A delightful language for reliable webapps. Having now used it for 11 months, I feel this is an intense understatement.

More concretely, Elm is a functional language that compiles into JavaScript & HTML, so it can run natively in the browser. You can use it to build unbelievably fast and easy-to-maintain web applications.

Functional Programming Made Pleasant

Functional Programming Languages have a reputation of being hard. Elm completely flips this on its head. It has the best error messages of any programming language in existence, so good that John Carmack talks about how it sets the standard.

If you're interested in getting into something like Haskell but find it a bit intimidating, Elm is a great introduction. If you wish you had something like Haskell for the front end but without the bits that scare away beginners, you'll be happy here.

If you don't care about Haskell or FP, Elm's still great news. If you give it a shot with DailyDrip and find yourself disappointed, just contact support and we'll be glad to refund your last month's charges.

An amazing community

The community is amazingly friendly and encouraging. There's always been a serious effort to make sure it's welcoming to everyone.

But who am I and why should you care what I say?

Honestly, I'm just some guy. I ran a relatively large consultancy for 10 years, doing a lot of Ruby and Rails and JavaScript of various flavors (vanilla, Angular, React, Ember, and - and here's where I wish I were joking - Dojo.)

Before coming to Elm, I built rather full-featured JavaScript frontend applications, having led both the UX team that built a search engine for the FBI and the team that built the next-generation patent search for the USPTO. I also built a debit card platform that handled over $1B/year in transactions around 18 months after we launched it.

In addition, I've been teaching people Elixir for the past 3 years, and you can find that content on DailyDrip as well.

Most importantly, I think, I left my consultancy life because I decided that a better use of my time was to help programmers become better at their craft. I think that Functional Programming and Immutable Data Structures can get you pretty far on that path. I've decided to dedicate my time to trying to make this stuff more accessible, and so you have my personal guarantee that I'll try as hard as I can to help you have a great time in Elm. If you ever have any problems at all, you can reach out to me via our support system or just get in touch via our community slack.

Further Reading

Tomorrow we'll have our first video episode. For today, feel free to familiarize yourself with the Elm ecosystem in general, at the following links:

Today is a great day to survey those sites and familiarize yourself with the language. Tomorrow, we will delve into setup and a few basics.

This topic was initially written for Elm 0.16 and has been updated for 0.17. I'm presently in the process of updating it for 0.18 as well, having begun as of 2016-09-20. I'm hopeful that it goes quickly.