Early Impression of Elm

Posted on February 28, 2020 by Richard Goulter

Recently I wrote some Elm-lang code as part of a casual side-project.

The Elm program was simple, though non-trivial.
The program was a UI for making notes from emails. The Elm program presented a list of emails for the user to select, and let the user CRUD a note for the selected email.

Some changesets: - https://github.com/rgoulter/simple-email-data-tool/pull/1/files Initially adding the Elm program with Travis-CI config, RSpec spec with Capybara, and the Elm program. - https://github.com/rgoulter/simple-email-data-tool/pull/5 Changing from a <select/> to a <table> for one of the widgets. (I was surprised by how easy this change was). - https://github.com/rgoulter/simple-email-data-tool/pull/6/files Adding keybindings to the input. - https://github.com/rgoulter/simple-email-data-tool/pull/8/files Adding date filtering, using a third-party pure-Elm library.

Where I’m Coming From

What I Didn’t Like About Elm

What I Found Interesting About Elm

What I Liked About Elm

My Development Experience

Would I Use It?

After having used it for a side-project, without the burden of needing to ship something reliable by some deadline:

Yes, I’m quite happy with the experience.

Obivously I’m interested in liking it, though; and this wasn’t a high-risk project, so:
What situations/cases would I not recommend using it for?
- Projects which benefit from a rapid prototyping/delivery (e.g. code maintainability/quality can be traded off) by an experienced team which lacks any experience Elm. - Projects which already show evidence of some kind of a “lava flow” antipattern, or projects where using Elm is likely to lead (or contribute) to an anti-pattern like this. - Projects where Elm is chosen without consideration for ‘Choose Boring Technology’. - If I were given responsibility to maintain some front-end application code which was poorly written in JavaScript using ReactJS: - While it’s possible to interop Elm and JavaScript, I think the complexity of the same maintainers mixing the code would outweigh benefits of using Elm. - etc.

I think websites would be better maintained if they were developed with the discipline that Elm does a lot to help.

Newer post Older post