I started playing with Elm around January 1, 2016. This was largely brought about by this keynote by Jessica Kerr at 2015’s ElixirConf. It took me a few more months to actually dig in, finally being reminded of my resolution when I saw some video by Richard Feldman (I think?) and decided to take the plunge.
When I build apps in Elm the resulting architecture is extremely clean with minimal effort.
Just a day later it was clear to me that this language was going to change my life. I had the same feeling I had when I wrote my first Rails app or played with Erlang, and later Elixir, for the first time. The compiler error messages are already amazing and extremely helpful (and still getting better!). There is a great new debugger coming in the next release (which Evan showed off in his ElmConf talk). When I build apps in Elm the resulting architecture is extremely clean with minimal effort. Elm apps are also unbelievably fast by default. The Hindley-Milner (Haskell-style) type system clarifies your ability to think about your application — and its hard to express how important this is if you haven’t worked with this type system before. In addition, runtime errors are extremely unlikely; in Elm, runtime errors are considered bugs in the compiler! In the last 9 months I’ve been using Elm daily, and I’ve run into only 2 of these runtime errors.
How Elm Has Changed My Life
This year, I’ve been dedicating basically every spare moment to playing with Elm. I went so far as to start a business that revolves around me trying to make it easy for people to learn Elm and other important languages, in perpetuity.
In March, I started coordinating Remote Meetups for Elm. The goal of this is to make it easier for people who don’t have access to a strong local programming community to increase their involvement in languages like Elm. These are free meetups with world-class content. If you’re interested in this sort of thing, the 5th Elm Remote Meetup is happening on October 24th at 6PM on the West Coast. The past ones have all been great, and here are videos from each of them:
- Elm Remote Meetup #1
- Elm Remote Meetup #2
- Elm Remote Meetup #3
- Elm Remote Meetup #4 — Note: this meetup just happened this week, so we are still working on making the video nice like the others
Free meetups with world-class content.
Pairing with Amazing People
My engagement with the Elm community has also given me the opportunity to pair program with some amazing people. We recorded 2 of those sessions so far:
- I paired with Luke Westby to refactor a project for my ElixirConf 2016 talk, which allowed real-time collaboration in a music tracker editor.
- Luke and I paired again to create nice server-side validations to go along with client side validations via elm-mdl.
Also, Corey Haines and I are going to pair on something fun on Tuesday, September 27th at 7:30PM CDT (Should we should livestream it? Let me know in the comments!)
More People Are Taking Notice
Elm was making my life better, so I was thrilled when my buddy Phil pointed me to this tweet:
Yay! I was very excited to see that other people that I know were starting to pay attention to Elm. That means more friends to play with! Gile’s post made me unbelievably happy because it signaled that other people are joining the fun and bringing more amazing people into the Elm community!
Finally, I ran an impromptu Elm workshop at ElixirConf 2016. There was no formal announcement, and I was expecting maybe 15 people to attend. When I walked in, there were ~100 people in the room. We had to scramble to prepare for that crowd and get an A/V setup in place. People are definitely paying attention to Elm :)
Come live in the future with me
Elm has a lot of great lessons to teach us as a programming community. From its type system, to its great compile time messaging there is a lot of technical learning to grok. Perhaps most important is its amazing and helpful community. The Elm slack is the most interesting chat that I’m a member of, and I’m constantly impressed by how willing its members are to help others in their journey.
TL;DR : Elm is the future, and I want more people to live in it. Come join us in the future!
Want to chat? Just leave a comment below! Also, there are more interesting links below…I just can’t stop.
I’m Josh Adams, a co-founder of DailyDrip, which provides daily continuous learning content in a variety of technical topics, including Elm, Elixir, and Ember. My focus is to help developers build software better. By subscribing for a personal or a team plan, you can help us devote the time it takes to produce all the nice Remote Meetups and free tutorials and pairing sessions that I love making so much. I’d love it if you’d help me dedicate my time to this by signing up!
My focus is to help developers build software better.
Additional Links From Me
- People seemed to like my Introduction to using Material Design in Elm.
- I used Material Design Lite in Elm to create a multi-room chat system with a Phoenix Channels backend.
- I built a collaborative music tool using Elm and Phoenix Channels and spoke on it at ElixirConf 2016.
ElmConf 2016 Videos
We also were very proud to be the video sponsors for the first ever ElmConf. Here are those videos:
If you liked this post, please click that heart button to help more people live in the future! :)