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.
Here goes:
- +20 points: is it the fastest and easiest way to solve the problem at hand?
- +10 points: has it been used successfully for three or more big applications like high-traffic websites or popular desktop programs?
- +15 points: does it have a good standard library, including support for regular expression, GUI programming, XML processing, database and web development?
- +10 points: does it run on at least 2 different desktop platforms?
- +10 points: does it support a way to organize your code, like modules or namespaces?
- +5 points: does it run on at least one mobile platform?
- +10 points: does it support OOP?
- +10 points: does it support FP?
- +15 points: does it have a large, active and helpful community?
- +10 points: is learning material easily available (books, web sites, articles, etc.)?
- +10 points: is it faster than all other languages you use regularly?
- +10 points: is it easier to use than all other languages you use regularly?
- +5 points: can it be embedded or integrated with another programming language you use regularly?
- +5 points: has it been around for 7+ years?
- -20 points: is it similar, for syntax and features, to another language you use regularly?
If your score is 85 or higher, then you should learn it, otherwise don't bother. Based on the above, it turns out that I should learn Haskell but not Python, as I know Ruby already.
It's probably a bit overly simplified, but what do you think? Any ideas on how to improve this silly test?
