Hacker News new | ask | show | jobs
by rebeccaskinner 1301 days ago
You're looking at this the wrong way. The paper isn't showing Haskell is gnarly for a basic problem, it's using a basic problem to demonstrate a particular technique that you can use in Haskell. There are plenty of simpler ways to implement this kind of thing in Haskell, and even some that are both simpler and show off some of the more unique features of Haskell. The goal here wasn't "let's find the best way to write fizzbuzz in Haskell", it was "let's show off how to build an interpreter to solve problems, using a small problem everyone is familiar with".

Haskell isn't ill-suited for something like fizzbuzz at all, it's just _also_ suited for things like quickly writing interpreters and solving problems that way when it makes sense.

1 comments

I find a lot of people don't get pedagogy. They want immediate, authoritative statements on what is good or bad. Haskell isn't really about that. It's about the 10s of equivalent ways to solve every simple problem. That's what makes it fun. And fun is Haskell's secret sauce.
Case in point: it can prompt people to gush about a fizzbuzz implementation.
"10s of equivalent ways to solve every simple problem."

Why doesn't C#, Java, etc have the same problem with perception because they have the same "many ways" to solve problems.

"fun"

brainfuck is fun too and no one uses it.

Because C#, Java, etc are more familiar to most people. People tend to struggle with unfamiliar things.

Haskell is simple even if unfamiliar to you. Brainfuck is complex even if familiar to you.

> Haskell is simple even if unfamiliar to you. Brainfuck is complex even if familiar to you.

I would actually swap these two descriptions. Haskell is complex, because it has many "complications" (in the sense of features). But those complications permit simple programs. Brainfuck is simple, it has few complications (only 8 instructions) but this forces complications into the programs written in it.

Simplicity is not merely measured in the "number of things" you have, it's contextual. Otherwise we'd all be writing in binary representations because base two is the simplest way to communicate information.

Simplicity is also "how many things" it takes to express an idea or do a useful thing.

In many ways, written Chinese is simpler than written English.

We seem to be in violent agreement.