I feel like haskell is dying

All possible graphs tell us that the Haskell community is growing at about the same rate as the market for programming languages, so its share of the market is not changing.

But the attitudes do change. No one wants to hear about Fancy Haskell and Category Theory anymore. No one is thinking that Haskell is the solution to those problems everyone is suffering from every day: crashes, lags, death by complexity. Haskell is not seen as a general purpose language anymore. This is a stark change from what I recall from, say, 5 years ago.

I am not sure what the ethos is now. The passion is gone, what is left is established business. Cryptocurrency — yes, web servers — yes. Computer games, graphics, music — not anymore. There is no passion to break into data science and machine learning, even though it seems like Haskell could contest a share of that market. Most importantly, there is no spirit of exploration. There is seemingly nothing left to learn.

Some proponents of Haskell in this conversation (say, Tom Ellis, Richard Eisenberg) I know to be at the center of the industry. They are somewhat extroverted, very conscientious, very well off, their position on the market is lifelong. This is survivor bias at its finest. Others (Vanessa McHale, Julian Ospald) are no less successful I reckon, but even then somewhat cynical now — their messages bear an ever so slight shade of regret.

For an average person, investment in Haskell is not even «questionable» — it is not on the table. It is far easier to become a Solidity or JavaScript developer, and the pay seems to be even better on average. No ethos other than economic efficiency is evident. No one is going to come.

And truly I see few unfamiliar names even in this conversation.

3 Likes

I think there’s quite a lot to be done, actually! Some things I would like to see (Haskell-exclusive?)

  • FFI in the (lazy?) ST monad. I have questions about safety + explanations of why it is safe!
  • More laziness! Stuff like doubly-linked lists, laziness for graphs, laziness for more elegant algorithms.
  • A replacement for Template Haskell (might need some sponsorship at this point oof)

x86-64bit: Runtime code generation for x86 64 bit machine code is intriguing, actually uses the tardis monad for an assembler.

I think there is still joy to be had in little one-offs, I guess ambitious projects are not taking center stage as they once were…

2 Likes

To be fair, we did try. This was initially (2016) spearheaded (and the domain is still paid for) by Theam , then a small but active community grew around it, I was very active as an editor/hype man for the community (including running a workshop at ICFP’17 and pulling people in at ZuriHac and Haskell Exchange), we started building things, but then it sort of fell apart, people disappeared and the project ground to a halt.

And this is not meant to take credit from the crazies visionaries who have built machine learning libraries in this language. DataHaskell was simply meant to organize this effort. I have theories on why didn’t succeed (yet?), certainly have my share of the blame for not coordinating communications more effectively.

But the truth is that this stuff is super f+++++g hard to start with, it’s a lot of unglamorous work and additionally when you put 5 Haskellers in a room you get 12 alternative APIs for doing even the simplest task. We are simply allergic to standardization.

11 Likes

Oh man I forgot about HLearn… very good/cool stuff.

2 Likes

What are your thoughts on TH and why do you think it needs a replacement?

One far away goal for TH is to share the AST with Haskell (we’re working on TTG for that goal)

If you think it’d be an interesting discussion do open a separate thread.

1 Like

…there probably are others.

1 Like

Do you think that is something to be fixed?

Is any language a truly general purpose language though, if you consider how it is used? Also tbh, web is the too big of a domain nowadays to disregard. My thoughts were more about how companies involved in haskell has dwindled out, and with it, many haskell communities.

Because vanilla Haskell can be used to manipulate (not a separate macro language), you don’t separate runtime and compile-time nicely. Among other things this hopelessly breaks cross-compilation: What Template Haskell gets wrong and Racket gets right : ezyang’s blog

2 Likes

…what about just being a “versatile non-strict functional language” ?

While not as glamorous, there is still some interest in “smoothing rough edges” - in addition to web services and APIs e.g. Servant:

  • https://discourse.haskell.org/t/using-unsafeperformio-safely/4146
  • https://wiki.haskell.org/Partibles_for_composing_monads
    (my own work: experimental, based on personal experience and opinions!)

For an average person, investment in Haskell is not even «questionable» — it is not on the table. It is far easier to become a Solidity or JavaScript developer […]

