UPDATE: adding a sentence for clarity after feedback from someone: I don’t think the issue is kernel code. I think the issue is that the Web platform support is small currently, and there’s a large barrier for community contribution to it, and this causes hurt feelings on all sides, and those hurt feelings are legitimate on both sides.
I have found myself unexpectedly emotional at last week’s infamous article. I was angry at how unfair it was, upset by how some of my colleagues who didn’t have proper context parroted it’s points, but
I was also hurt by it.
I wanted to honestly express the complex emotions I’m feeling. It frequently feels like things like this go unheard or at least unacknowledged, and so hurt people, lacking any real outlet internal to the community, lash out in a public forum. I’m not trying to do that.
I made the same mistake that the author of the other article made: /I tried to contribute to the core libraries./
I’ve tried to be as good a citizen as I could in that pursuits, learning along the way and trying not to become jaded and angry.
Elm Explorations were supposed to help cover the browser APIs that we needed by enlisting domain experts who were willing to commit their time and expertise to designing great APIs that could make those APIs work. I thought, great, this is a place I can contribute.
And I thought it was a good match for the criteria laid out for this contribution: it was an important and often-requested browser api; it was a built-in set of APIs, not a third-party library; and I was a domain expert with a passion for it.
After over a year spent on it, after several years of working on it before the announcement, I was frustrated, but also I felt bad about myself. I felt stupid, I felt unvalued, I felt like these APIs which I cared deeply about were not considered important by the powers that be.
I also watched friends who had been able to make Elm-explorations rejoice as unbelievably cool abstractions were built on top of it by others, and I was very jealous.
A large number of Elm people, including core team members, helped me enormously in this pursuit, technically, procedurally, and emotionally. I deeply value the friendships I’ve made in this community.
At the end of the day, Evan is a strong gate-keeper in this community. I think I frustrated him with my communication style, which is often long letters like this. He has a million concerns on his mind and mine wasn’t his top priority, which is totally understandable.
The result was that it felt like I was constantly hitting my head on something hard and it slowly made me lose my passion for the project.
I know that discussions like this make Evan and the core team lose some of the passion they have for elm, despite all they’ve sacrificed for Elm. But the closed development process has also caused me to lose my passion for it, despite the time and energy and sense of self I’ve put into it.
Reading last week’s article brought those feelings back to the surface.
Elm is a slowly developed, closed-development language and framework. It’s tightly controlled, pure, and those are wonderful design goals that make it the thing we love.
That leads to some very real human distress in some people who are just trying to contribute. There are times when my frustration rose to the level of resentment for those decisions. I believe we can grow Elm incrementally, involve the community more, and get more of the underlying platform functionality accessible directly without abandoning what makes it great.
I was upset by a feeling that we were making technical arguments in response to someone who was feeling hurt, excluded and censored. And it often felt as if we were denying the validity of those feelings in defense of Elm.
I don’t think I’ve been a bad actor in this community, but I’ve sometimes felt the same way the author did. I think it’s a natural outgrowth of Elm’s development process, I think the feelings are valid, and I think we need to understand that those choices sometimes hurt people.
I think we should consider trying to achieve three goals as a community:
1.) Elm is unusually closed to extension and contribution, which offers numerous benefits, but this also causes great distress to some people who are trying in good faith to contribute. We should acknowledge those stressors and lament them, even if we don’t change them.
2.) It’s our responsibility to find ways to make them feel included, valued, and like they can make decent contributions that match their interests and expertise.
3.) We need to make people feel heard, here in the community.
If we can’t find ways to make all our passionate community members feel valued, included, and heard, the same “Why I’m Leaving Elm” chaos is going to occur over and over again.
Anyway, I’m not leaving Elm, but I am stepping away for a bit. I want to work on some cool backend stuff to try to make online conferences better, so I probably won’t be writing frontend for a while.
If you’re like me, and sometimes hurt and frustrated in this community, you’re not alone. It’s great that you want to contribute and it’s not you and it’s not them, it’s the system by which Elm is developed that makes you feel that way, even though the reason it’s so great it because it’s developed that way.