Live data from Hacker News

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

pchiusano.github.io

71–80 of 154 posts

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

#71
History has shown that sophisticated and more superior technologies are almost never the winning ones.

Instead, technologies that prevail are often the ones that are more accessible to a broader audience of developers and the ones that manage to evolve faster in order to engage with the latest trends without breaking backwards compatibility.

The same philosophy applies when trying to find a solution to an engineering problem.

Good solution is rarely the super-well-optimised and super-efficient solution that applies all the best patterns written in the sacred books.

Good solution is the one that solves the problem quickly and at the minimum short-term and long-term cost including development, running and maintenance.

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

#72

Earlier quoted context omitted.

But you have to link in the runtime, including the garbage collector.

I don't see how that is a big problem.

It's a larger footprint, possibly drains battery when you don't expect, may mess with signal handlers and other global state.

And it does not really scale to many libraries. What happens when eveyone thinks theor language is best and wants to link in a big runtime? You need 30 different runtimes for 30 libraries? Ouch.

And if not careful about versioning, you could end up with symbol conflicts, etc.

All these problems can be overcome, but are just not acceptable if you want to be a ubiquitous library like libjpeg. Needs to be super simple from a runtime perspective.

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

#73
In his talk about "milestones in the development of lazy, strongly typed, polymorphic, higher order, purely functional languages" David Turner mentions that the wan't adverse to SASL (https://youtu.be/QVwm9jlBTik?t=1819) and Miranda (https://youtu.be/QVwm9jlBTik?t=2330) —both predecessors of Haskell—to be used in industry. Getting out of the ivory tower was not a last minute idea, it seems.

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

#74
post #67

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…

But it doesn't seem too popular in the open source world either. The only large project I can think of that uses it is Xmonad.

Pandoc ist also pretty well-known even outside the Haskell world.

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

#75
post #56

Earlier quoted context omitted.

It's not an uncommon meme that programmers and mathematicians possess a weird twist in the mind that allows them [in the strong form of the meme] to do, and [in the weak form of the meme] to enjoy doing, what they do. If you grant that, then it's a small step to admitting the existence of different sub-twists that incline you towards different parts of the abstract space. If you don't grant that, then consider it a r…

Why the word "defect" though? There must be other words that are less controversial. Maybe "abnormalities" or "specialities"?

But defects are what make diamonds have colours![0] I hope you didn't interpret that phrase as an attack.

[0] https://en.wikipedia.org/wiki/Crystallographic_defects_in_di...

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

#77
The article makes a good point. When you get to the edge of any system it behaves like a stateful object. So the only way to get rid of 'objects' completely is to extend your system to cover the whole world. I doubt the author thinks he can do this, but even what he describes sounds ambitious.

Another way to look at it is that it's good to learn FP and apply it where it makes sense but don't neglect your object modeling skills (where object = something that exibhits behaviour in response to messages)

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

#78
post #61

i have railed/ranted (occasionally belligerently) about haskell after having a professional brush with it two years ago. haskell hasn't taken over the world because the community is haughty about haskell's giant warts. yes it's very welcoming and open to indoctrinating you on "best practices" but as soon as you diverge in the slightest (because someone before you diverged or because you need to do something unconvent…

This is not a valid argument. I don't know Haskell beyond basic fundamentals and I know that your argument is ridiculous. Just consider C++ and boost::spirit. Overloading operators can lead to ridiculous syntax in pretty much any language that supports it. C++ doesn't have any _real_ problem with overloading in _real_ code bases. I wouldn't expect Haskell to have this problem either. Being able to construct ridiculou…

>Just consider C++ and boost::spirit. Overloading operators can lead to ridiculous syntax in pretty much any language that supports it.

you can't define new operators in c++? you can only override existing ones and not even all of them https://stackoverflow.com/a/8425207/9045206

>Tooling is exactly the same point. Tooling in C++ land is completely ridiculous.

Microsoft Visual C++ is arguably the best ide period. make/cmake are rough sure but i'll take that in-exchange for being able to set visual breakpoints.

>Also, Rust's type system is not linear, it's affine, you can declare a variable and not use it.

does that make more or less foreign to users?

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

#79
Besides the reason given in the article (most everyday applications have a large surface area where they interact with a larger system, and that system is largely imperative and untyped), I think that network effects are a big problem.

If you want to create some new application in Haskell, you'll probably need some collaborators. If all your potential collaborators know Haskell that's great, but the chances are a lot higher that most of them know Javascript or Python or Java. So, that's often what you end up using if the main goal is just to solve some immediate problem with the least hassle.

Another factor is that most of the high-profile projects people are familiar with (linux, gcc, firefox, llvm, inkscape, etc..) are fairly old projects. Haskell has also been around for quite a while, but it's really only in the last decade or so that it's become a pleasant language to use. That's both because of libraries and tooling, and also because it took a long time for the Haskell community to go from "we don't know how to do IO in this language" to "we have this IO monad thing, but we don't really know how to use it" to "this is a language we know how to write applications in and lots of people have done it."

At the time that many projects got started, Haskell either didn't exist or hadn't progressed to the point where every little thing wasn't blazing a trail into the unknown.

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

#80
post #20

If you look at software at various scales, Haskell does a lot to get the finely grained and maybe even medium grained parts right and correct. Yet, I don't see a convincing value proposition for Haskell for the coarser grained scales. On that level, the benefits of Haskell as a language dont shine anymore as brightly, and this is an area that many teams struggle with. And oh: Haskell's lazy evaluation is the reason w…

You'd be surprise how much weirder it gets when everything is evaluated eagerly.

I disagree. If everything is evaluated eagerly, intuition usually works. Failing that, tools like logging and debugging and profiling will usually bridge the gap. A non-strict language like Haskell makes it much more difficult to predict run-time performance characteristics, unless you introduce overrides all over the place to force everything to be strict anyway.
Post reply on HN