It's funny, I don't believe Elm itself needs much (if any) modification- the language is in a great spot, as are the core libs. I
f you care about it winning the "language wars", it needs more PR, examples, success stories, and tutorials. Here, I'm happy to have contributed in some way(s).
I have to disagree. Elm especially needs to be updated. That’s because Elm limits your interactions with browser. You can’t use browser APIs in Elm. (We can nitpick that ports and web components are some form of an escape hatch)
Internationalization API is a great example. We should leverage the platform but we can’t.
From my brief experience of trying to move onto 0.19, it broke the few project I had running on elm and the path forward wasn't very straightforward. JS interop and dealing with json are both still tedious and awful. I really want to want to use elm, but I'm not sure I can justify putting in the time.
JS interop via webcomponents is "the way" (vs ports). Re JSON decoding, agreed, and we cover in the episode: it's a solved/solvable problem that isn't popularized via a nice package...yet. But I think you've zero'd in on the pragmatic pain points; webcomponents is the revelation that was missing in the communication on the migration from 18 to 19, unfortunately.
I use web components as a workaround for elm being anti-component. It's infuriating. It makes me write JS instead of elm and obviously that causes lots of problems. The elm testing framework makes testing web components impossible too.
Elm has tons of low hanging fruit still. Evan just chooses to ignore them and look down his nose at any use case that doesn't work in elm currently.
f you care about it winning the "language wars", it needs more PR, examples, success stories, and tutorials. Here, I'm happy to have contributed in some way(s).