You should learn a new programming language if...

Yesterday someone posted an interesting comment to one of my articles on DZone:

There are 8 features to consider when choosing a programming language:
 
20 points -- is is solid? would you write a control program for an aircraft or a pacemaker? 
15 points -- can you write a database system (like mysql) in that language, including the deamons?
15 points -- libraries: regex, reading XML, manipulating complex numbers, graphics;
10 points -- active community + books + web pages
10 points -- can write fast IO and easily read complex input and binary input? fancy formatting?
10 points -- can you write web pages;
10 points -- support for OOP?
10 points -- available at least on 2 platforms, Windows and/or Linux and/or Mac.
Rate the language on a scale of 0 to 100. At 75+ you should use it.

While I agree on some of the above, I thought I'd provide my own test to decide whether to learn a particular programming language or not.

Read the rest of this post »

Should I give Haskell another try?

Haskell is a wonderful programming language. I'm not kidding, I really mean it. It's definitely worth checking out, at least.
Haskell is purely functional, succinct, elegant, fast, compiled, cross-platform, well-documented, feature-rich, and cross-platform. On paper, it's pure awesomeness: it lets you program in a way no other language can.

Programming in Haskell requires a radical paradigm shift, so it's not for anyone. I was always intrigued by it, and I started to learn it a few times in the past, on a yearly basis. Now it's that time of the year again, but before I embark in yet another almost-pointless journey, I wanted to analyze the issues I stumbled across last time I read through the countless tutorials and other awesome and free resources online.

Note #1 These are issues I found about a year ago, hopefully they are not true anymore. If you think they are not true, by all means explain why in the comments, but do it in a civilized manner: I am not criticizing your language of choice, I just want to learn more about it.

Note #2 I don't need to learn Haskell. I won't use it for work, not in the short term anyway. But I would use it sporadically to perform certain tasks for which I cannot use Ruby for, i.e. something that needs to be fast and not require something installed to run. Maybe some silly CLI tools, but maybe even some GUI or web/network stuff.

Read the rest of this post »