POV-Ray : Newsgroups : povray.off-topic : Questionable reasoning : Questionable reasoning Server Time
6 Sep 2024 11:18:08 EDT (-0400)
  Questionable reasoning  
From: Orchid XP v8
Date: 15 Jan 2009 15:51:05
Message: <496fa1b9@news.povray.org>
http://cdsmith.wordpress.com/2007/07/29/37-reasons-to-love-haskell-playing-off-the-ruby-article/

You don't really need to even click that, do you?

Well, maybe you do... Basically there's a "37 reasons to love Ruby" 
article, so this guy did a copy for Haskell. While I applaud this, some 
of the "facts" are rather dubious...

#3. "It's dynamic. Lots of Haskell applications feature dynamic code 
loading." Er, yeah... if you have the damned compiler installed! What 
you *can't* do is compile a module and then dynamically link it in 
later. You *must* have the actual compiler available. And it's _very_ 
hackish and awkward to get it to work. It's not a compiler feature, it's 
a low-level C library that somebody hacked together which sort-of works. 
It's a nightmare to use it though!

#6. "It's multi-platform." Yeah, but unfortunately the Windows version 
is running under Cygwin using the GNU toolchain (e.g., GCC, GAS, LD), 
and almost all libraries involving binding to a C library spectacularly 
fail to compile on Windows. All the APIs are fairly POSIX-centric so you 
generally can't access Windows-specific functionallity. And so forth.

#8. "It's innovative." Well, perhaps. I love the way he cites a whole 
bunch of features and "these are rare in other languages". Er, but *all* 
the features you cited are features of the type checker! :-P (Why not 
mention, say, concurrency and parallelism?)

#10. "It has a smart GC." Er... looks pretty primitive compared to 
Smalltalk, actually.

#11. "It's a scripting language." You have *got* to be kidding me! Sure, 
many things in Haskell are one-liners. But typically anything that 
involves talking to the outside world has lots of small but fiddly 
details that take heaps of code to sort out. Hardly a nimble scripting 
language!

#15. "It's intuitive." Hahahaha... nice! (The argument does kinda make 
sense - the learning curve is steep because you really do have to learn 
new stuff, not just new syntax for doing the same old thing. And the 
Haskell syntax is as intuitive as it can be considering that. But 
still... stretching it a little, eh?)

#16. "It handles exceptions well." You... have... GOT to be kidding me! 
If you try to read a non-existent directory, there is *no way* to 
distinguish from a "this filename is invalid" error and a "this file 
doesn't exist" error and a "there was a hardware error" error. (You 
*can* at least distinguish "access denied".) Asynchronus errors are a 
nightmare with lazy evaluation too!

#17. "It has advanced array types." Ha...haha...hahahaha! You've got to 
be kidding me! The API is *horrid*! There is mile after mile of 
functionallity missing. And there are all kinds of inconsistencies in 
function names, etc.

#25. "It pays attention to details." I can't even determine what the 
hell he's talking about here...

#27. "It has a rich set of libraries." Oh come *on*!! You cannot be 
serious! That ball was on the line! Er, I mean... Haskell lacks 
libraries for just above every possible task you can name! Want to read 
a GIF file? Sorry, can't do that. Want to send a PGP-encrypted email? 
Sorry, no SMTP support, no PGP support. Want to compute a CRC32 
checksum? Sorry, no library for that. Want to play an AVI animation? 
Guess what? No library.

But best of all: What libraries do exist do *not* work on Windows. Ever. 
There are 12 database libraries, and none of them compile on Windows. 
There's a wxWidgets library - doesn't run on Windows (in spite of the 
special Windows-specific setup routine). There's a libSDL library... can 
you guess? Doesn't work on Windows.

Haskell - Great language, just don't try to communicate with anything.

#28. "It has a debugger." Finally. It took long enough. And it's a **** 
to use.



Overall though, I still thing Haskell is a great language. But then we 
have this:

http://intoverflow.wordpress.com/2009/01/13/why-haskell-is-beyond-ready-for-prime-time/

