Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I've heard claims that it is only so because you come from an established imperative mindset, and that it would be as easy(or difficult) for a person with no programming experience to learn Haskell as a traditional imperative language. It is an interesting point, though I've seen no actual examples that verify it.


My coauthor for http://haskellbook.com/ had never programmed before, so I have some experience teaching people Haskell that have used imperative languages and some experience teaching people that have no prior programming experience.

1. It's not a panacea

2. It's still more work overall to teach Haskell (or any language) to somebody that has never programmed before

3. It's more fun teaching them because they don't argue with you or waste time trying to apply nouns/verbs they already know to Haskell.


Here's a example from the New York Times--Haskell in the Newsroom.

Eric Hinton (whose first programming language was Haskell) gave a phenomenal talk about the cultural shift to Haskell at NYT, and the interesting ways in which they use it.

Some examples include Fashion Week image processing to analyze which colors are in style, building composite images by hue (and the massive speedups they get from parallel processing), book review analysis, high-speed video processing, and so on.

Worth checking out just to gain a newcomer's perspective to programming, what they were able to accomplish with Haskell, and how they integrated it into their existing environment.

[0] http://www.infoq.com/presentations/haskell-newsroom-nyt

EDIT: Clarity.


There is certainly some truth to this, but I don't think it captures the entire situation all that well.

Given that we're largely speaking from anecdotal evidence anyway, I'll share mine. The first non-ALGOL language I learned was Smalltalk, using Pharo. Its relative lack of syntax pretty much meant I could dive right in, with most practical programming involving the class libraries and navigating the Smalltalk environment with the integration intricacies of the binary image. I never really felt it as all that difficult though, even though imperative mindsets are allegedly supposed to make it that way.

The first functional language I learned (and the one I'm most proficient in) was Erlang. Despite being infamous for its unconventional Prolog-esque syntax, it took me only about 2-3 days to get comfortable with it and I breezed through Programming Erlang relatively quickly. I have since found it quite enjoyable to work with.

On the other hand, I never did manage to learn Haskell to any notable degree. I've always given up eventually, and haven't retried in a while. It's just a more complicated language.


I too have been trying with Haskell in the past. I don't know, maybe I'm just dumb as a box of rocks.. I found working through learning Standard ML (which consequently has lead me on poking about with F#, but that's another tale), has been a considerable help in general for the ML style languages.


I definitely agree that working with SML first can make learning Haskell a lot easier. There's a Coursera course from the University of Washington on the subject of Programming Languages, which teaches SML, Racket, and Ruby, and does a great job of helping the student adjust to the different mindsets for each language.


Bit of a late reply.. I've actually been following through the Washington University course from them directly (not via coursera). I guess it's similar if not identical as this also does SML, Racket & Ruby. Well worth the effort.


I second the recommendation of Coursera's Programming Languages! Though I must say at times I found myself cursing at ML's default strict evaluation :) I found myself writing (relatively) convoluted code that would have been cleaner in Haskell.


Thirded!




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

Search: