Hacker News new | ask | show | jobs
by lawfulfalafel 5658 days ago
I have been thinking of learning a new language, would anyone recommend go over haskell (simply for the sake of learning, real world applicability aside)?
2 comments

Why not learn both? Pick a small but non-trivial application, and write it in both languages.

I am pretty familiar with and a fan of both languages. I started with Haskell, and found it to be really exciting. Go is very different, but after I got over my initial incredulity at it for not being Haskell or at least an ML variant, I learned to like it quite a bit. I think changed my thinking about programming at least as much as Haskell, perhaps more.

I wanted to end this post by trying to answer your question, but I don't think I can. It's like asking, "Should I teach myself the piano or the guitar?". The real learning comes from what you make, not what you make it with.

It's really hard to say without knowing what your goal is.

If you know languages like C/Java/Python/Ruby, Haskell is much different, so you'll get exposed to radically different ways of thinking about programming.

Go is much closer to those traditional languages although it does add an uncommon (yet practical) way to do concurrent programming (goroutines/channels) that is worth learning about.

I know you don't care about real world applicability, but if it mattered, Go would be a better choice. It's explicitly designed as a practical language and in my opinion is a viable (if not superior in some ways) alternative to mainstream choices like Python or Ruby or Java for writing the most popular kinds of programs today: web applications.