Evan's Presentation at Swedish Meetup

The inconvenience - although present - is not in the bugs alone, and it piles up.

Speaking only for myself, the three problems I face the most with Elm are not really bugs:

  1. You can’t use Browser.application to build a web application with frameworks like Electron or Tauri
  2. You can’t pattern match on negative numbers (and apparently my use case isn’t real)
  3. Sending bytes through ports is cumbersome and inefficient

None of which is a showstopper on its own.

There is the general state of the tooling. From time to time I’ll have issues with the Elm language server crashing on Neovim or VSCode; I remember someone else complaining about this as well. Nothing major, just annoying.

Then, the library ecosystem - or lack thereof. Whenever I return to update one of my Elm projects I have the latent fear that some of the dependencies won’t exist anymore, either because it was deleted or the author simply changed Github username. Then I have to hope that someone else realized it and was able to fix it or fish it out of their cache.
It means that picking up Elm code has an added cost of a few hours of troubleshooting - still worth it if you ask me.

Finding a useful library is quite an issue too. Most Elm libraries are “stable” like the language, which for me means I won’t have many resources to support my work if I choose to use them.
If you search for “charts” on the Elm package registry the first 5 results are all variations of the same project from the same author, and neither has been updated in the last 3 years. Which am I meant to use?
I can - and most of the time do - just implement what I need myself.

Lastly, like many people mentioned before, there is the creeping fear that I’m working with abandonware. It’s not rational and doesn’t matter in practice - my code works after some troubleshooting - but it’s there. I’m going to be very blunt: explaining the lack of maintenance with “batches of work” sounds like an excuse, and I generally don’t believe it.
Which means nothing since the code works and I’m no one.

Nothing major once, twice, thrice… Working with Elm is delightful only once I get past all of that. I don’t do web frontend so it wouldn’t be my main tool anyway, but I’m switching more and more to stuff like native UI development or Flutter (which is a huge mess, but in practice delivers results faster and cheaper). I would love not to, but in the end I have a job to do and constantly hearing that if I’m having trouble with Elm it means it’s not for me does not help.

5 Likes