I have noticed a tendency for technologists, programmers, and others to fall in love with their projects, their tools, … . Why this happens, I am not sure. I don’t love my hammer, my circular saw, my computers, the languages I use. They are tools. They are the means to a goal. Sure, I like some tools more than others, but I am also not going to waste my time misusing a tool for a purpose ill suited for it. I won’t use tools that are solutions looking for problems, as you have to spend lots of time figuring out how to attach the thingamabob to the whirlygig to make it seem work. Yes, there are some computer languages like this.
Then again, I also won’t waste time justifying language or technology choice by initially bashing another language or technology. If the language or technology you are using or going to use cannot stand up on its own merits, don’t waste time comparing it to one that can, and claim that it is better.
I see this all the time from advocates of the Python language, and from the Java world. Now we are seeing some of it from Ruby converts as well. The Python crowd likes to bash Perl. The Java crowd likes to bash Perl. The Ruby crowd seems to be largely made of up former Javaians (jovians?) who have “seen the light” and are bashing Python and Java. I hear lots of “Better Perl than Perl”.
Well, I am a big believer in using what works, and not the language flavor of the day. Fads come and go, and at the end of the day, you still need to get productive work done. Which means you need languages with the capability and flexibility to adapt to your needs. If you need to adapt to the languages requirements, then you have solved the wrong problem.
If you have to justify your tool choice by saying something like “It’s quickly supplanting Perl in some circles, and with good reason. It’s a powerful, richly featured language with boatloads of extensions. And, unlike Perl, it’s very easy to do complicated things in simple, legible code.” suggests rather strongly to those of us who know otherwise, that the author does not have a clue about what they write. Unfortunately the uncritical reader may simply assume that the author has a clue, and accept, and later regurgitate what is written. Of such language marketing fads are born.
This has some relevance to HPC, as distributed pipeline computing applications have to run on many platforms, to which there are no operational ports of .Net/Mono or modern Java. This leaves languages such as Perl, Python, and Ruby. Or C/C++. Just try to port your app between Linux, Unix, Windows, and MacOSX. Thats why Perl, Python, and Ruby are so important.
The fast stuff in C and Fortran, the glue in the other languages (Perl, Python, and Ruby).