8 ms·
Follow-Up to "Haskell and the 'foul stench of cargo cult mathematics'"
- gregwebs 16y agolisper messes around with Haskell and feels he understands the entire Haskell community well enough to smear it. After admitting to not understanding Haskell that well he now writes a second post doing the same thing. Most haskellers that are serious about using it to create real world software don't seem to care a great deal about the mathematical side except for the occasions it is useful in their program. Haskell is about writing safe, efficient, and high level functional code. The fact that some users can tinker with the mathematical side (correctly or incorrectly) is just a bonus.
- neutronicus 16y agoIt is sort of ironic coming from a lisper - the raised hackles of comp.lang.lisp about this sort of thing are pretty legendary. I don't really want to talk about agreeing or disagreeing with the post, because if ever a discussion were going nowhere fast, that's the one.
- mycroftiv 16y agoI don't support the accusatory tone of the original post, but in view of this clarification, I believe the author does have a real point. The discipline of mathematics has a lot of prestige, especially in the programming community. By making use of mathematical concepts and vocabulary, Haskell has acquired a reputation as being particularly elegant and sharing in the conceptual beauty of very abstract mathematics. I struggle to understand category theory, and I struggle to understand Haskell, and I always assumed that my difficulty in precisely mapping concepts like monads between the two were because I just wasn't smart enough. (That is almost certainly the case regardless!) If thinking about the formal definition of monads isn't helpful when learning Haskell programming, is the use of mathematical terminology misleading?
- lincolnq 16y agoThis is an astute summary. Yes, it is misleading, but such is the way of language growth: when transferring concepts from one language to another, sometimes meaning is permanently mutated or lost. Consider French "journée" and English "journey". The English word is a direct loanword from French, but in French it means "day" or "a day's work" and in English it means "a set amount of travelling". The etymology is fairly natural, but the English word only captures a fragment of the French meaning. I think the analogy applies to monads as well: the word denotes/connotes something significantly different in Haskell than in mathematics. It's just the way it is. When learning Haskell, if you already know category theory you can use this knowledge to ease your understanding of the Haskell concept, but it's not a direct translation.
- chancho 16y agoPeople can disagree on the precise definition of terminology, which is why, in any serious discourse, you have to define things before you begin discussion. The great thing about Haskell (or any programing language) is that you really have to define things. Jargon doesn't compile. Nevermind the "real" definition of this or that esoteric concept. If you ask N category theorists you'll get N answers. Just import one that works for you and you're off. What seems to have gotten this fellow is that either the definitions in the Prelude/libraries didn't match his expectation, or (more likely) he was surprised by the inconsistencies between GHC and GHCi (which I also find annoying.)
- reikonomusha 16y ago> After admitting to not understanding Haskell that well he now writes a second post doing the same thing. Are you admitting you didn't read either posts?
- jrockway 16y agoWhat a weird article. I don't get the reason why people seem to need to find flaws in Haskell. It's a programming langauge. You type stuff into your editor, it runs, and you're happy? You are not a genius if you understand Haskell. You are not an idiot if you aren't excited by it. Why all the hate? Ruby is nice, Perl is nice, Python is nice, Haskell is nice, Lua is nice, C is nice. Computers are nice. Just have fun making things and talking to like-minded people. Whining about the numerical tower is just wasting time that you could spend enjoying your life. Let's be honest. I have been a language fanboi in the past. But really, it's not the language that's exciting, it's what you can do with it. Imagine a problem, type some words into your editor of choice, enjoy solution to problem. Repeat. That is what programming is about, not these petty flamewars. (And to be fair, I really like Haskell, and don't have the problems the author has. But even I can be swayed away from my own ignorance; I used to hate C [check my posting history!] and now I love it. I got over the superficialities and instead got excited over what I could do. I saw excellent C code in practice, like Mongrel 2, and realized that C is not a problem. Some C programmers do things I don't like, but others do amazing things. So why fight the language when I could do cool stuff other people like instead!? Why fight something that expands my mind and makes me enjoy life more!?) Let's write code, not criticism!
- moultano 16y agoI'm half convinced by your argument, but not entirely. There's a lot of unnecessary pain caused by programming languages that moving the industry forward could prevent. The goal is a useful one, I'm curious about the efficacy. Does language advocacy work? Does talking about this stuff change anything, or are we better off if pioneers just build cool things with a new language and lead by example? Have there been cases in the past where advocacy absent a project has created a community around a language?
- alnayyir 16y agoUnnecessary depends on the problem at hand. C is a lot of unnecessary pain if you're writing a web application. Implementing an embedded control system? Very necessary pain.
- 16y ago
- Locke1689 16y agoWow and I thought I was arrogant. I'm 21 and I'm sure if I came out with an article deriding the mathematics community for knowing nothing about computer science I would rightly be called an ignorant asshole. This guy's 20, probably hasn't worked on a piece of software over 100k lines of code but he knows alll about computer science and programming, right?
- jaekwon 16y agoi doubt that.
- 1337p337 16y agoThis is tangential to your point, but I don't think that experience is correctly measured by the size of the codebases of the projects you've worked on, but rather the number of serious mistakes you've made.
- Locke1689 16y agoYeah, poor example sure, but my point is that his programming experience is probably too limited to categorically denounce an entire programming language community.
- reikonomusha 16y ago
- deleted 16y ago[deleted]
- jbapple 16y ago> It is impossible to ensure that a monad within Haskell conforms to the monadic axioms (in other words, it is impossible to ensure a monad within Haskell is actually a monad). It is impossible to ensure almost anything in any programming language without dependent types or an external prover. Sometimes, programmers name things as they ought to be, not as they are guaranteed by the compiler to be. See, for instance, Hungarian notation. > Haskell’s relationship to category theory, which has been so thoroughly emphasized, has had a profound effect on the majority of the community. This is not my experience with the Haskell community. I have been writing Haskell for 7 years. > I have personally spoken with countless Haskell programmers who, either implicitly or explicitly, assert they are expert users of the language. I do not think "assert" and "implictly" go along very well together. > As a result, the community becomes inundated with programmers who make a sort of claim to understand Haskell (and, erroneously, therefore category theory). It is not my experience that the Haskell community is inundated with programmers who make a sort of claim to understand category theory. I do think the Haskell community is inundated with people who sort of claim to understand Haskell, but that seems like the definition of a PL community. > All I ask now is that you all don’t get your panties in a bundle again over this post If one uses inflammatory language like "pervert", "flagrant disregard for mathematical correctness", "I take severe offense", one should expect an equally inflammatory response.
- jpr 16y agoWhat is this I don't even?! Haskell is Haskell, math is math, category theory is category theory. They are not the same, even if they have some things in common. Deal with it.