@kindaro , you`ve successfully killed this thread, by exhausting all other participants. It looks like you don’t understand that a public forum is not your private psychoanalysis session.
Well if that is how it is, then it was not my intention and I am sad that it turned out that way.
I had a conversation, for the most part with Julian and @atravers. We had a disagreement and I tried to deconstruct their arguments. I hardly even participated in the main stream of this conversation. If you want to put all the blame for the decline of activity in this thread on me, well I do not see how this is fair. It is hard for me to defend since you do not bring any specific charges.
I can only repeat that I shall take all possible steps to restore the damage that I might have inadvertently inflicted to any specific participant. I do not recall saying anything that might have warranted this backlash specifically from you, Marco, since I never even addressed you. But please make me aware if I have.
There are plenty of ways for the conversation to develop. But blaming one another is hardly one such way.
May I make the request that a mod just lock this thread? Everyone has said their piece, multiple times, and it’s clear what the opinions on this topic are; there is nothing left to be gained by more back-and-forth, even if it’s done civilly. And besides, everyone will get more chances to express themselves in other threads because all of these topics will continue to come up organically in other contexts.
We can have a meaningful discussion about legitimate issues, this isn’t crazytalk - it’s a little silly this went sideways so much, but demonstrates the struggle that we experience as a diverse and passionate community. Even if we are at times frustrated, it helps a lot if we’re able to persist and drive on towards mutual understanding. I think these types of topics come up because we’re not yet at that place of mutual understanding.
I’d like to reframe this idea of “haskell is dying”, and in particular, I’d like to point out that this is a personal experience. Haskell is not dying in the cut and dry sense of the expression, but to some of us, haskell is dying (or is already dead).
With that out of the way, I’d like to share a small bit of my perspective, drawing from my experience with this community and haskell in general.
Haskell is founded on strong principals. Those principals have also gotten us into challenges at times - when push has come to shove, when Haskell’s principals cornered us, Haskell didn’t back down, it didn’t take shortcuts, it pushed through the challenges to address them with amazing grace.
At the same time, and also due to those principals (particularly the type system), Haskell puts the ecosystem in a position where we are more dependent on one another. In other words, we are also more affected by changes in code from other parts of the ecosystem. So when some of us say “oh, you don’t have to care about those people experimenting with X”, Haskell users are smart enough to know that’s not actually an accurate enough statement - we are in a position of dependence and are affected by changes elsewhere in the ecosystem, and which we may or may not agree with, or which maybe we don’t care about, but it still ends of affecting us.
While I have been unable to find it again, there was a reddit comment about too much expressiveness that really resonated with me. This comment was about how unclear it is for us (production users), how to use haskell to do X.
For people using haskell in production, and particularly for those outside the startup/crypto space, we are busy trying to get shit done using haskell as a tool.
We use haskell because it’s a great tool, and we think it’ll provide us a better experience than other tools.
However, given Haskell’s complexity, and given the ecosystem’s situation of inter-connectedness noted above, we need clear and actionable guidance how to do things correctly in haskell.
Instead of more clear guidance, how to do X is becoming more and more unclear. Instead of addressing the social rifts and related problems within the ecosystem, we’re forging head in a technical headspace and making Haskell more difficult to onboard and start using in production.
In particular, there isn’t really anyone to advocate for us production users at GHCHQ/CLC/etc, and the issues we face are getting worse.
Worse yet, these issues have been systemic, present for more than a decade, and very talented people have already put their focus on these issues, done their best to be leaders in the ecosystem and to work with other leaders in the ecosystem, and they have left burned out or moved on to other things.
So yes, to some of us, Haskell is dying, or has already died.
By putting a spotlight on this, we’re able to discuss and learn from the history and find new ways to break the cycle so we don’t repeat it all again. If you are not willing to have a reasonable discussion about this, you can move on and do other things, you do not need to suppress or undermine this discussion (it’ll only keep coming back up, even if past voices have moved on, as we’ve already seen).
I’m under the impression that most GHC maintainers and developers are from industry. In particular, the top contributors work at Well-Typed, Tweag, IOG (formerly IOHK), and Galois.
Also, a majority of the GHC steering committee members are from some of those same companies and also Habito, Facebook, and Serokell.
Do the employees of those companies not represent production users?
CLC is actually short on academia and educational sides, its current composition is overwhelmingly of industrial users of Haskell. Please speak for yourself and do not imply that your views are shared by all professional haskellers.
I am speaking from my perspective and experience, which is that of an implementer using and bringing haskell to individuals and teams that are not currently using it, and would be using it for production use cases, supplementing and/or replacing other existing options built on python/php/ruby/golang/etc.
That is indeed really a different target audience than the big Haskell companies with lots of experts that already have most of it figured out. I wonder what the needs of that group are. Is stability really important? I think they will only have to deal with it after they’ve been using Haskell for a while. But maybe they’re already cautious.
I’ll throw in my two cents:
Do I feel like Haskell is dying? No.
Hobbist: someone who advocates for the rights of hobbits. See also, Gandalf, Haskell.
Sorry for all my rants, I was being too negative in the thread. I want to express the sorry…
I have been reading through all this thread now, and I am a bit disappointed by the conclusions (are there any conclusions?) Is there anything we want to do about these negative feelings? Or maybe I missed something.
Personally, I really love writing Haskell.
I am disappointed/annoyed by
- The lag of tooling support (e.g., see Supported GHC versions — haskell-language-server 1.6.1.1 documentation). Maybe I just got used too much to the excellent help during coding from
hls
, but it feels weird that my environment breaks all the time, for example, when I want to use the latest released GHC (one year after release). - Outdated and not-well-written (too complicated) documentation (especially the Wiki).
- Lack of a comprehensive set of well maintained core libraries. And here, I am not talking about bytestring etc. I am thinking about well interacting statistics libraries, data science libraries, probably AI libraries, plotting libraries, and the list goes on.
I know, it is always easy to complain and harder to fix things, but here I am :).
In conclusion, I really love the language, and I think that Haskell is developing well, and still I don’t feel particularly happy about the state of affairs outside the actual *.hs
files.
For 1, there is a recent proposal [Pre-HFTP] GHC.X.hackage: A tool for easing migrations to new GHC versions that should make it possible for HLS to support new GHC versions much faster. This seems really promising, so I still have a lot of hope that this will mostly be resolved in the near future.
For 2, there has been a proposal for the wiki in particular [RFC] Evolution of wiki.haskell.org, but no clear plan has formed yet, I believe. I think it is difficult to get consensus on what the best course of action is. As for general documentation, I think the Haskell foundation has set something in motion to improve the documentation, but it is still going a bit slow. If you have concrete examples of bad documentation, please report them as mentioned before in this thread (thanks for making that repo @tomjaguarpaw!).
For 3, I consider all your examples to be in the data science domain. That’s a domain that the Haskell ecosystem just isn’t very good at yet. As mentioned in this thread, there have been attempts before to improve this, but it hasn’t been successful yet.
I advocate for there to be an authoritative guide for onboarding, up to intermediate and recommended reading to become experts, community-supported, and hosted on haskell.org. This is possible/feasible, but agreement among various parties seems to keep blocking that or burning out contributors who push in this direction.
Edit: I also advocate for the migration and archival of content on the wiki, folding that content into haskell.org if it should be kept, and off wiki.haskell.org - atm the wiki competes too much in search engine results when you query and look for some guide or doc on some random haskell topic.
I like this:
“…an appreciation for the craft of programming that is exceedingly rare in the wider world of programmers…”
I think there is a spectrum from coders, programmers, … to actual software designers. The later knowing a range of paradigms and approaches which Haskell introduces to others in the imperative bubble. Bit by bit other languages, created by knowledgeable experts who know the domain are incorporating similar things - even Java’s streams with the triad of filter, map, reduce.
Nowhere as simple and clean as in Haskell, but echoing similar ideas. Qwerty v.s. Dvorak.
IMHO Haskell has a multi-tiered learning and usage curve, initially clean and simple, and then as many new language pragmas, it branches out into a tree of DSLs. The ability to define new operators and monadic operations is also powerful, but can lead to very localized code structure and usage.
Even if there is no big company X using Haskell, there is much to learn from it to anyone who programs.
Folks tend to forget that the Bluespec, a HDL,which is haskell or haskell with syntactic sugar is doing well .Google uses it, so does DARPA and so do startups. It’s competitor chisel, uses Scala. No other mature HDL at this level of abstraction other than these two in commercial usage. And these startups are shipping RISCV CPUs written in non popular/dying languages and getting venture funded ! But Bluespec which came from MIT does have a sucessor at the research stage, uses a DSL embedded in Coq.Not likely to get industry adoption anytime soon. Try getting a newbie programmer to shift to Coq! In the HDL world, a lot of the haskell features are a must have and the difficult to use tag simply does not exist.
It seems like haskell is not doing well regarding industry adoption, open source activities and community activities… I lwish research portion could keep haskell from dying completely. (or… is research moving out as well?)
Honestly, when I learned coq it did not feel that hard. Bigger problem was to write total functions with limited matching capabilities, but that might be mitigated in DSL.
Are you subscribed to the Haskell Weekly Newsletter?
I’m begging the mods to please just lock this thread, there’s no reason to keep having this conversation here. Every substantive point has and will continue to be made in other threads where the topics are relevant.