4 ms·
I wanted to love Haskell, but I've come to realise that a language is more than just expressivity and clean abstractions. UX quality of tools, library ecosystem
by als0 4y ago
I wanted to love Haskell, but I've come to realise that a language is more than just expressivity and clean abstractions. UX quality of tools, library ecosystem and general support networks are equally important. I know I could spend some spare time to improve these things, but I can't shake the feeling that since nothing seems to have significantly improved in the last twenty years, Haskell might have just missed the boat. FWIW I'm not a particular fan of Go or Rust, but I really enjoy the overall development experience of using those languages.
- _query 4y agoIn recent years the Haskell ecosystem has drastically improved. With Haskell Language Server (HLS) there's now great autocompletion and inline error reporting for e.g. VSCode and other editors. We've recently got dot-notation, so you can type `myRecord.myField` instead of `myField myRecord`, which makes Haskell code feel more familiar when switching from other languages. With IHP we now even have a Haskell version of Rails/Laravel. It's really a superpower to have Haskell's type system combined with the rapid development approach of Rails :) Check it out here: https://ihp.digitallyinduced.com/ https://ihp.digitallyinduced.com/ (I'm founder of IHP) Serokell also has a great blog section on people using Haskell in the industry, e.g. recently there was an interview with the CTO of Mercury. https://serokell.io/blog/haskell-in-production https://serokell.io/blog/haskell-in-production
- protomikron 4y agoHaving autocompletion and and a convenient syntax to access record fields is standard and expected by most developers. I think if Haskell wants to convince developers to jump ship (and they don't, according to the infamous marketing slogan) there must be a bigger benefit, I don't think better record Syntax cuts it.
- lupire 4y ago> In recent years the Haskell ecosystem has drastically improved. And has been doing so for 20 years. But in the meantime, the other language ecosystems improve also, and new programmer expectations pop up.
- mhitza 4y agoI think it depends on platforms as well. On my Linux system GHCUP has been a godsend. Makes it easy to upgrade GHC + related development tools that are known to work well together with the Haskell Language Server. And with coc.vim (without any additional tweaking), the inline type errors within my editor simplified the development process a lot (no longer using ghcid since). The last major hurdle I have with the Haskell ecosystem, is the lack of officially supported (and minimally divergent) alternative Preludes.
- quickthrower2 4y agoI think the Haskell ecosystem is good enough, and there is a lot you can do from native UI to web server development. My issue is just getting my head around the complex types you can end up with. It is hard to opt out when libraries use them. And I gave it a pretty decent shot but it seems like a big hill to climb. Doable but requires a lot of dedication or a full time job in the stack with peers who can help onboard you.
- massysett 4y agoSome things about the tooling have improved over the years. Stack and Stackage did not exist twenty years ago, and I find them indispensable. Libraries like text and optparse-applicative are stable. GHC has advanced to the point where new releases aren’t exciting to me anymore. The base libraries have settled down after things like the applicative-monad fix. Other things have not changed much. Editor tooling consists of things that appear for awhile and then fall into unmaintenance. I tried using Emacs but its Haskell mode has improved little in years so now I just use Vim. People say the new Cabal-install is better but the UI and docs are littered with indicators that it’s still beta, and some old functionality has been dropped, so I’m afraid to use it. Meanwhile Stack now appears to be in maintenance mode. People rave about Nix but all it makes me do is scratch my head and wonder how it could possibly do anything that’s worth wading through heaps of conflicting docs and blog posts. Overall though Haskell does what I need it to do. It kind of reminds me of Unix shells: strange in many ways that haven’t been fixed for decades, but still the best at what they do. Rust gets hype now but it doesn’t seem to be a better high-level language. It’s a better systems-programming language. Haskell will chug along quietly but with some things backsliding while others improve, I don’t expect much net forward progress.
- agumonkey 4y agoIt's fine if haskell is not mainstream, as long as people experiment radical ideas with it.
- jstimpfle 4y agoIt's not only the ecosystem. It's a very opinionated language at the core. Problems that are traditionally solved with procedural approaches don't lend themselves to be solved in Haskell, in general.
- galangalalgol 4y agoI do find multiparadigm languages best for actual work. Opinionated languages are really good for teaching a paradigm though. I didn't really learn oo from c++, it wasn't until college forced me to use java. I haven't really learned functional that well yet. I use the patterns in several languages, but I don't think I'll really get it until I sit down and do something non trivial with haskell. Nothing teaches you to use a given tool faster than it being your only tool. But then I go back and get my full tool bucket for the big projects.
- epgui 4y agoThat’s a weird use of the word “opinionated”. Is a hammer opinionated just because it won’t screw nails?
- benreesman 4y agoThis argument was make-or-break even a few years ago. With LSP (really VSCode funding), all the name-brand languages are monster in tooling. That doesn’t change the other pragmatic challenges around Haskell, of which there are several.
- adamddev1 4y agoTsoding seems to agree and stopped using Haskell for that reason as well. https://www.youtube.com/watch?v=SPwnfSmyAGI https://www.youtube.com/watch?v=SPwnfSmyAGI