Using Elm, even a little bit, has given me a perspective on what a different language can do in the browser.
If you subscribe to Gary Benhardt’s Capability/Suitability theory of programming history [1], JavaScript is the highly capable technology that can be used for any sort of architecture you can imagine, and Elm is a turn towards suitability that says, “some of those architectures are unsound or have a very low floor for quality.”
You might want to abstract over DOM APIs for different reasons, but at their semantic core they are fine.
If you subscribe to Gary Benhardt’s Capability/Suitability theory of programming history [1], JavaScript is the highly capable technology that can be used for any sort of architecture you can imagine, and Elm is a turn towards suitability that says, “some of those architectures are unsound or have a very low floor for quality.”
You might want to abstract over DOM APIs for different reasons, but at their semantic core they are fine.
[1] https://m.youtube.com/watch?v=NftT6HWFgq0