<story><title>On Marketing Haskell</title><url>https://www.stephendiehl.com/posts/marketing.html</url></story><parent_chain><item><author>wirrbel</author><text>I am the person that would be the one most likely to adopt haskell in the company I work in. Now, I don&amp;#x27;t and I won&amp;#x27;t even though I used it for several pet projects and I would say have learned a lot of haskell and associated patterns.&lt;p&gt;It&amp;#x27;s not that haskell doesn&amp;#x27;t have merits. However I feel like they are oversold. While you can build programs that lack certain error classes, they are not bug free and at the same time debugging often was a lot harder than in other languages. The laziness is especially problematic in that regard.&lt;p&gt;Another problem is cultural. Haskell and Scala community have been the most hostile communities I have experienced. And the friendliness of communities is a sure predictor for growth.&lt;p&gt;Another important problem is the docs. For some reasons they hardly contain examples. You don&amp;#x27;t get adoption that way. Even if the maintainers feel that the type signatures are documentation enough.&lt;p&gt;And as a last remark, the combinatoric complexity of compiler flags is a problem and needs to be fixed. But the ecosystem is in a deadlock there that no compromise could be found on what should be in the language and what shouldn&amp;#x27;t be. And it kind of indicates a deeper problem in the haskell design process.</text></item></parent_chain><comment><author>jbreckmckye</author><text>I was a Haskell developer in my last gig. I entered that job determined to make a success of it, because I was excited about the language and felt I wanted to &amp;quot;prove&amp;quot; that it had value in a &amp;quot;boring&amp;quot; domain like financial services. But I was stymied at every opportunity by Haskell itself.&lt;p&gt;My biggest complaints are 1) the lack of good libraries, and 2) the apalling state of documentation for the few that exist. Too many Haskell projects read like &amp;quot;I figured out this neat family of types for thinking about X - at last URL parsing is provably safe - now you figure out the rest&amp;quot;.&lt;p&gt;Let&amp;#x27;s take a practical example: HTTP requests. If I&amp;#x27;m a budding JavaScript developer, or Kotlin developer, or Python developer, I can read through copious search results and tutorials on Axios &amp;#x2F; OkHttp &amp;#x2F; Requests &amp;#x2F; delete as appropriate. These tutorials not only walk me through the common use cases but also show me their APIs in the context of the new and alien syntax of the language I&amp;#x27;m grappling with. They give me enough template code that I can use an incomplete understanding of whatever language it is I&amp;#x27;m learning to figure out the rest without recourse to a textbook.&lt;p&gt;What does Haskell have? It has Req (and a bunch of other also rans), and the docs for Req are atrocious, spanning a staggering 1 (one) example and then a meandering essay on the deficiency of other Haskell HTTP clients. It&amp;#x27;s not good enough.&lt;p&gt;And that&amp;#x27;s my assessment of Haskell as a whole - not the language individually, which is expressive and powerful and inspired - but the whole ecosystem around Haskell that feels like a set of beta projects and hobby repositories generally developed by interested individuals rather than commercial endeavours.&lt;p&gt;Or look at the paltry state of IDE support. It&amp;#x27;s 2020 and the best option we have is VSCode with HIE, which rapidly spirals out of control allocating memory, randomly crashes and on Windows just refuses to even start half the time. Without this tooling a lot of the theoretical benefit of the type system is being lost. This is low hanging fruit but there&amp;#x27;s been no incentive to pick it.&lt;p&gt;And so I&amp;#x27;ve made the difficult decision to leave Haskell behind. If you need typed functional programming, your options are OCaml, Scala, F# or even subsets of Rust and TypeScript. Haskell is a great learning experience but totally unproductive right now.</text></comment>
<story><title>On Marketing Haskell</title><url>https://www.stephendiehl.com/posts/marketing.html</url></story><parent_chain><item><author>wirrbel</author><text>I am the person that would be the one most likely to adopt haskell in the company I work in. Now, I don&amp;#x27;t and I won&amp;#x27;t even though I used it for several pet projects and I would say have learned a lot of haskell and associated patterns.&lt;p&gt;It&amp;#x27;s not that haskell doesn&amp;#x27;t have merits. However I feel like they are oversold. While you can build programs that lack certain error classes, they are not bug free and at the same time debugging often was a lot harder than in other languages. The laziness is especially problematic in that regard.&lt;p&gt;Another problem is cultural. Haskell and Scala community have been the most hostile communities I have experienced. And the friendliness of communities is a sure predictor for growth.&lt;p&gt;Another important problem is the docs. For some reasons they hardly contain examples. You don&amp;#x27;t get adoption that way. Even if the maintainers feel that the type signatures are documentation enough.&lt;p&gt;And as a last remark, the combinatoric complexity of compiler flags is a problem and needs to be fixed. But the ecosystem is in a deadlock there that no compromise could be found on what should be in the language and what shouldn&amp;#x27;t be. And it kind of indicates a deeper problem in the haskell design process.</text></item></parent_chain><comment><author>lambdasquirrel</author><text>&amp;gt; Another problem is cultural. Haskell and Scala community have been the most hostile communities I have experienced. And the friendliness of communities is a sure predictor for growth.&lt;p&gt;To elaborate further, some of the most upsetting conversations I’ve had with Haskellers revolved around simple things like exceptions and logging. Issues would consistently turn into a matter of personal intelligence, and proving oneself correct. It is insane. We are just trying to build things here. These are very boring implementation issues that just need to get done.</text></comment>