<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Sep 1, 2016 at 12:41 AM, Nicolas Wu <span dir="ltr"><<a href="mailto:nicolas.wu@gmail.com" target="_blank">nicolas.wu@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div><span style="line-height:1.5">Hi Paolo,</span></div><span class="gmail-"><div><span style="line-height:1.5"><br></span></div><div><span style="line-height:1.5">On Tue, Aug 30, 2016 at 1:53 PM Paolo Giarrusso <<a href="mailto:p.giarrusso@gmail.com" target="_blank">p.giarrusso@gmail.com</a>> wrote:</span></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
> The decision about how to manage projects and their dependencies should be<br>
> open and isn't for beginners, whether that be using stack or cabal: both<br>
> have their merits, and I don't want to push one over the other.<br>
<br>
I'm honestly confused what you're arguing. You say this decision isn't<br>
for beginners, yet you propose offering the HP. So how should a<br>
beginner install a package without first deciding whether to use<br>
cabal-install or stack? Or can a beginner meaningfully be expected to<br>
learn using both alternatives?<br></blockquote><div><br></div></span><div>Sorry for not being clear, my bad. Hopefully I can clarify and elaborate a bit more.</div><div><br></div><div>I think a beginner doesn't usually make the choice of how to use GHC/stack/cabal by themselves; they are usually being instructed by someone (or a resource) that has decided that for them.</div></div></div></blockquote><div><br></div><div>I disagree, and that's where a lot of this debate comes from. Let me give an example from another language. Suppose you know nothing about Rust, and decide you want to learn Rust because you see a blog post talking about how awesome Rust is (with no specific link to "get started here," which is frequently the case). You'd probably go to Google and search "Rust programming language," and show up on their homepage. They have two links that stand out (to me at least):</div><div><br></div><div>* A big "Download" button, which provides the compiler and build tool (AFAICT it does not include non-standard libraries, so pretty equivalent to HP Minimal)</div><div>*  A "Show me" link taking you straight to a tutorial, which covers both command line invocation for the compiler _and_ the build tool</div><div><br></div><div>This is the documentation issue I've raised a few times: a new user coming from nowhere has no way of really getting started with Haskell after downloading the platform. _Some_ kind of "go here next" is necessary if we want to improve the new Haskeller bounce rate (which is all I'm concerned with). By that metric, a solid "how to get far in Haskell with just standard libraries and the ghc executable" would work, as would a tutorial on "writing applications with HP and cabal-install."</div><div><br></div><div>However, based on my experience working with new users (both through Yesod, general Haskell work, and at my day job), I believe that Stack covers the job best, since:</div><div><br></div><div>1. The Haskell standard libraries are very bare bones, so most users will quickly want an additional library, even just for experimenting</div><div>2. I still see users complaining about dependency solving problems with cabal-install, and new users will likely be turned off very quickly by that</div><div>3. Stack+curated package sets has produced much lower friction in these regards</div><div>4. Stack already has a quick start guide (<a href="https://docs.haskellstack.org/en/stable/README/#quick-start-guide">https://docs.haskellstack.org/en/stable/README/#quick-start-guide</a>), in-depth guide (<a href="https://docs.haskellstack.org/en/stable/GUIDE/">https://docs.haskellstack.org/en/stable/GUIDE/</a>), and has usage covered by books and tutorials. I don't believe a holistic workflow is included in the HP or the Cabal websites for cabal-install workflow (though if I'm mistaken, please point it out, that would be an interesting comparison).</div><div><br></div><div>Michael</div><div><br></div><div>PS: The hypothetical example of "reads a great Rust blog post and gets interested" is _exactly_ what I'm hoping to cause to happen in the Haskell community. I want to encourage lots of people to write great content on why Haskell is an amazing language that will solve so many real world problems. My big concern with the direction of <a href="http://haskell.org">haskell.org</a> is that these new users will end up hitting a brick wall very quickly with the content on the site right now.</div></div></div></div>