Issue #51

Throughout my secondary school I was an avid mountain biker. And even though there are no mountains here in Estonia, fellow bikers managed to build awesome tracks with drop-offs and trampolines. Being an entrepreneurial kid I wanted to take it a bit further and create an organization that would promote mountain biking, and organize competition. So I spent my savings to setup NGO, and started looking for sponsors, securing a plot of land from the government to build a proper park. And then I chickened out because the amount of responsibility was growing too quickly (I was 16 at the time). I quit. And that unfinished project still haunts me to this day. This is the reason why I know finish almost every project I start.

This story popped up in my memory as I was reading the final article from Kristian Pederson. He wanted to learn Elm and came up with a 30-day challenge: one article and one problem a day. Some takeaways:

  • JSON in Elm is hard
  • Writing an article each day and programming a challenge is hard
  • Setting the bar low allows you to go through the challenges easier

As a beginner Elm developer eventually you read about the app structure or watch The Life of a File presentation from Evan. You then start cramming all of the code into a single file only to later find out that it doesn't always work the way you hoped (or been told). There is no yes or no answer here because it depends. Recently this question was asked on Discourse, and later Brian Hicks followed up with a blog post.

Every year people behind state of JS conduct a survey on the most popular frameworks used by JS developers, languages built on top of or compiling into JavaScript, demographics, and many other questions. The results sparked an interesting discussion on the Elm Slack channel. If you're not there, here are some of the responses. From Matias (who wrote an awesome blog post about traffic simulation game):

TypeScript is “good enough” for many, plus many are still busy with the learning curve of TS. Then there’s server side stuff, where Elm doesn’t realistically apply at all. Add the lack of Elm-based mobile dev tooling, TS is just plain flexible by comparison.
In my bubble almost everybody has heard of Elm, but few have tried it. I recall being mildly surprised when a colleague reacted with “what’s Elm?” and proceeded to mix it up with Rust for some reason
I imagine that TypeScript receiving major updates several times a year, and patches even more frequently, makes Elm’s release frequency seem suspicious without context. Even Java’s moved to bi-yearly update cycle… that seems to be the norm now. Obv. this is not a fair comparison regarding funding, team size and scope.

And Peter Damoc:

I used to evangelize Elm whenever I talked with developers, I even gave a couple of introductory talks at some local meetings. In the past 2 years I have become really disenchanted with Elm and now I feel no impulse to recommend it.

Niclas Ahden:

... Our case is at least one data point.I run a small business and started using Elm at 0.15. At 0.18 (?) I hired a developer for Elm full-time. I made quite an investment in the language and planned to keep doing so, but we’ve since transitioned to PureScript because: A) We’re in the dark and powerless... B) Unexpected development hurdles... C) Slow development... we can’t bet our livelihoods on it by waiting and hoping for change any longer. Elm is not a good fit for us but it’s a joy to use when you can and I know it’s great for others.

I'd copy the whole thread here, but it's too long. It's full of really interesting opinions, so if you're on Slack have a read.

That's it for the week. Instead of finishing with a quote, I'll finish with a Munger razor taken from the following Twitter thread:

Never allow yourself to have an opinion on a subject unless you can state the opposing argument better than the opposition can.

Have a great week!

Show Comments