5 ms·
140 points? Really? I know it's fashionable in these parts to make fun of Haskell, but it's just not funny unless the writer knows something about the language
by jmillikin 16y ago
140 points? Really?
I know it's fashionable in these parts to make fun of Haskell, but it's just not funny unless the writer knows something about the language. Would you upvote these articles?
* Why C++ is More Object-Oriented Than Smalltalk
* Stupid Ivory-Tower Academics Claim "Perl Is Too Slow for Weather Simulation"
* LISP: It Would Be a Lot More Useful Without All the Parentheses
It's especially galling considering pg's various articles on language expressiveness; remember this quote, folks?
"""As long as our hypothetical Blub programmer is looking down the power continuum, he knows he's looking down. Languages less powerful than Blub are obviously less powerful, because they're missing some feature he's used to. But when our hypothetical Blub programmer looks in the other direction, up the power continuum, he doesn't realize he's looking up. What he sees are merely weird languages. He probably considers them about equivalent in power to Blub, but with all this other hairy stuff thrown in as well. Blub is good enough for him, because he thinks in Blub."""
When somebody tosses around phrases like how to subvert Haskell's type system to accomplish basic shit you can do in other languages, it's a big red flag that they've never used Haskell, and possibly have never even seen Haskell code.
- pavelludiq 16y agoI 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.
- JoachimSchipper 16y agoThere have been "alternate syntax for Lisp" articles on the front page of HN, at least...
- revorad 16y agoHaskell researcher Javier Escuella remains hopeful that one day they may be able to double or even triple the number of industry programmers who give a shit about Haskell. Wow, even Javier wouldn't have guessed the number would double so soon!
- aplusbi 16y agoHaskell is listed under Steve's "Favorite Languages", along with OCaml, Clojure, Common Lisp ans Scheme. I don't think Steve is trying to make fun of Haskell so much as the idea of Haskell.
- raganwald 16y agoI think it's great that you've tried to provide a review criticizing this post. But please resist the urge to tell me what I ought to find funny, just as I have resisted the urge to tell you what you ought to find interesting. Especially resist the urge to criticize others for liking things you find unworthy. Your comment's criticism of the OP is appreciated. Your comment's criticism of other members for voting for the post is, well, something else entirely.
- jmillikin 16y agoSurely there are better places to post funny but thought-free links than Hacker News?
- raganwald 16y agoPrivately, I agree with you and I haven't upvoted it. After that, I suggest that our options are to (1) Flag it if it's really off topic, and/or (2) Criticize it, which I think you've done well. My only concern is whether we should (3) be galled or outraged that others have their own idea of what ought to be #1 on HN. I like humour, and it seems like we share a personal preference for the kind that makes you laugh and then think hard when you realize that there's something incredibly insightful at the heart of the joke. Alas, I'm not skilled enough to pull that off myself. All I can say about Haskell is to quote Alan Perlis: A language that does not change the way you think about programming is not worth learning. And given that, the sad observation that most "Industry Types" as stereotyped in the OP are not interested in changing the way they think about anything. It's more than a Blub thing, it's a comfort zone thing.
- bpyne 16y agoI think comfort zone plays a part in IT developers seeming uninterested in "new" ideas. Closer to the heart of the problem IMO is that most business applications are just not very interesting. You can reduce them to: take input values from screen, run SQL query, and post query results back to the screen. Writing good SQL is the most challenging part. In order for apps to be more interesting - making new ideas in IT appealing - businesses must be willing to re-examine their processes and change them with an eye towards better automation and some business intelligence. However, getting a single department in a business to change its processes is as monumental as changing global warming. Of course, another issue altogether is COTS reducing the applications actually written in-house. Making intellectual investments in powerful programming languages is just not sound when a developer is simply writing "glue" code between vendor systems. People do generally get jazzed up in IT departments when new technologies come around. Sure, there are technological curmudgeons, but very few. Enthusiasm gets dampened when it is clear that a good business case cannot be made for the new technology. (I used "new" relative to an IT department's current environment and not in reference to age of the technology.)
- chollida1 16y ago> 140 points? Really? I think some of these votes are purely because the author is a very recognizable name who hasn't blogged in a while. I for one broke out into a smile when I saw a new yegge blog post.
- xi 16y agoWhen somebody tosses around phrases like how to subvert Haskell's type system to accomplish basic shit you can do in other languages, it's a big red flag that they've never used Haskell, and possibly have never even seen Haskell code. IMO, it proves exactly the opposite; a person could never say it unless they at least tried to write some Haskell code.
- jmillikin 16y agoSubverting the type system is roughly equivalent to embedding assembly in C; possibly useful for very special cases, but almost never done otherwise. It's certainly not required to do anything commonplace.
- xi 16y agoI disagree. For instance, debug printing is a very common pattern in many languages.
- jmillikin 16y agoYou don't need to subvert the type system to debug print; simply use 'print', 'printStrLn', or for something truly complex, WriterT. Debug.Trace is available as a last resort, but in roughly a year and a half of writing Haskell code, I can count how many times I've needed it on one hand.
- xi 16y agoYou can't inject 'print' or 'printStrLn' into a random function, which is the point of debug printing. And using 'Debug.Trace' qualifies perfectly as subverting Haskell's type system.
- jmillikin 16y agoI'm not arguing that 'trace' is subversive, rather, most of the time it's simply not necessary (or useful). Haskell's not like other languages, where you have to build up massive unreadable piles of code to get anything done. It's easier to write properly, with small functions glued together; and when you've done that, debugging is a matter of either simply reading the code, or running it in GHCI (and then reading it). Import your function, pass it input, see what comes out; when it's wrong, you know what the problem is. Debugging with prints is for stuff that isn't pure, behavior that is outside the Haskell runtime system and thus can't be reasoned about. Which means you're using IO, which means you can take advantage of 'print' or whatever.
- statictype 16y agoWhen somebody tosses around phrases like how to subvert Haskell's type system to accomplish basic shit you can do in other languages, it's a big red flag that they've never used Haskell, and possibly have never even seen Haskell code. Well, actually, unless you've tried using Haskell you probably don't realize the it has a type system completely different from 'other languages'. About Blub: That's a stick you can use to beat anybody who criticizes any other language. Oh, you don't think Brainfuck has anything to offer? Hah! Go read pg's essay on blub!
- jmillikin 16y agoWell, actually, unless you've tried using Haskell you probably don't realize the it has a type system completely different from 'other languages'. Really? Before I started using it, the only things I knew about Haskell were 1) it has a weird type system 2) it uses something called 'monads' and 3) doing IO is really really hard. #3 turned out to be false, #2 was true but not as scary as the hype, and #1 was true. It's not surprising that non-users know about the "odd" type system; types are one of the few ways arbitrary languages can be compared, so I know the type systems of many languages I've never so much as written Hello World in. About Blub: That's a stick you can use to beat anybody who criticizes any other language. Not so; one can use it to criticize anybody who claims a language is bad because it is more expressive than usual. For example, there are languages with more expressive type systems than even Haskell; if a programmer used to such language called Haskell inexpressive, it wouldn't make any sense to argue against them with Blub (regardless of whether he's correct).
- eru 16y ago> completely different from 'other languages'. It's not too different from OCaml or Clean. (Though, I do miss type classes in them.)
- kwantam 16y agoAlso, Standard ML. I learned Standard ML and created a couple toy systems in it before becoming utterly frustrated with the insane state of the "standard" library[1] and fleeing to Haskell. I briefly considered OCaml, but of the MLish languages it seemed to me that OCaml had the ugliest syntax, so I chose Haskell instead. Dumb reason to choose a language, probably, but I absolutely adore Haskell. ...and I have spent an entire weekend trying to figure out how to describe within Haskell's type system something that is trivial in scheme[2] ! [1] In particular, there's a lot that's not in the SML spec that most people want in a stdlib, and every compiler's implementation is quite different. This means once you decide to use SML/NJ, if someone else has written a library you need, but for MLton, you're just up the creek. Perhaps this also happens with resp. GHC and Hugs, but I haven't found it to be nearly as much of a problem. [2] If you care: can I create a function that takes as its arguments another function and a list, and applies the elements of the list as arguments to the function? E.g., listApply (+) [1,2] should return 3. In scheme, assuming that you already have curried functions, this is trivial. In Haskell, it's exceedingly difficult. Consider: the approach in scheme, iterative partial applications, absolutely won't work in Haskell, since the types won't match: (+) has type (Num t) => t -> t -> t, but (+1) is (Num t) => t -> t. It turns out it's possible either with explicit isorecursive types (and some lifting functions) or using Template Haskell. For posterity, I posted both solutions on this old StackOverflow question I found when looking at how others had handled the same problem (viz., they hadn't, generally): http://stackoverflow.com/questions/3775446/passing-list-elements-as-parameters-to-curried-function/4241972#4241972 http://stackoverflow.com/questions/3775446/passing-list-elem...
- j_baker 16y agoActually, I probably would upvote those. I don't see the target of this post being Haskell itself. I see it as being the Haskell community. I see the thesis as being that Haskell has an undeservedly bad reputation and that its community doesn't really do anything to help by being elitist and disconnected from industry.
- dkarl 16y agoActually, I saw their concern for industry being the target of the humor. Haskell is what it is; for the Haskell community to worry about industrial relevance is a funny, un-self-aware and touchingly pathetic "me too" reflex, like Bill Gates worrying about his pick-up skills or Bill Clinton wondering if his wife trusts him around other women. (Sorry if that sounds overly political. I'm not a Bill Clinton hater or even disliker, but it's a perfect example and I just can't resist.)
- aaronbrethorst 16y agoThe BillG pick up reference is probably a bit obtuse to anyone who hasn't read Accidental Empires... :)
- eru 16y agoI've been to some events of the Haskell community and hang out on the Haskll cafe mailing list. They don't seem elitist to me, and are quite fond of connections to industry. Where do you get those notions?
- Homunculiheaded 16y agoWhile I don't use Haskell that often to solve problems, I have a lot of interest in the language. I've given talks on why Haskell is important to groups of very average, very 'real world' programmers and it is precisely because of that that I found this piece hilarious. This isn't mean spirited attack on the language, it's making fun of the condition of being a Haskell evangelist more than anything else.
- seasoup 16y agoArticles fake, jmillikins comment only has 24 points right now, not 38.
- cdavid 16y agoA few years ago (when Steve was still @ amazon), ocaml was one of his favorite language, and AFAIK, ocaml and haskell are the two most proeminent languages with a powerful type system. I think it is fair to say he has at least some vague idea of what he is talking about, even though it seems that in the recent years he was more enclined to go the dynamic typing route (again, only judging from his blog)
- brown9-2 16y agoThis is HN, we love Steve Yegge.
- ecuzzillo 16y agoWould you rather read another rallying cry about WikiLeaks?
- Goladus 16y agoYour response is predictable and completely devoid of new ideas in addition to not being funny. I don't think it was even worth 4 but you've got over 30. Whatever. That's the way the system works. The three sample article titles you offer are not even analogous to the original post. Yegge's title is a humorous re-working of the phrase "nobody gives a shit about Haskell," the subject of the article. Your suggestions are analogous to half-assed critiques of the language itself. And again, they weren't funny. For example, instead of "LISP: It Would Be a Lot More Useful Without All the Parentheses" try something like: * Scheme is an exotic sports car. Fast. Manual transmission. No radio. * Emacs Lisp is a 1984 Subaru GL 4WD: "the car that's always in front of you." * Common Lisp is Howl's Moving Castle. http://steve-yegge.blogspot.com/2008/11/ejacs-javascript-interpreter-for-emacs.html http://steve-yegge.blogspot.com/2008/11/ejacs-javascript-int...
- jmillikin 16y agoMy response was not supposed to be funny; it's a critique of an uninformed article. None of your title suggestions match mine, because yours are true. Scheme is simple and no-frills; elisp is outdated and utilitarian. Common Lisp is...well, it's not Japanese, so he's lost me there. But implying that Haskell is unsuited or unused for industrial purposes is absurd; most major Haskell libraries are written for companies, the main compilers are developed by companies, most papers are about solving some particular industrial problem, etc. Yegge's article might as well be about how nobody uses Erlang or Forth, it would make equally little sense. Hell, the industry Yegge specifically calls out (finance) is known to use Haskell more than usual; Barclays, Deutsche Bank, Bank of America, and Credit Suisse especially. Barclays even released a paper detailing their experiences!
- gphil 16y agoI think you're taking the article way too literally, especially considering who the author is (almost all of Yegge's rants are sarcastic or contain large amounts of sarcasm.) The dig isn't on Haskell, it's more on "industry" if anything. I read it as more a satirical lamentation regarding the relatively low adoption of Haskell outside of academic-leaning circles. I, for one, upvoted the article and think that the upvotes are justified. I felt that the article held literary value and espoused an interesting and humorous (if a bit brash) take on this situation. If you google around, it would seem that most professional Haskell programmers are PhD holders, and I think the point he is trying to convey is that this is a somewhat unfortunate situation given the power and potential of the language.