6 ms·
I don't believe this article was meant to make fun of Haskell, more to make fun of Haskell fans lack of a sense of humor. Don't take it too seriously.
by pavelludiq 16y ago
I don't believe this article was meant to make fun of Haskell, more to make fun of Haskell fans lack of a sense of humor. Don't take it too seriously.
- jmillikin 16y agoI'm not taking it seriously, I'm just sort of baffled about it. If this were an article talking about how FORTRAN is never used in industry because punch cards are too expensive, it would garner a few votes before being eventually buried. Perhaps one or two quick comments about how the author is uninformed. Ditto somebody making fun of Erlang because nobody's written a web browser in it yet, or elaborating on why Python's poor industry adoption is because of mandatory whitespace. There's a lot of material that could go into a satire on Haskell. For example, one could mention its extant-but-completely-useless shared library support. Or how quick midnight hacks end up becoming part of the language's standard definition. Or even the absolute absurdity of a package publishing system that mandates bumping your package version every time a dependency has a new release. But he doesn't talk about any of that; anybody who's bothered to google for "haskell" has read his material on half a dozen blogs. "Monads are hard" is right up there with "why shouldn't I just make everything global?" in the list of topics useful for juicing pagerank, but nothing more.
- aplusbi 16y agoPart of the article's popularity probably has to do with the popularity of Steve Yegge.
- brian6 16y agoI agree with you. Just posting to say that there is an HTTP server in Erlang that's supposed to be very good: Yaws.
- jmillikin 16y agoThat's a server, not a browser ;) I was using FORTRAN, Erlang, and Python as examples of languages which are heavily used in industry, but have neither the crushing popularity of Java/C# or the pop-culture appreciation of Ruby or Javascript. It doesn't really matter how much Haskell or Erlang are used, or how many billions of dollars pass through their runtimes every day; for whatever reason, the Internet has decided they are not popular.
- frou_dh 16y agoQuite obscure, but I was surprised to find that a 3D modelling program, Wings3D, that I've used on and off over the years, is written in Erlang.
- deleted 16y ago[deleted]
- jules 16y ago> For example, one could mention its extant-but-completely-useless shared library support. That wouldn't be funny. This article is funny because of the hyperbole of the usual criticisms (e.g. too academic). I think you have taken the post a bit too literally: > "We crafted a fake satirical post lampooning Haskell as an unusable, overly complex turd -- a writing task that was emotionally difficult but conceptually trivial. Then we laced the post with deeper social subtext decrying the endemic superficiality and laziness of global industry programming culture, to make ourselves feel better. Finally, each of us upvoted the post, which was unexpectedly contentious because nobody could agree on what the reddit [OR hacker news] voting arrows actually mean." His post is this fake satirical post, it's actually about "the endemic superficiality and laziness of global industry programming culture". So if you look a bit closer, you see he's making exactly your point: these criticisms are superficial.
- jberryman 16y agoHoly crap. He just tied the knot in prose form: http://www.haskell.org/haskellwiki/Tying_the_Knot http://www.haskell.org/haskellwiki/Tying_the_Knot
- pjscott 16y ago> Or even the absolute absurdity of a package publishing system that mandates bumping your package version every time a dependency has a new release. Wait, what? Do you have a link for this? It sounds alarming, and I haven't heard of it.
- jules 16y agoHaskell being functional, that design decision makes some sense ;)
- jmillikin 16y agoSay you've got a package webbrowser, which depends on libhttp The Haskell package versioning policy < http://www.haskell.org/haskellwiki/Package_versioning_policy http://www.haskell.org/haskellwiki/Package_versioning_policy > says that your package metadata should specify a minimum and maximum bound on which version of libhttp you support; this way, if a new version of libhttp is released that is backwards-incompatible, they can bump the version and every dependent package will still build correctly. Say the author of libhttp realizes he really needs to add another parameter to a function. That might break dependents, so it's backwards-incompatible. So he bumps the version from 2.3 to 2.4. Like a good package author, your browser's dependencies look like this: name: webbrowser version: 1.0 build-depends: libhttp >= 2.3 && < 2.4 Now you can be notified of the change via < http://packdeps.haskellers.com/ http://packdeps.haskellers.com/ >, download his new package, test it, and verify it works. You didn't use that function, so the change doesn't apply to you. You can change your metadata to: build-depends: libhttp >= 2.3 && < 2.5 Except now there's a problem. Hackage doesn't support modifying already-uploaded packages; there's no way you can say "webbrowser-1.0 supports 2.3 and 2.4", because it already has a record for webbrowser-1.0. So you have to bump your version: version: 1.0.0.1 And re-upload. And your choice is 1) do this for every package and every dependency, or 2) ignore the versioning policy, hope no dependency changes break your packages. It sucks. The general feeling I get from core Haskell developers is that they work in finance, medical, or other fields where every dependency has to undergo a four-month certification process before it can be used. So they don't care about this, because they just never see it. But for somebody who just wants to publish his stuff online and let others use it, it's a goddamn nightmare. The other day, the developer of the 'text' package bumped his version to 0.11. As far as I can tell, it doesn't actually have any significant changes. All he did was fix an obscure edge condition when a particular function is passed invalid input. Everything that could build against 0.10, will build against 0.11. Since I followed the package versioning policy, most of my packages < http://packdeps.haskellers.com/feed/?needle=John+Millikin http://packdeps.haskellers.com/feed/?needle=John+Millikin > are set to refuse his new version. It's not too bad now, but sooner or later a user will upgrade their 'text' and then try to install one of my packages and then they will email me asking me why I am so mean and restrictive. Which means sometime in the next week or to, I need to sit down for a few hours and recompile all my stuff, then bump the versions, then commit and tag and sign and push and sdist and upload. And somewhere in that hour I'm going to be thinking about just removing the bounds check, and letting my users deal with whatever hell befalls them if in three years there is a real breaking change somewhere.
- Goladus 16y ago> I'm not taking it seriously Serious enough to claim you found it "galling" and to paste a quote from Paul Graham that virtually all of us have probably read (including the author of the original post).