Yes, I forgot to mention their drawbacks. Now I will speak about this. For Perl, its complicated syntax is well known, it sometimes becomes annoying. Two students in my lab studied some weeks Perl, when they come to solve real problems, they still use Excel! There are two things in Perl I hate most, the first it the using of $@ as variable prefix, the second is its way of passing parameters to a function, they are quite annoying, at least for me. There are also a number of other thing I find difficult to use, you can imagine how difficult they can be for people have little programming experience. For R, if you have a look into it, you will find it has a very strange syntax, some place the syntax is so strange that I have no idea why they should be like that, for example, if "x" is an array, dim(x)<-(2,4) will change the shape of "x" to 2 times 4. Do you like this kind of syntax? The worse thing about R is, it is very inefficient both in time and memory. About Java, I don't deny that Java is good, I just feel that it's not as fast as C/C++, and not as convenient as scripting languages. So it's for sure that it is not suitable for some works. Now I think my answer is more complete.