I read through the post a couple times and I want to share my sincere opinion with you:
I think you would be happier and better served by developing with PureScript.
This should not be interpreted as, “if you don’t like Elm you can just leave,” but it’s very hard to convey earnestness through text, so I want to be clear that it does make me sad when someone doesn’t find the same connection with Elm that I have. The number of tradeoffs that you have to make when developing a programming language is astronomical, and it’s just not possible to appeal to everyone. After reading your post I genuinely think that the preferences you expressed about language features, framework and package philosophy, and project governance overlap a lot with PureScript and not as much with Elm.
PureScript has had a more permissive and reactive style of incorporating community feedback. It has a lot of the features you are looking for, and its attitude toward FFI in particular and to choice of approach in general seems to be much more suited to you. It’s also general purpose, so in the multitude of scenarios where the Elm architecture is not a convenient programming model you would have the ability to take a more straightforward approach for your problem.
I’m sorry you aren’t comfortable with the way that discussion about these issues has been online. We are people, and we are also very busy working on Elm and on regular work, and the asymmetrical nature of these conversations can make them contentious by default. Furthermore, conversations here can seem highly controlled because we believe there needs to be a space for people who are content with the philosophical stuff and just want to get help with their confusing bugs or show off their package ideas. A lot of space for general self expression on Elm topics already exists on Reddit, various Slack channels, Twitter, Medium, ad inf. It’s been mentioned before and will continue to be mentioned that we have only
Show and Tell, and
Request Feedback here because that’s all it is for.
Moving on, most of the things about Elm that you listed as pain points are either
- things we know about, and have been told about, and can only repeat that we know about and are going to improve them so many times a day on the different forums
- points of disagreement about language design, where the tradeoffs that have been chosen for Elm were chosen knowingly and after a great deal of research and feedback collection and serious thought and discussion.
Where the first point is concerned, we can only continue to ask for patience. There’s a lot of fundamental, low-level, non-user-facing stuff that has changed in this upcoming version in particular that makes it much more complicated to address issues than to just pull items off the issue tracker. There is also the method of batching issues on which Elm development is based.
I appreciate the framing of your post around wanting to make sure your readers have information that they need to decide if Elm is the right choice for them. I’ll confess that writing this response makes me feel apprehensive. On the one hand, there is a group of folks that really wants us to know that we don’t do enough to delineate Elm’s tradeoffs and help people make informed decisions about what to use for their projects. On the other, I frequently and actively recommend PureScript to people who want what those languages offer, but articulate that by expressing ways that they feel stuck while using Elm. In those cases I’m often met with an equal share of blowback because it seems unreasonable that I would even suggest something other than Elm, or that it’s unfair to suggest that someone “just go rewrite their WHOLE app in a DIFFERENT language.” It’s also hard to do all of that posting and also do the development and support work needed to get the next release ready, and fulfill every other responsibility in life (most of which, I will say for myself, are infinitely more important to me than open source software).
Note: there’s a good chance I won’t be replying to responses on this, as tomorrow is Saturday and I’ll be spending time with my family, doing house chores, working on Ellie, etc.