Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

[deleted]


I barely know the basics of Haskell and this is very easy to understand.

This is supposed to show you which tools you should use, how to organize and publish your project. This tutorials does this quite well.

If you want to learn Haskell read http://learnyouahaskell.com or something similar, it explains the language and how to build a simple program using GHC, if you do anything more advanced you should start reading the documentation of your compiler anyway.


I deleted my comment because I couldn't get the tone quite right.

The gist of it was that this article reflects a certain mentality... along the lines of starting to learn how to drive by reading about the physics of internal combustion engines. That's hyperbole and the article clearly doesn't go that far, but it seems to be a bit neither here nor there; it's not a tutorial like 'learnyouahaskell' nor is it simply a reference for useful haskell tools.


It's an overview of the process of writing a program, covering program and file system structure, build tools, libraries, testing, and revision control. It's not "simply a reference for useful haskell tools" because it has a normative aspect: it says, "This is the way things should be done." It's the document to read when you understand the language well enough to write something larger than a single file solving a Project Euler problem, and want to know what the best practices are in writing a library or executable that could be—for example—published on Hackage or used in production. And while it's not perfect in its presentation, it actually does a pretty good job of what it sets out to do; it was certainly helpful to me when I was in that situation.


The tutorial is valuable, I think, it's just that the title implies it's something else. The value in the tutorial is that it lays out the standard way to organize a Haskell project that you plan on sharing with other people in the Haskell community. It's not, as the title implies, a tutorial on writing in Haskell.


It's more like learning how to take care of your car based on common habits of owners of well-maintained cars.

The guide doesn't even sort of mention how to think/create using Haskell. It also doesn't even sort of dive into real Haskell magic like how Hindley-Milner type systems work. It's tangential to both.


I agree. I don't know Haskell but this guide sure turned me off of it. They seem to try and do their best at showing the most complicated and unappealing aspects of the language. Even the basic HelloWorld program demonstrated is weird and long and I get the feeling that Haskell is convoluted and not worth it.


You're missing the point. This is not meant to be an introductory tutorial explaining the language; it's a guide to best-practice Haskell development, giving the reader an overview of the basic toolchain and how to use it. Please see my response to davidw's comment for a more complete articulation of this point.


long? There's 1 import statement, 1 optional type declaration, and 2 lines of code. It could be just the import and 1 line of code, but that would violate 2 Haskell best practices: include explicit type declarations for your public interface, and separate pure and impure functionality.

Honestly, if the intent were to be pedagogical in this specific regard (which is isn't), I would say that the example is unnecessarily terse (which is why you describe it as "weird").


I wouldn't judge Haskell by this guide. It just made me smile a bit as it seemed to put the cart before the horse, as well as the guy who made the cart, and the people who made the road.


I'm a bit baffled by this response. If you go to the front page of haskell.org there is a 'Learn Haskell' section with six links. This is not one of them. Nowhere in the article does it claim to be a beginner's guide to Haskell. It doesn't make the mistake you attribute to it; this is entirely a projection on your and others' part.


Why do you think I'd make that projection from an article called "How to write a Haskell program"? The title has two meanings, and you are seeing "how a Haskell program ought to be written", whereas other people are seeing it as a tutorial that explains... well, "how to write a Haskell program". And there are definitely some steps in there, it's not merely a set of guidelines. So I think the second interpretation is not entirely unexpected, since the link goes directly to it with no explanation for those of us who are not familiar with Haskell, rather than, as you say, to the front page of Haskell's site.

That's where I'm getting the "neither here nor there" from. I have no axe to grind with Haskell, and indeed counseled the other poster to not be put off by what he (and I) mistakenly thought was a poorly done tutorial.


Titles invariably fail to capture the entire content of the article they introduce; if they succeeded, there would be no need to write the article. Perhaps this particular title is problematic because it is apparently confusing outside its original context of presentation, as part of a corpus of Haskell guides on the haskell.org wiki, linked to (for example) by other articles dealing with prerequisites to this one, such as learning the language. However, in its original context it makes perfect sense and the meaning is clear.

If I had submitted the article here I would probably have changed the title in an attempt to impart some of that context. The purpose of the article, though, is consistent, and the execution is reasonably thorough. My confusion about your reaction stems not from the assumption that the title perfectly encapsulates the intentions of the article—it doesn't—but from the fact that you apparently made no attempt to understand the original context of presentation, instead going on about it putting the cart before the horse and generally making all sorts of (incorrect) presumptions about the goals of the authors and its place in the community documentation generally.

I agree it's not merely a set of guidelines; I said it had a normative aspect, not that that captured the entirety of its purpose or content. It's a guide: the concept could be summarised as "Here's the way we write Haskell programs, we think these processes and tools are broadly speaking a good idea, and if you follow them you won't go too far wrong."

In other words, it's "How to write a maintainable Haskell program", not "How to write your first Haskell program", or "How to write a Haskell program simple enough not to need a build system or a test suite or revision control or be made publicly available to anyone". Yes, one can write a Haskell program in a single file and then compile it with `ghc --make myprogram`, but that's not a good idea if one's program is thousands of lines of code, depends on multiple libraries, exposes an API, and so on. It's not "neither here nor there"; it's definitely there, which is not where you expected it to be based on the title, but what do you expect from a totally decontextualised link on a news site?


If you are annoyed that I didn't "get it" after a cursory glance at the site, you have a couple of choices:

* Decide that I'm stupid or a troll and ignore what I have to say.

* Think about the presentation and framing of said content. For instance, what impact would it have to lead with a box "if you're looking for Haskell tutorials, go here, this is a guide to the best practices for creating and maintaining Haskell projects" ?

I don't really care one way or another.

I do, however, think that the defensive mentality (and the presumption of malice or stupidity) on display is not generally a good one for communities who wish to attract people to them.


Just FYI, I updated the site with a redirect at the start for those specifically expecting language tutorials. Thanks for your feedback, it was very helpful.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: