Yes, let us stop here.
…like what usually happens on issue/bug trackers:
So, since it is going so poorly, I am going to make a little recapitulation of my involvement in this conversation so far.
I interfered to point out that Haskell is not thriving. The opposing argument, given by Tom and Andrew, is that the job market has grown. I point out that the growth of popularity (which is zero) is not proportional to the growth of the job market. This is suspicious, but no one is investigating. Since there is no growth, I argue that the word «thrive» is not suitable, and there are no further objections.
This is an important line of research — if we can explain why the growth of popularity is not predicted by the growth of the job market, we shall have found a valuable model. Maybe we can then see if there is a way to have the popularity grow proportionally to the job market.
I interfered to ask @atravers that they not attempt to create barriers for honest expression, which they were calling for. There has been overwhelming push back from @atravers and Julian. Their main argument is that the technical problems that led to the creation of Stack are now being solved, and therefore the voices rehashing this historical episode are not legitimate, not constructive and consequently not valuable. My main counter-argument is that the social problems that led to the creation of Stack have not been even acknowledged, and therefore the voices rehashing this historical episode are legitimate, constructive and consequently valuable.
Unfortunately, my line of reasoning has not been received well. Eventually Julian dismissed me as unworthy and @atravers folded.
I asked what drives Haskell. There has been no answer. I guess no one has understood the question. Some have taken Simon’s vision to be the vision driving Haskell, failing to recognize that the Haskell community is more than Simon’s compiler engineering circles.
Additionally, I reiterated several times that the issues raised in this conversation are not completely, not even primarily, technical. My understanding is that these issues are primarily social, and therefore the methodology of their solution is not the methodology of Software Engineering. This point has not been acknowledged by anyone.
I estimate from the likes that there is some support for the view of Julian and @atravers. This is astonishing to me. The community where silencing dissent and dismissing opposition are acceptable methods of conversation is not the community I can stand among. I have deep gratitude to the Haskell community, but not to this Haskell community. If this were Haskell, then Haskell would be dead for me.
Fortunately, I know that the situation is really better than this. I have no problem contributing to projects led by Tom and Andrew, as well as most other maintainers of Haskell libraries I had a chance to contribute to.
The problem seems to be that we do not have the culture of non-technical conversation required to effectively talk through some social issues.
If I have damaged anyone in the course of this conversation, please believe that it is unintentional. You can always talk to me privately and I shall do what I can to restore the damage.
apparently folded agreed to stop, since that we were
probably only ever going to keep disagreeing on this matter.
…hey, look at that - we still disagree! So congratulations, @kindaro - you can now claim this
echo chamber undead thread for yourself. I, for one, will now leave you in peace on this topic, and if anyone else brings up those “non-techical/social issues” that keep reappearing with monotonous frequency, you can rest assured knowing that I will direct them here so that you can provide assistance to the best of your ability.
I am now
refolding moving on…
To be pedantic: Julian offered me either to concede to his demands or stop. I did not want to escalate so I agreed to stop. So, this was an agreement between me and Julian. I never offered you to stop, so there was nothing for you to agree with.
I say that you have folded because you have expressed that there is nothing you will be adding to the conversation. If this is not a fair summary, please correct me. Furthermore, I offered several ways for the conversation to continue in a constructive way (consider writing an explanation of the issue, consider the issue as social, and more) that you have chosen not to pursue.
I do not see why you now have to splash vitriol in my face.
@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 220.127.116.11 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
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.