
Follow-Up to "Haskell and the 'foul stench of cargo cult mathematics'" - fogus
http://symbo1ics.com/blog/?p=827
======
jrockway
What 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
I'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
Unnecessary 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.

------
jbapple
> 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.

------
Locke1689
Wow 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?

~~~
1337p337
This 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
Yeah, poor example sure, but my point is that his programming experience is
probably too limited to categorically denounce an entire programming language
community.

~~~
reikonomusha
What else do you think about my coding experience?

------
gregwebs
lisper 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.

~~~
mycroftiv
I 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?

~~~
chancho
People 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.)

------
jpr
What 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.

