Ask HN: C or Haskell, which to learn next?
I've been programming for about 5 years now. I started with Perl, then moved to Ruby, then Javascript, then learning some PHP. Ruby and Javascript are my main languages. I didn't go to college, so I didn't go through a formal CS curriculum, and I'd like to learn some stuff I feel I missed out on. I've narrowed down my choices to C and Haskell at the moment.
Haskell seems to be the most practical of the functional languages from what I hear, but there aren't really any web dev applications for it that are in serious use so far as I can see. That said, functional programming would be a great way for me to learn about alternate programming paradigms.
C on the other hand I can think of projects I can do in it, but it doesn't seem as much of a leap as Haskell does, which makes me wonder if it'll be as good a learning experience. What does the HN community think would be a good next step?
7 comments
[ 0.21 ms ] story [ 30.6 ms ] threadI often say that nobody ever understands when they should and shouldn't use hash tables until they've written a hash table in assembly language; you don't necessarily need to go to that extreme, but working in C at all will give you a much better understanding of fundamental algorithms and data structures than if you only ever use high level languages which hide such details away from you.
Drawbacks are: not so popular compared with C (but waaaay more popular compared with Haskell), not so functional compared with Haskell. Far better compared with both ones WRT web development (there's a very powerful library shipped OOTB for this) - especially when it comes to manage complex session states. OTOH, isn't really a web tool, it's rather a high-performance RAD environment with main focus on native (compiled) code and DB development. Other drawbacks are: - you must know that you should ask the community where to find good libraries and examples - the free edition (Turbo) is outdated. But there are trials.