After some time, they are frustrated by e.g. “the JavaScript problem”, which drives them to look for alternatives, such as Elm. The stark difference between those two languages must intrigue some at the very least, who then look a little further…or maybe not; if I could usefully predict the future, I would have permanently solved “the day-job problem” a long time ago!

…ouch! Then again, we have also been spoilt for choice with regards to Haskell extensions. Either way, it’s definitely a problem, as shown by (the absence of) Haskell 2020.

Since “Haskell burnout” was briefly mentioned:

  • https://discourse.haskell.org/t/what-happened-to-lightweight-concurrency-primitives-for-ghc/3363

…it does happen. But as @rae showed, it isn’t limited to Haskell.

Can things be better? Of course, but we should also remember that things could also be worse - some thirty-five years ago, a group of very-learned folk may have been too busy to realise that having one language was (at that time) simpler that several, for research and educational purposes.

In spite of the advent of multi-core desktop computers for everyday use, the prevailing paradigm is still imperative - that Haskell is now where it is in such an environment certainly looks like a success to me. As to it’s future…the worst-case scenario is that Haskell joins the ranks of Prolog and Miranda(R), to be used in education to awaken the imperatively-habitualised to alternate possibilities.

Anything more than that is a bonus.

3 Likes

(And I thought Prolog was more popular than haskell)

Prolog’s popularity is difficult to measure by any yardstick to compare to Haskell.

Prolog (and I think we should include Datalog) has a rock-solid user base who wouldn’t use anything else for drawing conclusions from diverse data collections. It’s a different use-case vs Theorem provers, so I don’t think layering Theorem proving/Dependent on top of Haskell will attract any Prolog users.

(And to @atravers point, Prolog/Datalog is heavily used in industry as well as academe for data analysis – that is when data warehouses run out of insights.)

1 Like

…I stand corrected: if Prolog continues to have its industrial uses, then Haskell will too - thank you, @AntC2!

1 Like

Eh, why so? It’s not like anyone would be interested in purity, and ppl just actively avoid laziness nowadays.

Despite all the responses in this thread, it seems to me that you’re still trying to find something that will confirm your belief about the demise of Haskell. So here it is:

One day, Haskell will be no more than a distant memory. But we believe that, when that day comes, the ideas and techniques that it nurtured will prove to have been of enduring value through their influence on languages of the future.

Paul Hudak, John Hughes, Simon Peyton Jones and Philip Wadler (page 46 of 55).

I for one will let you decide if this will happen before or after the human race is living on other planets in other galaxies

5 Likes

Well, I certainly want to believe it is alive and well. However, there are even scant sign of decay in this thread as well. (e.g. what kindaro said) Also, by that sentence I do not mean demise of haskell, but the current reality of FP in the programming scene. To put it in other way: It feels like if haskell dies out, purity and laziness will go with it.

No they wouldn’t:

Of course, without a nonstrict successor to replace it, the departure of Haskell would be unfortunate for us and our programming successors. But the above quote is correct: what was learned while it existed will endure.

1 Like

Eh, most of them looks like legacy, and I doubt they would endure after haskell’s death. Also it would be detached from any programming industry. Perhaps Clean is possible candidate to last, but that is only one…
Perhaps I am simply depressed at how industry is leaning towards Go (and possibly python).

I don’t think purity will die out. I’ve skimmed through some old codebases of id games and had the impression those C programmers already had a concept of “purity” back then and applied it to some of their function documentation.

But there are many ways to deal with the “reasoning problem”.

Laziness on the other hand, can (very often) make reasoning harder. Its main advantage is optimization, imo (I know some argue it also facilitates composition). But I’d be surprised if we see a new solid language make use of it.

2 Likes

Hmm:

To put it [another] way: It feels like if Haskell dies out, purity and laziness will go with it.

…I thought we were discussing how those concepts would endure, either in those languages or (if they also disappeared) in the various research journals dedicated to computer science and software development. As for the fate of individual languages, the advent of Haskell itself marked the end of most of its “site-specific” predecessors, with (IIRC) the sole exception of Miranda(R). If Haskell disappears, it will most likely be in similar fashion - superseded by another non-strict language, and as noted above: