This article puts to words what I’ve been feeling about Haskell. Haskell may succeed, but only in spite it’s over-promising community, poor tooling, and obfuscated documentation.
I say this all as a lover of Haskell.
I feel the same way, but there’s hope. I totally agree with your comment: last month I got frustrated with Hakyll and seriously thought about switching to Jekyll or something else. But the haskell workflow has gradually been getting better over the years, with cabal sandboxes, stack and stackage. Yes, there is a feeling that the ecosystem is fractured, but some of that is because new ideas are being fleshed out now and are still pretty raw.
I see a post like this every couple of months, and it is a good idea to remember that Haskell doesn’t have amazing tooling yet. But it has been getting a lot better…pretty amazing for a project that’s mostly worked on by unpaid volunteers.
One final note: it is good to talk about Haskell’s tooling issues as a caveat for newcomers. But posts like this can also ruffle feathers. Some people work pretty hard on improving these things, working for free. This feels like shitting on their work.
I sort of posted in knee-jerk frustration.
You’re absolutely right. There’s people working their ass off to make tooling better, and it is getting better (stack being a notable example). Being too negative will discourage them, and without them we’re stuck where we are.
Equally destructive though, are the naysayers that say that nothing is wrong. It (a) makes people feel stupid and (b) halts development on new tooling that is much needed.
[Comment removed by author]
I kind of doubt “most” Haskellers are using nix. Some are, to be sure. It may even be that most nix users are Haskellers… but most Haskellers certainly do not use nix.
Actually stack in my opinion is what will help out haskell professionally more. As much as I love nix, and I do, it is a hard sell to integrate into things like OBS.
Since 2013 I’ve worked professionally on three projects that use Haskell in production; none have ever involved Nix. None of the (excellent) professional Haskell developers I’ve worked with have ever used Nix heavily either, AFAIK.
Nothing against Nix, I think it’s great. But it seems that most ‘serious’ Haskell developers are probably not using Nix either. Maybe more should?
Personally, sandboxes and now stack have gotten me plenty far.
Anyone who has used IntelliJ or Eclipse for Java will tell you the amazing refactoring powers of those IDEs.
I think by and large there’s a more amazing refactoring ability that what IDEs give you baked directly into Haskell the language. Not to say that IDEs couldn’t/shouldn’t exist! I just don’t feel as impressed by them anymore. I hope Leksah grows into something but I’m surely not motivated sufficiently to help.
“rename-thing” across your source code is quite useful. It saves “search, replace, compile, mumble, replace in the places you missed, compile, go”. I also am fond of the call graph analysis tool. “who-calls-this” is a pretty useful predicate to have baked in to your editing environment. Other tools might be brought up here as well, that have no place in the language, but have big use in your editing system.
These, of course, might be available in the haskell emacs mode, but I haven’t stumbled on them or searched for them.
This rings true for me, as well. My cabal experience improved somewhat once I discovered sandboxes, though I still ran into issues where code I wrote in February wouldn’t build last week because the version of base was out of date. The one time I tried stackage, I couldn’t get Hakyll, gitit, and pandoc to build. Fortunately, I was able to build using sandboxes. I also haven’t been able to get emacs set up with Haskell quite right, so whenever I write it, it’s usually in vim.
That being said, the author’s note about bridging the gap between developers and academics is similar to my experience. The last time I gave a talk on a paper at our company’s biweekly paper club, I ended up writing the demo code in Haskell because it made more sense (although, to be fair, the paper used OCaml so it wasn’t a huge stretch).
Really proud of the Rust shout-outs in there. Tons of more work to do, but randomly seeing someone say nice things about your work is a nice way to spend a morning.
I tried to follow the wreq tutorial and looks that simply installing wreq download and install all the world in my system ( a little bit like maven things in java world)
What I like most about this article is how well it’s written. Plenty of criticism, but entirely without a negative tone. This is constructive criticism at its best.