4 ms·
After reading a large number of the responses here, I feel like I've noticed a pattern - two types of comments: 1) I've used the language and agree with the co
by bwanab 7y ago
After reading a large number of the responses here, I feel like I've noticed a pattern - two types of comments:
1) I've used the language and agree with the conclusions of the post even if I don't necessarily agree with every point.
2) I haven't used the language, but I believe open source projects must be maintained by their maintainers as they see fit.
I actually agree with both of these positions, but, having used Elm in the past for a hobby project with an eye towards using it in production, I probably won't ever use it. I loved the original promise. Evan's ideas about the Elm Architecture are worth reading and learning for anyone. But, as many others have pointed out, if one has to maintain a project over the years, the breaking changes in the language would have caused great bouts of teeth gnashing.
I don't love Java, but over the years I've come to expect that with each new major version of the language, that a small amount of work needs to be done to guarantee my production code will keep working and I can integrate new features as I have time. With Elm, every release forced me to spent hours figuring out how to make my old code work again.
- bachmeier 7y agoI'm not much into web development professionally, but it's something I learn and use a bit as both a hobby and for personal projects. I looked at Elm a while back (maybe two years ago, but I'm not sure exactly). I decided against it after I ran into some issues related to language instability and old documentation. I dug a little further and it appeared to be how the Elm project was run, so I stayed away. On your second point > I haven't used the language, but I believe open source projects must be maintained by their maintainers as they see fit. I totally agree. But I also think it's good when others point out the weaknesses in the project publicly, to prevent people from wasting time or having to deal with certain personalities. As long as it's true and done in a professional manner, an important part of open source is harsh public criticism.
- projektfu 7y agoFor a hobbyist like me, Elm bounced around far too quickly that every time I returned to my side project it was incompatible. Worse, a library I would be using wouldn’t have made the upgrade so... that seemed OK in the first year or so but after a while you need some stability. The author is 100% right about how Elm’s package manager and repository are the only ones available and they can be really lacking sometimes.
- AzzieElbab 7y agoOut of curiosity, what keeps you from pinning elm version in your projects unless you are a library developer?
- sbarre 7y agoNot the OP, but I can think of a few reasons: * security patches * browser compatibility changes * build tooling compatibility (unless you pin that too, but that never works for long)
- bartread 7y ago> But, as many others have pointed out, if one has to maintain a project over the years, the breaking changes in the language would have caused great bouts of teeth gnashing. This isn't just a problem for Elm but for front-end development in general. Not so much because of JavaScript the language, but because of the libraries and, to a much lesser extent, the browser APIs. In the library and framework space many take semver as license to completely rework their APIs with every major version bump because they "got it wrong" last time around. It's pretty infuriating because in most cases whatever benefits the new API offers are generally fairly marginal and not worth the cost of all the reworking that needs to be done. I'd always rather an API was stable than perfect because, for one thing, you're never going to achieve that perfection you dream of. There will always be some new use case or better conceptualisation that you didn't think of and, really, all you're doing much of the time is thrashing by pursuing this. To me it often seems like immature software engineering. I haven't written any Java for a very long time, but I know that C# code I wrote back in 2004 targetting .NET 1.1 would still run substantially unmodified today on the latest .NET runtimes[1] - in fact I'm pretty sure some of it is. [1] Possibly not .NET Core, but certainly the classic runtime.
- yaktubi 7y agoI haven't written any Java for a very long time, but I know that C# code I wrote back in 2004 targetting .NET 1.1 would still run substantially unmodified today on the latest .NET runtimes[1] - in fact I'm pretty sure some of it is.
- mdtusz 7y agoA fantastic example of this _not_ happening in js libraries though is Plotly.js. It's still on a 1.x release and has maintained backwards compatibility (for the most part) with the original API for _years_. Full disclosure, I used to work there (specifically, on plotly.js).
- noir_lord 7y agoAnother is KnockoutJS which went from 2 to 3 with minor changes and virtually nothing broke on 2.x -> 2.x+1 in all the time I used. I'm kinda sad it (functionally) died out because they clearly valued and worked hard on that.
- hitekker 7y agoThere's also the third type of comment: the outright, raging denials from Elm enthusiasts. If anything turns me off a programming language, it's the righteous fury a community rains down upon its naysayers.
- bambataa 7y agoI think there’s also a third category, which is “I’m interested in Elm / have dabbled in it but all this puts me off ever using it for anything serious”. If the comments in this thread aren’t ringing red alarm bells for the Elm leadership I don’t know what will, frankly.
- gowld 7y agoElm is an experimental research language. It's fun to learn and make little toy projects in and that's fine No one is getting rich off of Elm having professional users. It showcases an interesting architecture and has lessons for Haskell-style languages in how to make compiler error messages that aren't hideous
- girishso 7y agoYes, Elm is eventually turn out to be inspiration for other languages and go nowhere itself. As a professional Elm developer makes me sad.