* Russel Winder <rus...@winder.org.uk> [2012-04-10 21:02:03 +0100]: > On Tue, 2012-04-10 at 21:22 +0200, Gour wrote: > [...] > > In any case, as it is often said, I got a feeling that despite its > > potential cleanliness, the real-world Haskell code was not so readable. > > That probably comes down to familiarity and personal taste. > > > By deploying some coding discipline, we tend to believe that D can serve > > well as FP-language for the masses. :-) > > Hummm... the really core issue is whether the language supports tail > call optimization. Functional programming languages demand it, C, C++, > Java, Go, Python definitely don't have it, D... >
I used Haskell a bit a while back, and while I enjoyed using it, and was quite capable of writing in proper functional style, I found reasoning about the programs tedious and difficult. Due to the nature of "Everything is a function" (mostly), you end up with an incredible amount of functions for the simplest tasks. And some of the most common tasks in real-world programming, string processing and IO, are significantly more difficult in Haskell. Monads aren't a problem, the discussion of monads, by functional programmers is a problem. The moment some snobby functional programmer comes along and starts talking about category theory and some esoteric aspect of Type Algebra generalized of some field of Assholery, most people's brains turn off. It gets worse when you go: "How does this help read from a file" and they give you a long stare and start all over again, I just want to know how to read from a goddamn file! I wish I could love Haskell, and for pure computer science, it's fine, amazing even, but for real-world programming, it just doesn't cut it. The concepts are too difficult and not explained well enough, code rapidly becomes unreadable unless you maintain super-human discipline and broken code is difficult to fix. Case in point is darcs, which is a perfect application of real-word usage, and the GHC developers are complaining of it being unstable, bloated and impossible to fix, so they are moving to git (written in C no less). -- James Miller