Hacker News new | past | comments | ask | show | jobs | submit login

Since you asked: I have never tried Erlang because I've heard it's like Haskell but harder to learn, and Haskell already breaks my feeble mind, so I have steered clear. This may or may not be an accurate picture, but it was my decision-making process. I have no programming problems that make me think learning a whole new language would be worth it (on top of my existng stack of 10 or so).



Erlang is much easier than Haskell. Erlang is a pretty good gateway into Haskell, too; if you know Erlang, you have fewer things in Haskell throwing you for a loop. It's the road I travelled, and Haskell is certainly easier to use when you've already gotten immutability, and writing useful programs with immutability, already nailed down, so you're just learning the things specific to Haskell rather than trying to swallow an entire major new paradigm at once.


I don't understand how Erlang could be "like Haskell" other than the fact that they could both be considered "functional." When I think of Haskell, I think of it's type system, and Erlang's type system is feeble compared to Haskell's.


Erlang is much easier than Haskell. Haskell breaks my mind, but Erlang is easy-peasy.


I have picked up my copy of "Real World Haskell" (Bryan O'Sullivan et.al) about three times; each time ended up nearly starting over and each time making it about ten pages or so more in, (i guess it's a recursive language at several levels). It's a fascinating approach, but egads, it requires a thousand fold more effort to get into than any other language i've learned. somewhere between the monads and the syntax..[hollywood car explosion]

somehow Haskell makes me feel bad about myself; like an ultra strict grade school teacher.


I like Real World Haskell a lot. The chapters on how to do real work like parsing audio files was fascinating to me. Too many functional language books seem to get hung up on the mechanisms like partials and reducing, but not on how I should use them with stateful tasks.


I've read both Real World Haskell and Learn You a Haskell. Read Learn You a Haskell, I suspect you'll like it much better.


I'm always baffled by these kinds of statements. I learned ocaml first, so haskell wasn't too big a leap for me. But I did get to watch my wife go through the process of learning haskell, and she didn't have any more problems than learning any other language.

My wife is a web designer. She has no interest in programming. She taught herself PHP and javascript because she needed to use them. When she finally got to the point where she couldn't tolerate PHP's shittiness anymore, she asked me what she should use instead. I said "scala is a good choice, or you could just skip a step and go straight to haskell". She tried both, decided on haskell because she didn't like lift or play, and proceeded to teach herself haskell. She has never read real world haskell, or even learn you a haskell. I just asked her what a monad is: "Beats me, just use do and the arrow things". She's already finished two big websites written in haskell. This idea that you need to be a compsci phd or something to use haskell is simply not reality.


I would like to see these 2 big sites that your wife has single handedly done in Haskell with a "just use do and the arrow things" understanding.


> This idea that you need to be a compsci phd or something to use haskell is simply not reality.

The fact that there is so much maths talk surrounding Haskell really doesn't help. And I've watched many, many discussions about Haskell go into deep arguments about category theory. I want to write a program, not write a computer science paper.


>The fact that there is so much maths talk surrounding Haskell really doesn't help

Nor does it hurt. It only provides something for people to point to while they say "look, people are talking about something I am not interested in, therefore haskell is too hard and I shouldn't bother trying".

>And I've watched many, many discussions about Haskell go into deep arguments about category theory

You are not required to participate in any discussions you don't want to participate in.

>I want to write a program

So do it? The whole point of my post is that it is perfectly simple to do so. If a non-programmer can teach herself haskell and be productive with it, there's no reason a programmer can't.


> So do it?

A huge part of a programming language is, in fact, its community. I'd say that's more important than the language itself; any given feature can and will be replicated, but the community cannot be.

I cannot get the maximum out of Haskell if I cannot get involved in its community, which is heavily CS-oriented.


Have you interacted with the Haskell community? The Haskell community is made up of individuals who come to Haskell from a variety of different backgrounds. Yes there are a lot of Computer Scientists using Haskell, but not all of us are programming languages PhDs. There are people who are interested in designing hardware and build HDLs in Haskell. There are others who use it for its correctness and performance characteristics when building large scale systems. Some are just doing web development. The community is probably one of the most helpful and friendly as well. The people in the IRC channel are always ready to help and encourage new comers with resources and advice. I have had a much better experience in #haskell them I ever had in #ruby, and usually the explanations are correct and clear.


It's unclear to me whether you want "to write a program" or to "get the maximum out of Haskell". Those are two very different goals.


The thing is, I can write a program in any language. The reason for learning a new language would be to learn a new way of thinking, to "get the maximum out of it". If I can't get involved in its community, I can't do that properly.


If you don't want to learn haskell then don't. It is the weird insistence on making up ridiculous excuses that I have a problem with. Making up a strawman version of "the haskell community" is entirely unnecessary. Once again, a web designer with no CS education of any sort can do it without any problems at all. Your excuse is obviously baloney.


Yes, but newcomers don't know that. First thing they see is old school algol-like spaghetti. :) Haskell looks much nicer.


what does this nicer non-spaghetti do?

chunkWith :: ([a] -> ([a], [a])) -> [a] -> [[a]]

chunkWith _ [] = []

chunkWith f xs = let (h, t) = f xs in h : chunkWith f t

i'm sure that many here merely glance at that and understand it immediately. but as i typed above, it somehow makes me feel bad about my own stupidity. (no need for anyone to explain specifically what this tiny example does, (i actually happen to understand this one). the goal here is to admire the immediate obviousness of the syntax ;))


Have you tried learning Haskell with http://learnyouahaskell.com ? It always saddens me when people think their mind is too "feeble" for learning something, whatever it may be, because in most cases it isn't!


There is of course the equivalent in erlang

http://learnyousomeerlang.com/


I found Erlang a lot easier to learn than Haskell. I don't really find them to be very similar, especially because they have a completely different evaluation strategy. The syntax and semantics are also quite different. Specifically, Haskell's non-strict (lazy) evaluation turns everything inside out so you tend to write many things in a different way than you would in Erlang.





Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: