10 Reasons Elm is going Mainstream in 2016
Elm has impressed me and delighted me so much of late that I will almost exclusively be writing Elm in 2016. I believe that Elm has all the ingredients necessary to become a mainstream language and predict that it will do so in 2016. In some ways this is a leap of faith, as the choice of a new and up-and-coming programming language so often is. But true faith is never completely blind and the following factors give me reason to believe it is much more like a small step.
1. Going Mainstream is a public goal of Elm creator Evan Czaplicki
There may appear to be little rhyme nor reason to why a particular programming language sets the world alight, reaches a tipping point or achieves mass adoption, however it surely helps if you make that an overt goal. An audience member seemed a little taken aback with the closing keynote at Curry On Conference 2015 (video) where Evan shared this goal explicitly, expressing it in the title of his talk, “Let’s be mainstream! User-focused design in Elm”. The listener challenged Evan in the Q&A at the end (48:56) stating that language adoption was completely random and could not be coerced or controlled. Evan neatly avoided confronting the veracity of that statement head on by saying that even if it is random, it surely helps to do the things that would help if it weren’t.
2. Evan is making a ‘product’ people love
Paul Graham in his 2009 essay ‘Startups in 13 Sentences’ articulates what I have frequently heard as a method of creating a successful startup. Instead of making a product or service that a lot of people like, rather concentrate on making something that a small group of people loves.
Better to make a few users love you than a lot ambivalent.
I can’t think of a language or framework in recent history that has caught the imagination or engenders praise quite like Elm. Personally, the only reference point I have is Ruby with Rails, and that was ten years ago. Browsing the @elmlang Twitter timeline will leave you in no doubt of people’s appreciation for Elm and will go some way in convincing you with the strength of feeling and emotion. Here are a few examples:
Writing my 1st app in @elmlang. Once I fix the compile errors, IT JUST WORKS. Never experienced anything like this in 30+ years of coding.— jf cloutier (@jfcloutier) January 30, 2016
more than 25 opened tabs about @elmlang, I think I’m in love— Roberto Soares (@bt1) March 2, 2016
3. Who loves it
With Elm, it is small, learnable, and changes are thoughtfully and carefully introduced (sometimes even remaining non-committal so the best decision is made at the right time; like lean manufacturing applied to language design with just-in-time production by taking decisions at the last responsible moment).
5. Elm Embraces our Functional Future
Only the most die-hard object-oriented programmer would have encapsulated themselves to the extent that they were ignorant of the steady and rising beat of the functional drum. Elm is a gateway drug to picking up the functional programming bug. Elm eschews the snobbery often associated with the product of the academy and gives the layman reason to school himself. It makes functional programming accessible, and by bringing it to the front-end, gives people a good reason to learn it (and use it).
6. Elm is Friendly
Elm is an incredibly friendly language thanks to its helpful compiler. Where others leave you feeling stupid for operator error, Elm most graciously lets you know where you went wrong and how you might fix it. Gone are the minutes (hours?) wasted on one character typos or bouts of head-scratching or hair-pulling because of forgetting to update that obscure call to a function you just renamed.
7. Elm is Gathering Momentum
It’s clear to see that Elm is already gathering momentum, whether that’s in the number of new libraries introduced, the number of posts on the mailing list, the tweet volume or the number of companies using it in production. Elm has started on a trajectory.
8. Elm is not Fronted by a Major Corporation
This can always go either way. Elm is not fronted by a major corporation but the support model looks like it will be a conglomeration of small companies. This is more similar to technologies like Rails, PostgreSQL and Ember.js than it is React or Angular. That’s not to say it might not get picked up in the future or that corporate support is a bad thing, but it has support.
When I drafted this Evan Czaplicki was being supported by Prezi to work on Elm full-time, and now NoRedInk have taken over that responsibility while Prezi are helping set up the Elm Software Foundation. The fact that NoRedInk is a startup, supporting a language creator full-time, is almost unprecedented at such an early company stage, but demonstrates just how much they consider Elm key to their success. (As a counterpoint, Heroku hired Matz, creator of Ruby, in 2011, after Salesforce acquired them for $212m).
9. Elm has Great Documentation and Learning Materials
Elm’s package site, which also includes the core language documentation, is a joy to use. Searching, browsing and reading the documentation is done incredibly well and it is easy to get what you are looking for. In addition, the website offers great introductory material, including the excellent Elm Architecture Tutorial and is well supplemented with the highly recommended Pragmatic Studio screencasts. Where there are gaps, I am sure they will be filled as more people kick the tires.
10. Elm has Tremendous Potential
There’s far too much to squeeze into a small paragraph but being a functional programming language with immutability baked in opens up many possibilities for better (time-travelling) debugging, visualisation of your code / program, and potentially interactive programming à la Inventing on Principle by Bret Victor. Proof of concept has been done with Elm native and I am sure that soon we will be able to have Elm on the back-end with Node.js or likely native with another compiler or runtime.
11. Evan Czaplicki Joined NoRedInk
This happened the day that I drafted this post (a while ago, I know), so it’s worth including it as a major positive direction for Elm. This is the uniting of the brains and the braun of Elm. Richard Feldman at NoRedInk is Elm’s most ardent proponent, humorously regaling us with the self-evident benefits that he, and subsequently NoRedInk, have experienced when migrating to Elm. They are likely Elm’s largest production user. In combination with Evan, who is actively developing Elm full time this means there will be a much tighter feedback loop for future experimentation and language implementation and improvements.
You should try Elm out, bearing in mind that Elm is still relatively young and small so it will undoubtedly experience some growing pains but I believe it is already worth making the jump. I have.