On Tuesday, September 13, 2016 at 8:58:53 PM UTC+2, Richard Eisenberg wrote:
I’ve watched the recent back-and-forth about stack with quite a bit of interest (as many of us have). The discussion inspired me to take another look at stack. Here are the results of that foray.

First, a disclosure: While I have appreciated the emergence of a new build tool for Haskell, I have never much liked stack. One of my chief goals in taking another look is to understand better why I do not like it.

 

At this point, I am reminded why I dislike stack:

**It’s optimized for a different workflow than I use.**

And I think this fact (repeated by others’ experiences) is why a segment of our community has not celebrated stack as much as other segments have. We all have different workflows.

From what I understand about it, stack is great for a project-based workflow. In this workflow, you are working on a Haskell project. You are happy to specify settings in .cabal and stack.yaml files. And you really want your build to work in the future and on other machines.

In my experience, stack is not great with a compiler-based workflow. In this workflow, you aren’t quite as organized perhaps and do not have all your settings written. You also want the ability just to compile a file without changing any configurations. You want to be able to start GHCi with a nice set of libraries with which to experiment.


I think this is insightful, but this is also (in part) about different kind of projects: applications versus libraries. Not accidentally, if you maintain a Hackage library, stack docs recommend you setup CI with both stack and cabal. (Though I'll still use stack for local development for a library).

https://docs.haskellstack.org/en/latest/travis_ci/