4 ms·
I'm big into FP, but I've studied Haskell only lightly. Of all the posts I've read about Haskell, this is without doubt the most intimidating. Clearly, the OP
by sramsay 12y ago
I'm big into FP, but I've studied Haskell only lightly. Of all the posts I've read about Haskell, this is without doubt the most intimidating.
Clearly, the OP is a quite experienced, skilled programmer, and yet he's been at Haskell for years -- taking books on type theory with him to lunch -- but still struggling with the language at some level.
I believe very strongly that programming in one paradigm can really change the way you think about another (learning Lisp changed the way I program in most languages, for the better). But it really sounds as if the payoff with Haskell just isn't that profound relative to the amount of effort required (unless your real interests lie with abstract algebra or PL research or something like that).
I hope this is not coming across as flamebait. I'm not wondering whether one can profit from studying Haskell; one can presumably profit from studying just about anything in computing. But Haskell really sounds like a very long slog for a relatively small slice of cake.
- mightybyte 12y agoThe time it takes for people to learn Haskell varies greatly from person to person. Your experience might be different from that of the OP. But no matter how long it takes you, I think you'll get vastly more than a "small slice of cake".
- jdiez17 12y agoIn my experience (OP's post resonates highly with me, I've also been dabbling in Haskell for a while and consider myself somewhat competent), it's a long term investment. I've been at it on and off for a while and even though I haven't done anything "useful" with it (except Uni coursework, which I convinced my teachers to mark in Haskell), I feel like I've grown a lot as a programmer thanks to it. Understanding concepts functors, applicatives, monads, lenses etc is a reward in itself, at least to me. Sometimes I write small toy programs, like a sudoku solver, which lets me get a glimpse of the true power of languages like Haskell. But at the end of the day, I agree with the general intent of your message (and OP's post) - different programming paradigms change the way you think about programming, and generally makes you a better programmer.
- nostrademons 12y agoYou profit from learning Haskell in a way other than "I get to use Haskell to build cool things". Rather, it changes how you think about programming in other languages. If you work in Java, you'll find that you'll create a lot more immutable objects after learning Haskell, and you'll understand Java 8 streams a lot better. If you work in C++, you'll grok concepts, traits, and the STL a lot better after working with typiclasses. If you work in Go, you'll grok interfaces and use them extensively. If you work in Python, you'll depend much more heavily on list comprehensions and inner functions than on mutating objects. In most statically-typed languages, you start using Optional<T> instead of nulls, or at least a NullObject pattern. You also learn how to use the type system to tag values and prevent misuse, whereas before you might've just used Strings everywhere. This is particularly handy in C++, where the overhead of defining a new type around a single primitive is zero. I've found that helpful even though I never got to write Haskell for money and rarely write it at all now, it's changed how I program in a way that takes out a lot of the constructs that previously caused a lot of bugs & handwringing. A lot of the benefits of Haskell, you can achieve in other languages through disciplined programming.
- coolsunglasses 12y agoI've taught a lot of people Haskell, including non-programmers. After a few months of starting from nothing (zero programming experience), my main non-programmer student is now coauthoring a book on learning Haskell [1] with me. Learning Haskell doesn't have to be hard. It helps to follow a guide designed by people that have plenty of experience teaching Haskell [2]. There is an IRC channel at #haskell-beginners on Freenode. The author of the post refused to avail himself of other peoples' help, particularly via the mailing list. If you seek help you can learn Haskell and apply it to practical problems in less time than you'd think. [1]: http://haskellbook.com http://haskellbook.com [2]: https://github.com/bitemyapp/learnhaskell https://github.com/bitemyapp/learnhaskell
- ifesdjeen 12y agoThe author of the post refused to avail himself of other peoples' help Chris. Please stop following my posts around the internet and spreading lies about me. Last time we talked chat was like that: ifesdjeen: i don't want anyone to fix my problems) bitemyapp: I don't give a fuck what you want. (sic.) There were several occasions on both IRC, and Mailing Lists when people were like: x: ifesdjeen: that's all functorial ifesdjeen: functorial? x: ifesdjeen: and dont you know that Or: x: just write a function of that type for fmap x: thats YOUR problem now isnt it Yes, I didn't know what functorial is. And yes, it happened more than once. Please, stop spreading these lies. I have explained you more than once that I'm not posting things to Haskell Mailing List and try avoiding asking questions on IRC due to 2 reasons: 1. When I have a more complicated question (such as thunk leak detection, monadic order traversal, implementing StateT instances to allow state to be handled transparently in concurrent apps), these questions take more than 2 minutes to answer. And both you and other people couldn't answer them (see your email from several month from now). And I do not blame you or them for that. 2. When a beginner comes with a simple question, he gets based by "experts" So there are no questions you can ask and be happy: hard ones get ignored (by everyone including you). And easy ones make (some) "experts" talk with condescending tone. Yesterday, 5 people wrote me a DM saying that I should ignore you, because your behaviour has been known to be offensive and bad even since the days you've been doing Clojure. As for everyone else, please don't get offended if anyone happens to say you something condescending or offensive on IRC or Mailing List. People are people. But it doesn't mean you _have_ to keep posting your questions if you don't feel sure you're welcomed there. p.s. it's also not like Chris is hearing this for the first time. I've said same thing on Twitter and on lobste.rs: https://lobste.rs/s/hmmqkp/alex_p_s_blog_language_is_not_important/comments/10vvg4#c_10vvg4 https://lobste.rs/s/hmmqkp/alex_p_s_blog_language_is_not_imp...
- bstpierre 12y agoI spent a little time with Haskell and gave up because progress was slow. Later I picked up Ocaml and found many of the concepts to be similar but had a much easier time making progress. Having used Ocaml to familiarize myself with strongly typed FP, I think it wouldn't be so hard now to go back to Haskell and have more success. If you decide to give it a try, I highly recommend Real World Ocaml [1] as a starting point, especially the installation instructions that help you get up and running with a sane toolchain right away [2]. [1]: http://realworldocaml.org/ http://realworldocaml.org/ [2]: https://github.com/realworldocaml/book/wiki/Installation-Instructions https://github.com/realworldocaml/book/wiki/Installation-Ins...
- sramsay 12y agoThis sounds great. I've starting looking at the CIS 194 lectures, though, and so far not a single example works in ghci. Googling around indicates that you need to use 'let' or define things in a module and load them . . . Is this tutorial already out of date?