News for hackers. Stuff that matters.
Re:Dhall: A Gateway Drug to Haskell by armchairhacker on Tuesday June 07, 2022 @05:17PM (#31660180)
Haskell does have advanced tools though. Stack / cabal, haddock, htest can be comparable to Rust’s tooling. Haskell’s LSP is making rapid progress and there are many formatters and linters.

Tooling still has a way to go, but I don’t think that’s all. Haskell’s abstraction is just too much when you need to design something which is ultimately kind of straitforward, and most apps are (design app, game, utility app, web server, etc.)

I do think Haskell is more than a research language, it does have some use in practical, mainstream programming. In particular, Haskell is great at anything which is “input to output”, like compilers or document converters. Or in a program which is ultimately complex, and not just for optimization but “math” complexity, like math programs or simulators. In those programs the implicit laziness actually comes in handy.

But Haskell for a real-time video game or editor, and you’re just wrapping everything in an IO monad or some restricted stateful equivalent, and executing most of the instructions in sequence anyways.

Re:Dhall: A Gateway Drug to Haskell by tinco on Tuesday June 07, 2022 @05:26PM (#31660291)
Why would you wrap things in an IO monad for a real time video game? There's a whole lot of code you can do purely functionally in video games that can make it very nice.

I've done a couple small projects in Blueprint which is a purely functional programming language embedded in UnrealEngine 4 and I enjoyed it a lot. Blueprint notably does not expose any type classes, at least not when I tried it a couple years ago, but it felt very expressive for building complex game logic.

Re:Dhall: A Gateway Drug to Haskell by Arelius on Tuesday June 07, 2022 @06:44PM (#31660918)
FYI, Blueprint is very much not purely functional and has exposed type classes since it changed from Kismet IIRC.
Re:Dhall: A Gateway Drug to Haskell by tinco on Tuesday June 07, 2022 @07:22PM (#31661259)
Maybe I'm not remembering it correctly. Basically you had colored wires representing values flowing through functions, and then you had white wires that represented ordered execution, much like the IO monad. Is it possible to have side effects from nodes without the white wire?
Re:Dhall: A Gateway Drug to Haskell by kahnclusions on Wednesday June 08, 2022 @04:04AM (#31664582)
> Stack / cabal, haddock, htest can be comparable to Rust’s tooling.

Disagree from me. I spent a year writing Haskell professionally, and from my own personal experience Haskell's tooling was overly complicated and difficult to use.

Maybe my impression is totally wrong or outdated, and it's surely not applicable to the whole community, so I'm sorry if this is a little out of touch now, but I sometimes got the sense that Haskell's community just doesn't care about the developer experience. They hold to this false dichotomy that if you make tools easy to use, then you can't have advanced features. Or simply, Cabal works just fine the way it is, why do we need Stack? Why would you need more than one GHC installation on a machine? Holy wars on the mailing lists re: Stack, Cabal, Haskell Platform. And if someone tells me to "just use Nix" one more time I will cry...

Rust feels like a breath of fresh air. The community seriously cares about their developer experience both for newbies and experienced professionals, and it really feels like a lot of work has gone into making the tools and documentation accessible and useful.

Re:Dhall: A Gateway Drug to Haskell by Zababa on Wednesday June 08, 2022 @03:27AM (#31664366)
> Stack / cabal, haddock, htest can be comparable to Rust’s tooling.

I don't think they are. Having used both, Rust's tooling is more accessible to beginners, which makes a big difference. I find it even easier to use than npm, while I find Haskell's tooling harder (on roughly the same level as OCaml with dune, or Maven).

> Haskell’s LSP is making rapid progress and there are many formatters and linters.

Haskell's LSP is good, however it's not as good as rust-analyzer, and has a habit of chewing through a lot of RAM.