Reading this, you'd think Haskell has the most awsome tools EVER! Sadly, 
it's not true...

"Availability of quality libraries"

Only on Linux. And even then with huge gaps. And the overwhelming 
majority of libraries were once somebody's one-man project, and lay 
long-forgetted. And most of them utterly lack any documentation at all. 
Oh, and Hackage is really quite clunky to use.

"Project Management"

Setting Haddoc up in such a way that it works properly is seriously 
hard. (OTOH, it now comes with the compiler, which should radically 
improve this!)

GHC is "the most advanced compiler anywhere", is it? Sure, I'm 
enthusiastic about it, but this seems over the top to me.

(E.g., you can't compile different parts of the same program with 
different versions of the compiler. Therefore *all* libraries must be 
shipped in source-code form because the compiled versions only work with 
one release of the compiler. Not so "advanced" now, eh?)

"Technology"

"[Haskell] stands alone in its simultaneous support for many language 

another 10 years."


better support for concurrency than any other language[...]"

Wow, calm down there partner! Let's not get carried away here. Haskell 
is an impressive language, but I'm sure somewhere there's something that 
beats it in functionallity terms.

"To get a sense for how wildly amazing Haskell-related technology, check 




Except that it doesn't work. Nice try though...

"Community"

"Lastly we come to one of the most special features that Haskell offers: 
its unique developer community."

I really can't comprehend where this myth that Haskell has a great 
community keeps comming from. It isn't true!

If you ask an easy question, you will get 200 replies before you can hit 
the send/receive button. If you ask a hard question, or a less 
interesting one, you get silence. And if you *dare* to suggest that 
calling something an epimorphism is a bad idea, you'll get flamed off 
the planet!

Sure, generally the people are quite friendly. This is hardly unique to 
Haskell though. The POV-Ray community has always been quite friendly, 
but you don't find them calling themselves "unique".



very special. Every day there are new developments in the community that 
push the boundaries of technology, enabling people to write 
sophisticated programs in less time and with greater reliability. There 

have somehow been gifted to us today."

Again, I don't think Haskell has ever done anything that can be called 
truly "ground-breaking". If anybody knows different, let me know...

- We didn't invent pure-functional proramming with lazy evaluation and 
automatic type inference. (Indeed, Haskell was designed because there 
were already *too many* such languages, and they wanted to replace them 
all with just one.)

- We didn't invent curried functions, high-order functions, maps and 
folds, and all the other high-tech stuff that abounds in Haskell. This 
stuff appears in any half-decent functional language. (E.g., I imagine 
Lisp probably did it years before us.)

- We didn't invent algebraic datatypes. Those existed for decades before 
us. (Although they're fairly rare in real programming languages.)

- We didn't invent type classes. It's an unusual feature, but it was 
around long before Haskell.

- We didn't invent monads either. We borrowed them from category theory.

- We certainly didn't invent parallelism annotations. (As I understand 
it, even languages as backward and retarded as C have those now.)

- We didn't invent Software Transactional Memory either. That was an 
idea that researchers thought was cool, and it eventually got borrowed 
by Haskell.

- We didn't invent Nested Data Parallelism - that's another exciting 
research project somebody else did years ago that recently got 
integrated into Haskell.

Indeed, I'm having trouble finding anything that Haskell itself actually 
created or perfected. Arguably we have the best G-machine 
implementation, but all that means is we have a compiler that produces 
fast code. It's not a language feature.


Even more amusing are some of the comments:

- There's no IDE for Haskell, but "I don't think an IDE is really 
necessary". Well *sure* you don't. Because you haven't got one yet! :-P

- Some guy rightly complained that you can't [easily] define two 
datatypes which have fields with the same name. This is obviously a 
pretty silly limitation. I love the reply "but that's good though". Uh, 
yeah, lotta logic there.

- Most significantly: "Haskell will be 'ready' for 'the real world' when 
we start seeing real, large-scale applications written with it. Until 
then, nobody is going to care." I think this just about sums it up, 
really...

-- 
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.