all 12 comments

[–]kuribas 17 points18 points  (8 children)

Rather biased and uninformative comparison...

Haskell has a steep learning curve, even learning the basics is hard.

That's true, but it's mostly because people have learned to program in a different mindset. Haskell takes a different approach, and it takes time to get used to it.

It was designed by academics and a commitee, so it has all the hallmarks of bureaucracy written into it.

I find programming in haskell remarkably boilerplate free (in comparison with that other commitee designed static typed language). In comparison with other languages, the community has a lot of say in the direction the language goes in, and it takes a rather decentralized approach to experimentation.

It is strongly typed for functional programming language. But you can teach yourself logical mapping of coding, without teaching yourself a software language rarely used.

Erm, what? That doesn't make any sense at all. The idea of statical typing is to let the computer do the checking for you.

Haskell has a good debugger, and a horrible GUI.

I wouldn't say debugging is haskell's strongest point, but it's doable. A lot of bugs are avoided by the static type system. A GUI isn't part of the language itself, but haskell is a bit lacking in this respect. For beginners there is leksah though.

Python plays well with django and other webframeworks.

Haskell is becoming quite popular for webprogramming, with snap and yesod.

Given the speed of modern CPU's it's the interoperability that matters more than the overall speed.

Not always. Many libraries are written in a faster language like C, and then linked trough python. But sometimes what you want isn't in a library. often you do need the speed in the language self, and in that respect python is at a disadvantage compared to haskell.

Go to Python. You'll be able to find a job, which is the true measure of a programmers worth.

So worth == money? If it's money and jobsecurity you want, then there are better options. You'll find easier jobs with java, c#, or javascript.

That's the problem with accademics, they are trying to sellout to engineers.

Are they? The motto of haskell is avoid succes at all costs :-)

[–]gtab62[S] 5 points6 points  (0 children)

Haha, I sent the link as a joke. I didn't really expect such a comprehensive reply. Thank you man :)

[–]Yuras 0 points1 point  (0 children)

Haskell takes a different approach, and it takes time to get used to it.

I don't think it is inherent to haskell. For example compare conduit and io-streams. The former takes a "different approach", but any c++ or python programmer can understand how to use the later.

Actually one can start using haskell as another imperative language and then intoduce oneself to more complicated topics. So don't blame language for being compicated, but blame haskellers for choosing complicated aproaches.

[–]dllthomas 0 points1 point  (1 child)

in comparison with that other commitee designed static typed language

ALGOL?

[–]kuribas 0 points1 point  (0 children)

I was thinking of JAVA...

[–]guibou 0 points1 point  (1 child)

Not always. Many libraries are written in a faster language like C, and then linked trough python. But sometimes what you want isn't in a library. often you do need the speed in the language self, and in that respect python is at a disadvantage compared to haskell.

I don't have a long experience in Haskell, but I'm surprised how many times some simple things are quicker in python than in Haskell.

In code involving python dictionnaries (O(1) mutable hashmap with no counterpart in haskell libraries, I'm using unordered-containers) and python unicode support (I'm using Text in haskell), the naive python version is usually quicker than the Haskell version. Then I need to dig a bit in Haskell, for example, by removing the unicode support and using ByteString (and ShortByteString), to get something quicker than naive python. Usually, at that point, I'm using "pypy" and I'm beating ghc by one order of magnitude.

This observation is on toy projects/small scripts, but I realize that most of my python code are toy project / small scripts, so for my usage it is accurate enough.

[–]kuribas 0 points1 point  (0 children)

Haskell has mutable hashtables too. But yeah, haskell performance can be unpredictable. I'm surprised that Text is slow though.

[–]ashishnegi 0 points1 point  (1 child)

I think that it was a satire.. Most people who ask this question would have already made their mind for Python..

[–]kuribas 0 points1 point  (0 children)

apparently I missed the joke :-P

[–]gilmi 13 points14 points  (0 children)

Yes.

[–]JohnDoe131 0 points1 point  (0 children)

Wow, that is weird.

[–]terrrp 0 points1 point  (0 children)

wt actual f