

My rant about Haskell - rwmj
http://rwmj.wordpress.com/2012/12/29/my-rant-about-haskell/#content

======
dons
The technical issues - to the extent they can be determined - are discussed on
[http://www.reddit.com/r/haskell/comments/15n9l4/my_rant_abou...](http://www.reddit.com/r/haskell/comments/15n9l4/my_rant_about_haskell_richard_wm_jones/)

------
mooism2
Re whitespace being significant: you can use explicit braces and semicolons
instead, certainly with let and do-notation.

~~~
habitue
Which was explicitly the reason for allowing semicolons and braces in Haskell:
autogenerating code.

I think you should need to use a language for more than a week before writing
a blog post about how much it sucks.

~~~
yoklov
Not to imply he's an expert, but author seems to have more than a week's
experience writing Haskell. He linked to a blog post[1] from 2011 about
writing the libguestfs bindings in several languages, including in Haskell.
I'm unfamiliar with the library, but some googling seemed to imply it was
>1kloc for the Haskell bindings, which probably took some time.

[1] [http://rwmj.wordpress.com/2011/09/21/which-foreign-
function-...](http://rwmj.wordpress.com/2011/09/21/which-foreign-function-
interface-is-the-best/)

~~~
rwmj
I first used Haskell in around 1995(?) as a Miranda replacement. I started the
Haskell FFI bindings in mid 2009, about 6 months after starting the libguestfs
project. At that time I made many requests for help, but didn't get any at
all.

libguestfs has 300+ API functions, and is about 500 kloc of code.

We autogenerate most of the bindings in ~ 10 programming languages using an
OCaml program [hence the large defensive comment at the top of my rant]. I'm
very happy to promote functional programming, but only where it's practical.

~~~
dons
I've commented on your post itself, but I really fail to understand this rant.
Whitespace is optional -- you must know that? And I assume you are familiar
with the FFI binding tools, such as hsc2hs or c2hs? To automate the bindings?

Or at least the Storable class for marshalling structures?

The confusion about basic language features is very disconcerting.

And the lack of technical depth to some of the points - e.g. "A lot of stuff
is simply not possible without delving into the depths of compilers." -
please, do say what is not possible using the FFI.

There are literally thousands of packages on Hackage that use the FFI
extensively, so I struggle to understand how you could not find examples of
pretty much anything you would want to do...

