Follow-Up to "Haskell and the 'foul stench of cargo cult mathematics'"
symbo1ics.com
symbo1ics.com
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!
C is a lot of unnecessary pain if you're writing a web application.
Implementing an embedded control system? Very necessary pain.
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.
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?
As far as the authors posts are concerned, though, it seems weirdly appropriate to quote Erik Naggum: "If this is not what you expected, please alter your expectations."
> 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?
I, the author, have worked with software over 100k lines of code (one example is Giac/Xcas). If we are going to talk about "industry code", we probably won't talk about Haskell (I am not implying it isn't or can't be used in industry, but Java/C++/etc. trump).
I am not claiming to be an expert at anything. If you believe I have made a claim, please feel free to let me know where.
Lastly, I'm not quite sure why my age matters. Perhaps I should delete it from my "about" page.
I don't think deleting the part letting people know that you don't have any experience with industry programming is going to change the fact that you don't have any industry programming experience.
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.
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.
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.
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.)
Are you admitting you didn't read either posts?
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.