by donut on 9/7/20, 7:04 PM with 148 comments
by brundolf on 9/9/20, 3:10 AM
No wonder it felt like the author was living in a different universe.
by srtjstjsj on 9/8/20, 1:22 AM
> It's a transcript of the following talk by R. Martin with some substitutions made (SmallTalk -> Haskell, Ruby -> Rust, and others).
by platz on 9/8/20, 1:59 AM
A large proportion of the talk linked below is based on the book “Crossing the Chasm".
The book was originally written for startups trying to break into the mainstream, and this talk adopts that book to programming laguage (or tools more generally), particularly regarding Haskell.
Gabriel Gonzalez – How to market Haskell to a mainstream programmer: https://www.youtube.com/watch?v=fNpsgTIpODA
Gabriel also suggests that in order to "cross the chasm" you have to offer a best-in-class experience in some area, and suggests that Haskellers adapt the language to facilitating building interpreters, which is it particularly well suited for.
So, base on the above, I don't think the OP's emphasis on the emotional analysis of Haskell programmers is anything more than the OP's just-so story, although the notion of parochialism may have some crossover with the concept of marketing.
by throw149102 on 9/8/20, 3:35 AM
by xfer on 9/8/20, 3:28 AM
But these problems require money and expertise and marketing from people who already are in the field, so a bit of chicken-egg problem.
Arrogance is the last thing i would say about haskell community and i have interacted with them on reddit and irc. So not sure about that.
The thing about ignoring enterprise needs is that the enterprises need to invest in the things they want. Those that do contribute are using haskell in enterprises that fit their needs. Otherwise it is primarily a research driven language.
It's not very surprising that Go/Java is doing very well, looking at the investment done by the companies behind it.
by benreesman on 9/8/20, 6:48 AM
Haskell is really cool, but IMHO is held back from practical adoption by two things, one technical, one cultural:
- Lazy by default maps weirdly onto von Neumann machines. Laziness is cool but doesn’t pull it’s weight as the default. Performance in time and space is even harder to reason about than it already is on modern architectures, and debugging is...different.
- GHC extensions are like crack for the kind of people who overdo it with C++ templates. Pragmatic, legible Haskell in the RWH tradition isn’t safe from the type-theory zealots even in a production system. Cool research goes on in GHC, but it’s hard to keep everyone’s hand out of that cookie jar in prod.
by metreo on 9/7/20, 8:16 PM
by lacker on 9/8/20, 12:20 AM
I don’t think so. What killed Haskell in mainstream programming is its weird syntax. Rust looks like C so it passed that first sanity check. People hate that something so aesthetically basic could define the success of programming languages, but it seems pretty clear at this point. Languages have to basically look like C in order to be popular.
by codygman on 9/8/20, 12:15 AM
The problem is that highly valuing "first-principles thinking" is wrongfully attributed to arrogance and seen as "ignoring truths from the 'dirty' mainstream".
by EE84M3i on 9/8/20, 12:04 AM
Golang was publicly announced at the end of 2009.
by axilmar on 9/9/20, 2:01 PM
-I used to hang out at lambda-the-ultimate, in which haskell was considered god sent and c++ a toy language. At the time, I was heavy into writing simulation software, which meant c++ all the way, so I tried to understand haskell and its advantages over c++, but my attempts ended up being mocked. I stopped visiting that site.
-I tried to open some debates about Haskell on reddit, where someone told me they will answer my haskell questions only if I told them a specific mathematical definition on some properties of functions. I didn't know the reply, I was a programmer after all, not a mathematician. Said person left me in the cold.
-again on reddit, I was trying the debate the usefulness of haskell regarding simulation software, which relies heavily on updating variables, but I never got straight answers. To this day, I still do not know if haskell code actually can update variables in place or it only simulates updating of variables. Someone suggested using lens, and although I understand the abstraction, it still has not solved my question if haskell can update variables in place.
Why I was so interested in this aspect, i.e. in place updating? I wrote simulation software and after that game software for a living, and it matters to me because I want to be able to reason about the performance of my program. I don't want to have data be duplicated behind my back.
To cut the long story short, my haskell questions go unanswered to this day, I was very disappointed, and since I have great experience in imperative programming languages, I usually write programs that are correct as soon as they are compiled, which is what the haskell advantage is supposed to be. So I don't see any benefit from haskell, and I won't recommend it to my company or my colleagues.
Am I wrong regarding haskell? perhaps, but I am not interested any more in 'trying out' languages of dubious gains, nor am I interested in dealing with juvenile behaviors. I tried Rust because it had a serious advantage over C++ (namely, object lifetimes), and I will recommend Rust, but my patience for and interest in haskell is virtually non-existent at this point.
by tome on 9/8/20, 7:40 AM
* marketing failure
* lazy by default
* GHC extensions
* its weird syntax
* its obsession with monad-as-burrito tutorials
* pretty hostile haskell-centric spaces
* not backed by a large company
* bad university classes
* tooling
* average developers are not “smart” enough to learn it
* no payback for learning Haskell skills
by Aerroon on 9/8/20, 4:44 AM
I'm not really sure whether it was because of the way it was taught or whether Haskell is inherently more difficult. I do think that a class like that might've hurt the language's adoption among the students though. (Or maybe my impression is simply biased by my own experience.)
by sklarsa on 9/8/20, 2:40 PM
by kovac on 9/8/20, 5:40 AM
I wanted to learn a functional programming language and did a lot of research about which language to start with. Initially I looked at Haskell but ended up going with F# because the tooling was a lot better and the documentation from Microsoft was really good. Also, I read quite a few posts by those who worked fulltime, paid F# jobs. I loved the functional style. I think it's a shame that it's not mainstream. But then when I tried to do something non trivial, like network programming, I had to use OOP C# style types in F#. That was just fugly and made the paradigm look weak because OOP constructs could do it more easily than functional constructs.
Other than the elegance of the functional programming paradigm, it didn't seem to offer much in terms of jobs because I can't really see large numbers of people suddenly picking up functional programming (which isn't easy) and building massive applications specially with the whole cloud based SaaS stuff that's happening right now.
by heavenlyblue on 9/8/20, 10:44 AM
If Haskell was indeed one of those "everybody wants to do it" languages, then making it easy to approach from the infrastructure perspective would be the first thing to do.
by dsabanin on 9/8/20, 1:17 AM
by bsder on 9/7/20, 11:37 PM
Rust code uses "unsafe" and doesn't apologize about not being pure. Rust tries to minimize "unsafe" and encapsulate it, but acknowledges that it must exist.
What's the Rust equivalent of "A monad is just a monoid in the category of endofunctors, what's the problem?" I can't really think of one.
Maybe there's something in lifetimes (which can be pretty messy). Maybe: "Quit using doubly linked lists or the borrow checker will beat you senseless."
In addition, there are lots of alternatives to Haskell that are almost as good. That isn't true of Rust. If you need systems programming, you have C, C++, maybe Ada. Rust is trying to drive a fairly difficult wedge into that area, but if it succeeds, the alternatives are scarce.
by tengbretson on 9/8/20, 12:37 AM
Can you tho?
by StillBored on 9/8/20, 4:46 PM
by smabie on 9/8/20, 5:31 PM
Ocaml is designed to get stuff done, and the tooling and ecosystem strongly reflect that.
If something was going to kill Haskell, it would OCaml, not Javascript or some other language.
I would feel very comfortable running a business on OCaml, Haskell, not so much.
by dpc_pw on 9/8/20, 5:57 PM
by TheGoddessInari on 9/8/20, 8:53 PM
by non-entity on 9/8/20, 12:52 AM