Live data from Hacker News

If Haskell is so great, why hasn't it taken over the world? (2017)

pchiusano.github.io

31–40 of 154 posts

Re: If Haskell is so great, why hasn't it taken over the world? (2017)

#31
From my own experience, Haskell is hard to learn. I have no grounding in maths, but that hasn't stopped me learning most languages. It's a pretty massive barrier to Haskell though, and I find that a lot of the community really struggle to explain things in terms that non-haskellers will understand.

The biggest problem I've found is a real inability to explain _why_ the things it does are cool, or what real-world applications they have.

I must admit that I also don't think it's a very pretty language. I like my code to be easy to read, and I just don't feel like Haskell fills that requirement. But that's obviously very subjective.

At the end of the day, I've found Rust more fun to learn and use, so I've been putting my time into that lately. Haskell is cool, but the time investment is high and the community is small, and I like to build things, rather than spend hours trying to figure out what a string of symbols mean.

Re: If Haskell is so great, why hasn't it taken over the world? (2017)

#32
I spent a large amount of personal time becoming an intermediate Haskell developer from 2009-2015, culminating in landing a job doing exclusively functional programming for an analytics team in a large company.

My experience made me give up on Haskell & functional programming entirel, despite my feeling that the principles of functional programming are often “better” than object orientation and other paradigms.

The only language-specific thing that turned me off of Haskell in a significant way was that so many important concepts in Haskell are implemented via pragmas that extend the language and either enforce syntax restructions, enable totally new (and often esoteric) syntax, or change the meaning of existing syntax.

This is really painful and makes you generally avoid great mew features and artificially limit yourself to more basic designs because of the learning curve and how committed to one siloed set of patterns you can become.

It reminds me of Dennis’s coffee shop idea in 30 Rock:

Dennis: One word. Coffee. One problem. Where do you get it?

Liz: Anywhere, you get it anywhere.

Dennis: Wrong. You get it at my coffee vending machine. in the basement at K-mart. You just go downstairs. You get the key from David. And boom, you plug-in the machine.

^^ that’s what it feels like reading Haskell tutorials when all you want to do is multiple dispatch or heterogeneously type some built-in container, simple things in so many languages.

This alone wasn’t what put me off though. The real problem is sociological.

Most companies hardwire a feedback loop between development teams and product or business managers that teaches developers they will be rewarded for their ability to unsafely hack things into a Jenga tower of system components for the sake of rapidly addressing ad hoc business questions even when, perhaps especially when, nobody has the slightest idea if answering the ad hoc business request is likely to be worth the additional instability the hacks will put into the Jenga tower.

This is very nearly philosophically at odds with the spirit of functional programming, from a first principles level, which means even if you eke out a platform capable of dealing with this in a functional paradigm, youknow for sure that the business willnot see your work as valuable, and safety guarantees, correctness proofs, automatic parallelization, etc., will often notbe rewarded, meanwhile just hacking stuff into some C++ or Python codebase that “just works” will be rewarded.

It’s not a satisfying phenomenon, but it convinced me that it’s not worth investing any more of my time into functional programming.

Re: If Haskell is so great, why hasn't it taken over the world? (2017)

#33

Let's say you write the best image decoder library for the next great image format, and everyone wants it on every device that is connected to the internet. Writing it in haskell would mean that only haskell users, or people willing to link in a large runtime, could use it. So, you write it in C or Rust, so anyone can link it in and not care what it was written in. Maybe also write a native Java version, because that…

GHC can produce native libraries just like C or Rust.

Re: If Haskell is so great, why hasn't it taken over the world? (2017)

#35
post #14

Because the industry isn’t dominated by well thought out solutions. Most programmers I talk to love the idea of spending time and using the perfect tools to design outstanding solutions to problems. They discuss how much they supposedly like to learn. But when push comes to shove, your 9–5 career growth is probably going to be best optimized by cobbling a bunch of Python together and shipping it. Especially if you wr…

Interestingly, the comp-sci program at University of Maryland does start with a list-esque system. They start with a very basic language and slowly add new features throughout the first course.

My experience at the U of MD (probably dated, but man your summary sounds familiar...): http://www.dadhacker.com/blog/?p=755

Re: If Haskell is so great, why hasn't it taken over the world? (2017)

#36

I spent a large amount of personal time becoming an intermediate Haskell developer from 2009-2015, culminating in landing a job doing exclusively functional programming for an analytics team in a large company. My experience made me give up on Haskell & functional programming entirel, despite my feeling that the principles of functional programming are often “better” than object orientation and other paradigms. The o…

>The only language-specific thing that turned me off of Haskell in a significant way was that so many important concepts in Haskell are implemented via pragmas that extend the language and either enforce syntax restructions, enable totally new (and often esoteric) syntax, or change the meaning of existing syntax.

god the ghc extensions. good luck figuring out why something is happening that you don't expect.

Re: If Haskell is so great, why hasn't it taken over the world? (2017)

#38
post #22

Because the industry isn’t dominated by well thought out solutions. Most programmers I talk to love the idea of spending time and using the perfect tools to design outstanding solutions to problems. They discuss how much they supposedly like to learn. But when push comes to shove, your 9–5 career growth is probably going to be best optimized by cobbling a bunch of Python together and shipping it. Especially if you wr…

> Unless your boss or your boss’s boss are technical and opinionated about good software engineering And if they don't care about ever making money off of your work. But most of us aren't doing [academic] research. Technically correct is the worst kind of correct when your company runs out of money/revenue.

Since when does "good software engineering" mean that you won't make any money?

Re: If Haskell is so great, why hasn't it taken over the world? (2017)

#39

Because the industry isn’t dominated by well thought out solutions. Most programmers I talk to love the idea of spending time and using the perfect tools to design outstanding solutions to problems. They discuss how much they supposedly like to learn. But when push comes to shove, your 9–5 career growth is probably going to be best optimized by cobbling a bunch of Python together and shipping it. Especially if you wr…

I don't think any CS education teaches language ecosystems. Students learn them on their own for whatever language they want. The choice they make is probably much more influenced by the popularity of the language or a job market, but not in which language they have to do all those tiny mostly algorithmic assignments.

Re: If Haskell is so great, why hasn't it taken over the world? (2017)

#40

Let's say you write the best image decoder library for the next great image format, and everyone wants it on every device that is connected to the internet. Writing it in haskell would mean that only haskell users, or people willing to link in a large runtime, could use it. So, you write it in C or Rust, so anyone can link it in and not care what it was written in. Maybe also write a native Java version, because that…

GHC can produce native libraries just like C or Rust.

But you carry around a runtime with managed objects that can’t be freely traded across the boundary to C libraries.
Post reply on HN