I want to see the list of applications written in haskell that are useful and not used for programming a computer.<p>This list has seemed shorter than one might expect in the past given the interest among programmers in the haskell language (this includes my own interest fwiw). A list of applications written in haskell that are used for something that isn't programming a is a useful datapoint that tells us something about the strengths and weaknesses of the language - we can argue about the subtleties of the meaning of that data point but it is useful data.<p>I've got<p><pre><code> pandoc,
xmonad (window manager),
git annexe
</code></pre>
to get things started. Let's get them down.
For people that have gotten into Haskell, but struggle to get over the intermediate level, I would warmly recommend checking out <a href="https://www.fpcomplete.com/haskell-syllabus" rel="nofollow">https://www.fpcomplete.com/haskell-syllabus</a>. As for good tips, I've come to like the ReaderT "design pattern"[0].<p>For newcomers, I would recommend the Haskell Book[1], which covers everything quite extensively.<p>[0] <a href="https://www.fpcomplete.com/blog/2017/06/readert-design-pattern" rel="nofollow">https://www.fpcomplete.com/blog/2017/06/readert-design-patte...</a><p>[1] <a href="http://haskellbook.com" rel="nofollow">http://haskellbook.com</a>
> Writing Haskell is almost trivial in practice. You just start with the magic fifty line {-# LANGUAGE ... #-} incantation to fast-forward to 2017, [...]<p>This was my biggest frustration with Haskell the last time I used it, I find it sad that it doesn’t seem like they’re trying to fix it.
As a semi-recent initiate to Haskell, it's really helpful to see such an accessible compilation of important Haskell developments. Although it's easy to find Haskell material to read, it's not as obvious to highlight what's important.<p>Cheers!
Haskell is definately one to watch for Blockchain. IOHK have released a currency with their codebase largely in Haskell. Both IOHK and Digital Asset have smart contract / modelling languages based on Haskell.
I wonder, what happened with Luna[1] language project? Seems dead, no updates, no emails on the mailing list I subscribed.<p>[1] <a href="https://luna-lang.org" rel="nofollow">https://luna-lang.org</a>
I'm particularly excited about the prospect of linear types; not so much for helping with space/GC efficiency (which is good of course) but for modeling state transitions and ensuring that, for instance, some intermediate state must get consumed once and only once. It's one of the bugs I often run into when writing Haskell code.
He writes: "Most large Haskell projects (GHC, Stack, Agda, Cabal, Idris, etc) no longer use Haddock for documentation."<p>So, what do they use? How do I get (I mean, build in stack) my useful documentation? (Actually I appreciate any tips how to build documentation for off-line use.)
Talking about recent stuff, it looks like Cardano rely on Haskell for their PoS protocol implementation : <a href="https://github.com/input-output-hk/cardano-sl" rel="nofollow">https://github.com/input-output-hk/cardano-sl</a>
A quick few:<p>The backend, <a href="https://github.com/kirel/detexify-hs-backend" rel="nofollow">https://github.com/kirel/detexify-hs-backend</a>, for Detexify, <a href="http://detexify.kirelabs.org/classify.html" rel="nofollow">http://detexify.kirelabs.org/classify.html</a>.<p>Parts of BazQux Reader, a commercial feedreader, <a href="https://bazqux.com" rel="nofollow">https://bazqux.com</a><p>Nikki and the Robots, a platformer, <a href="https://github.com/nikki-and-the-robots/nikki" rel="nofollow">https://github.com/nikki-and-the-robots/nikki</a>
Facebook Duckling <a href="https://github.com/facebook/duckling" rel="nofollow">https://github.com/facebook/duckling</a><p>rewritten from clojure, used to power smart products at facebook
Habito [0], a mortgage broker based in London, has its back end written in Haskell.<p>[0] <a href="https://www.habito.com/" rel="nofollow">https://www.habito.com/</a>
> Not so surprisingly most people have migrated to Stack<p>Justice prevailed despite the futile attempts by the Haskell Committee to prevent Stack becoming popular!
My impression of Haskell is that the main issue is that laziness is simply wrong, since it causes space leaks that are hard to reason about, and seems generally less efficient than eagerness; furthermore, it seems rarely beneficial, so it seems more appropriate to explicitly request laziness rather than the opposite.<p>The next problem is that complete immutability is also wrong, because controlled mutable aliasing with linear types (like the system available in Rust) is what you really want since it's more general, efficient and expressive (allows mutable data structures), and complete immutability is just a special case of controlled mutable aliasing.<p>The third problem of Haskell is the weird syntax, that doesn't follow the common C/Java/JS or Python syntaxes for no good reason, making it hard to read and learn the language.<p>And if one were to change these things in Haskell, the result would essentially be Rust (or more precisely, a future version of Rust once all the missing abstractions like HKT, specialization, etc. are added), so I think that's what one should use instead.