Live data from Hacker News

Our Use of Haskell and Elm

sanityinc.com

61–68 of 68 posts

Re: Our Use of Haskell and Elm

#61
post #2

What I liked about this article is that rather than being a complete sales pitch it mentions the cons about adopting a language that is not used at mass scale. The biggest one being the ability to find and hire talent. They get around this challenge by being willing to train, which is reasonable. And refreshing to not see that real challenge swept under the carpet.

I've always thought that hiring i.e. haskell developers would be easier than for more widely used languages like java and python as I've assumed that the talent-to-jobs ratio would be a lot higher. I actually have no idea though.

Re: Our Use of Haskell and Elm

#62

Earlier quoted context omitted.

> They mention plentiful motivated job applications I'd take anything from an advocacy article with a grain of salt. > how is the market from the perspective of a developer looking to focus on Haskell? Considering the only response you got points you to a subreddit, I'm guessing it isn't so great. At best, it is a niche market ( though that could be lucrative ). I wouldn't put all my eggs in one basket. I'd make sure…

> Considering the only response you got points you to a subreddit Funnily enough, a job posting was made on r/haskell since that comment was posted. It's not a bad space to watch for jobs.

And another one ...

Re: Our Use of Haskell and Elm

#63
post #49
post #37

Earlier quoted context omitted.

There are both long outstanding bugs and sorely missing features in the currently released version.

You keep claiming that without providing any links. Care to post links to bugs/features you miss?

My best reference for links would be the Slack logs from the job where I was using Elm full-time, but I'm not at that job anymore. If you're interested I would recommend trawling the issue trackers for the elm and elm-lang GitHub orgs as well as checking out the Elm subreddit and Discourse. Threads which discuss the limitations of the way the project currently operates or native JS workarounds to issues are often locked or moderated on those forums, however.

Off the top of my head, a couple of the compiler issues we worked around were case statements on a tuple causing non-linear increases in compilation time and the compiler hanging indefinitely when trying to infer certain types from our GraphQL library (which is an awesome lib; check out dillonkearns/graphqelm if you want to see Elm at its most useful). We also ran into a case rendering live-updating graphs where Elm would stack overflow after a certain number of internal messages.

As far as features, only a small portion of browser functionality is available in Elm and many of the integrations that do exist are not as complete as you might expect coming from another ecosystem. For instance the only way to do SPA navigation is to add explicit click event bindings and message handlers for every link. The port-based JS interop functionality is great for many use-cases, but we found it pretty awkward for others. A couple of these cases were blob file uploads and calling + reacting to `window.confirm`. The JS code additions to enable these features within Elm are very simple, but third-party libs can't include JS and it's unlikely to get a PR acknowledged much less accepted to anything first-party, so people end up hacking together their own fixes for lots of little issues in isolation. And the ability to do JS workarounds is apparently being curtailed even further in the upcoming release.

Some of the issues we had will be fixed with the release of 0.19 (namely, the compilation time issues and the SPA nav), but those fixes come along with a slew of breaking changes and after nearly two years since the last release. Information about the contents and development of that version has only started coming out in a meaningful way in the last couple of months. Up until that point it was basically rumor and hearsay, and we spent a lot of time wondering how we would justify to the rest of the company having made a big commitment to a seemingly abandoned language.

Overall I have fairly nuanced feelings about Elm which are difficult to communicate in this context. It's one of my favorite languages and I often feel very productive using it. I think it's an great achievement as a piece of technology and I agree with almost all of the design tradeoffs it makes. But I think if the project is meant to be used in serious contexts — a question which I should not even have to wonder about — then it has grown beyond the scope that one person can manage on their own. Evan has actively resisted enlisting and empowering the community to help realize his vision for the project and solve their own problems, and I think there is plenty of evidence that that is a worthwhile and feasible goal. Elixir is my go-to example for a project that does a great job at this and has benefited significantly from it.

Re: Our Use of Haskell and Elm

#64
post #2

What I liked about this article is that rather than being a complete sales pitch it mentions the cons about adopting a language that is not used at mass scale. The biggest one being the ability to find and hire talent. They get around this challenge by being willing to train, which is reasonable. And refreshing to not see that real challenge swept under the carpet.

Author here - thanks very much. That was what I was going for.

Re: Our Use of Haskell and Elm

#65
post #18

I’m confused by the discussion of bringing new programmers on a team up to speed with these lesser-used languages; this blog is quite explicitly from a one-man dev shop.

Author here. The blog is for my personal brand, because I often work independently, but I was employed full-time as lead architect for this venture.

Re: Our Use of Haskell and Elm

#67
post #35

Earlier quoted context omitted.

Agreed. But the main thing to check first is : are there many bugs? Struggling to find any. On the other hand in js... I suppose it's more of a perception thing. We are used in js-based projects to have a lot of bugs as a given, so plenty of updates is a good thing.

Yes, there are bugs in Elm. Anyone who's worked on a production app will have run into issues with the compiler and/or first-party libraries, all of which are maintained by one person (as well as all of the official documentation, the package repo, CLI tooling, etc, etc). I'm a big fan of Elm in general, but I couldn't recommend it to someone unequivocally.

No one claimed it's perfect and bug free. But let's compare it to any js stack with thousands of libraries in the project's `node_modules` directory, written by thousands different contributors. That's what Elm is replacing.

Re: Our Use of Haskell and Elm

#68
post #35

Earlier quoted context omitted.

Yes, there are bugs in Elm. Anyone who's worked on a production app will have run into issues with the compiler and/or first-party libraries, all of which are maintained by one person (as well as all of the official documentation, the package repo, CLI tooling, etc, etc). I'm a big fan of Elm in general, but I couldn't recommend it to someone unequivocally.

No one claimed it's perfect and bug free. But let's compare it to any js stack with thousands of libraries in the project's `node_modules` directory, written by thousands different contributors. That's what Elm is replacing.

You did claim that you were “struggling to find any” bugs in Elm. There are definitely a lot of bugs in the JS ecosystem, but one should also compare the avenues for remediating bugs in that ecosystem versus Elm (easier to fork/patch buggy code, more frequent bugfixes, more alternatives, etc).
Post reply on HN