Some thoughts on documentation

So, I was going to drop a comment last night, but decided to sleep on it and I'm glad I did. While I agree with Michael on the current state of documentation and the value of documenting packages through an established culture of version control, I'm not sure it's really an appropriate alternative to a wiki.

The point that is missing from this post is that wikis justify themselves in how they let the reader explore and discover new tools and ideas without having to commit to any of those tools or ideas. Take the ArchWiki for example. It starts you off by walking your through a basic setup of the distro, one that is pretty user-friendly. But at the end, it drops a couple important leads on the given newbie. It links you to General recommendations on what to do next with your system as far as configurations go and a List of applications that gets you started with some common open source solutions for satisfying your various computing needs. Using this, I could explore new technologies in one central place and figure out what I was going to spend my time learning to use. If I wanted to explore the various window managers out there, I didn't need to go to their respective websites first, I could just peruse their pages in the ArchWiki and estimate which one seemed to fit my needs best before diving into the ACTUAL documentation. Sure, the wiki never provides comprehensive depth on the topics it covers, but it's an invaluable resource for exploring the breath of options you have for approaching a given problem. Actual documentation is not concerned with this, it focuses on depth by explaining a specific solution. How do I figure out if that solution is the best fit for me? I can't really do that with Hackage or a bunch of links to library READMEs. Because at the end of the day, that README documentation is still organized via Hackage, I can't view an aggregate of that documentation. I still need to explore Haskell's options through a case-by-case brute-force traversal of the packages that SEEM to be what I'm looking for. And I'd rather not do that. I'd rather have a proper wiki. I'd love to have what the HaskellWiki is trying to provide, but right now it's simply not providing that. Right now, I only use the HaskellWiki for the following pages:

  • Typeclassopedia
  • All About Monads
  • Monad

Other than that, I wouldn't notice if someone was to delete the entire thing tomorrow. As far as I can tell, it's content is largely out of sync with the libraries that actually exist, it covers topics sparsely if at all, there's no standard formatting to most pages, and it lies. It tells me certain libraries are options when in fact they are not, have never been, and aren't even maintained anymore. The wiki is intellectually harmful as of right now. I think Michael makes a good point that editing wikis is a pretty inaccessible activity that most people don't feel comfortable partaking in because they feel that they have to be an authority on the topic first. But
Through the wiki, I should be able to figure out what FRP is, why I should care about it, an example of the basic problem that it solves, and then a tour of all the FRP library options so I can get a feeling of which FRP library seems to be approaching the problem in the right way.

/r/haskell Thread Link - yesodweb.com