5 ms·
>Personally, I see Haskell as the C++ of functional language You should try it some day, it is absolutely nothing like your misconceptions.
by asdasf 13y ago
>Personally, I see Haskell as the C++ of functional language
You should try it some day, it is absolutely nothing like your misconceptions.
- dded 13y agoHaskell is a relatively difficult language to try. Introductions and books almost seem to expect you to understand the syntax when you begin. And I/O is introduced late, which makes it hard to play around with.
- nbouscal 13y agoLearn You a Haskell is an excellent introductory text and I see no way in which it "expect[s] you to understand the syntax when you begin." It walks you through things very explicitly. Yes, IO is introduced late, but it is not necessary for playing around with the language. IO is only necessary for play in languages that don't have a REPL.
- asdasf 13y agoI think you are forgetting that everyone who uses haskell has obviously gone through the trying it stage. It is not that hard, I did it. I just had a couple of PHP programmers do it without any problems. LYAH assumes you know very little, and explains things very simply. It gets to IO plenty quick enough, and before that it is showing you how to play around in ghci where you don't need to care about IO.
- CJefferson 13y agoI have written quite a bit of Haskell, I'm not sure what you think is wrong with my belief. Also, I like C++ :) Both are fairly big complex languages with horrible error messages, horrible compile times (if you use template haskell in particular), with a whole bunch of gotchas you have to learn to get good performance (the haskell gotchas are very different, and often based around lazy evaluation / memory bloat). Both have sharp edges that come from being old languages which have evolved over time. However, both languages are good in practice for actually getting things done.
- asdasf 13y ago>I have written quite a bit of Haskell That is a very common claim from people posting misconceptions that could only arise from second-hand info and a lack of direct experience. I have a very hard time believing it given that you claim haskell is large and complex. >Also, I like C++ :) I won't hold that against you. >what you think is wrong with my belief Well, everything you just mentioned except the horrible compile times. Haskell is a relatively small language, and is not complex at all. In fact it is quite simple, and very consistent. I don't know what you mean about horrible error messages, and you do not need to learn any gotchas to get good performance. What you need to learn is very simple, very clearly spelled out in the docs, and is no more than you need to learn in any other language. Avoiding unnecessary laziness is no more difficult than avoiding unnecessary strictness. I can't think of a single "sharp edge" haskell has, I suspect we must have different ideas of what a sharp edge is.
- CJefferson 13y ago> That is a very common claim from people posting misconceptions that could only arise from second-hand info and a lack of direct experience. Do you think that I, and an apparently large number of other people on the internet, spend our time insulting Haskell without having used it? That some great anti-Haskell conspiracy is being waged by evil groups unknown? I haven't written large enough Haskell programs to have performance problems myself, but I work with people who have. People who have to keep an empty monad around because removing it doubles the run-time of the program, and make substansal changes to get programs into an acceptable (<16GB) amount of memory. Also, there are plenty of horrible error messages. Having a random google, here's the first one that comes up. While I can just about figure out what it means, it is several levels more complex than anything that would ever come out of Java. Stackoverflow is full of Haskell questions which are "I don't understand this compile-time error I am getting". http://www.haskell.org/pipermail/haskell-cafe/2008-August/046371.html http://www.haskell.org/pipermail/haskell-cafe/2008-August/04...
- the_af 13y ago> People who have to keep an empty monad around because removing it doubles the run-time of the program I'm genuinely interested in this. Can you link to an article or blog post explaining the problem? Thanks! :)