News for hackers. Stuff that matters.
Re:An opinionated guide to Haskell by danharaj on Saturday February 10, 2018 @02:50PM (#16349186)
Haskell + Nix is the best environment I've ever used for any development. My go-to project manager is this script in the reflex-platform, which is a bit poorly named (it will change eventually), because it's actually an environment for doing general cross-platform full stack Haskell development: https://github.com/reflex-frp/reflex-platform/blob/develop/p...

The learning curve is definitely, shamelessly high. We've been slowly polishing it to make it easy for complete beginners to fully up-to-speed on a project in minutes, but it's a lot of work that happens mostly on weekends.

Watch this space!

Re:An opinionated guide to Haskell by KirinDave on Saturday February 10, 2018 @04:25PM (#16349690)
I couldn't disagree more. Nix doesn't make development easier. In fact, it substantially complicates development to ease open source delivery and client dependency management. These are things that are of questionable value to the Haskell or product dev ecosystem, as people far more often prefer fully static (admittedly large) binaries anyways.

And, Nix doesn't work well with existing tools like intero, it requires troubleshooting to get working with ghc. You can pick either stack or cabal and both sort of support Nix, but in every case some tooling will not quite work right.

Further, if you're not doing 100% open development, Nix's delivery story is also complicated. It's further challenged for projects using private docker or GitHub repos, where in many cases there is simply no support in Nix.

No one does Haskell newbies any favors by suggesting they learn a whole new package expression language and toolchain (that they will be interacting with deeply and constantly) in addition to a language that is full of fundamentally novel concepts and a vast breadth of new libraries, techniques, and a distributed documentation style.

Please. Stop recommending Nix to new Haskell users until at least the new porcelain commands are shipped.

Re:An opinionated guide to Haskell by danharaj on Saturday February 10, 2018 @07:06PM (#16350375)
I didn't, at all, recommend nix to anybody. What are you responding to?
Re:An opinionated guide to Haskell by garmaine on Saturday February 10, 2018 @08:10PM (#16350582)
> Haskell + Nix is the best environment I've ever used for any development

That sounds like a recommendation.

Re:An opinionated guide to Haskell by danharaj on Saturday February 10, 2018 @09:54PM (#16350926)
That's because it's spefically optimized for my needs: writing Reflex apps. It's what I do for a living.

Everyone has different priorities. I know some users who started using Haskell at all with reflex-platform despite the difficulty because it scratched exactly their itch.

Re:An opinionated guide to Haskell by KirinDave on Saturday February 10, 2018 @11:03PM (#16351114)
Well, as complex as Nix+whatever-you-have-cobbled-together-to-build-and-editor-instrument-ghcjs is, it pales in comparison to the sheer ferocious confusion granted to the ecosystem by tools like webpack, so I can see where it might seem like an improvement in some regards.

Webpack: it's like lens error messages for your builds, at runtime!

Re:An opinionated guide to Haskell by ianai on Saturday February 10, 2018 @09:31PM (#16350846)
for developing haskell
Re:An opinionated guide to Haskell by KirinDave on Saturday February 10, 2018 @09:54PM (#16350922)
It sure read like that to me, but given the international nature of this forum, I'll take you at your word. Nor do I disagree with you about your assessment of your experience.

But your experience and your requirements differ from mine, and in a professional capacity I could never recommend Nix for an organization.

Re:An opinionated guide to Haskell by Buttons840 on Saturday February 10, 2018 @03:31PM (#16349413)
Your go-to project manager is a script? Even if you did not intend it that way that is my impression of the reflex platform. Many have heard about the divide in Haskell package management between cabal-install and stack, but there is also reflex, which seems to rely on running arbitrary bash scripts and using Nix, thus leading to a third method of package management in Haskell. It's a big mess.
Re:An opinionated guide to Haskell by danharaj on Saturday February 10, 2018 @04:09PM (#16349611)
Ok so, calling it a script was wrong. It's a nix function which takes arguments specifying various configurations about the project I'm working on, such as any dependency overrides. It then provides a nix derivation which can define shells and compile to whatever platforms I need. No bash scripting is necessary to use this machinery except a convenience script to install Nix if you don't have it.

All of the functionality is just leveraging nix's powerful declarative model which easily defines the build artifacts of a project along with the environments necessary to hack on or compile them.

This sits on top of cabal and stack, actually. Within a project shell provided by Nix, I'll use cabal to get a repl, for example. But since Nix is handling all the dependency management, cabal doesn't have to do any work in that regard.

Re:An opinionated guide to Haskell by platz on Saturday February 10, 2018 @04:18PM (#16349662)
I find it odd you are recommending this setup to someone who isn't even comfortable with the Haskell language yet, who now must learn this tooling as well.
Re:An opinionated guide to Haskell by danharaj on Saturday February 10, 2018 @07:07PM (#16350377)
I didn't recommend it though! I just described what I use, said it's got a super high learning curve, and we're working on it.
Re:An opinionated guide to Haskell by Buttons840 on Saturday February 10, 2018 @10:38PM (#16351045)
I just wish the reflex maintainers would push new changes to Hackage once in awhile. From GitHub I gather that reflex 0.5 was finished over a year ago but that version is not available on Hackage.