...don't get mad for the question, but: anybody has any arguments for using Python instead of, let's say Ruby, these days? (besides the "I already know it incredibly well" argument)
...cause the lack of an answer to such a question has only one conclusion: the language is dying, even if this is not already happening in a visible way!
(don't get me wrong, I'm not a Python hater, and fyi, I think the world would be a much better place if David Heinemeier Hansson would have learned Python and written a nice Python web framework instead of inventing Rails :) )
There are 100000 perl modules, all backed up by an extensive test suite. About jobs: knowing a popular language guarantees you a job, but it doesn't guarantee you a good job. Those shooting for a higher level can pick what language they want. Those looking for higher level programmers will find a much broader distribution of language preferences. Hence Twitter runs on Scala, Blekko runs on perl.
> Hence Twitter runs on Scala, Blekko runs on perl.
Those are hardly equivalent (aside from the obvious differences in prominence, scale and relative importance between Blekko and Twitter).
Scala shops attracts developers curious about new paradigms (FP / FP hybrid) whereas Perl shops tends to repel forward-looking developers who view it (accurately or not) as an ugly throwback to the year 2000.
Put plainly : Scala sells itself (to a certain crowd) whereas Perl needs to be be sold almost across the board. Scala is viewed as an up-and-comer, Perl as a has-been.
The parent was making reference to the common notion that using outlier languages provides access to high quality talent. In certain cases this holds true, in others not. You will attract, on average, higher quality talent by using Clojure rather than Cobol.
EDIT (response to parent edit) : well, no. I never said there are "no good Perl jobs", just that Perl is not in and of itself a draw in the way that Scala / Clojure / Haskell might be. You could probably convince someone that there are cool opportunities in Fortran development, but very few are actively seeking them out.
That thing about Perl is probably being said since the past 12 years and the needle doesn't seem to have the least count distance with regards to that.
People are learning Python? Really? That was probably true in 2006-2009. Python is no longer the new hotness. Scala and Clojure may be.
The fact of the matter is Perl has a massive niche(Text processing, Unicode, CPAN, Regular expressions, Fast prototyping, TIMTOWDI, Ability to add new syntax rapidly[Moose, Devel::Declare etc], Automation, Testing culture, Documentation, Unix, Parsing, Getting things done real fast... I can go on.. but I will stop here), If you look at what Larry Wall has been saying over the years about Perl 6 in various talks you will note that he designed Perl to fill a niche which continues to be totally unoccupied till today's date. The only competitors Perl has in its design space are tools like sed and awk with a additional few Unix utilities thrown around. In other words Perl doesn't have any credible competition. What's more? Any language that is designed to replace Perl will largely look like Perl(Read: Ruby, Perl 6). And yes, Php and Ruby do have their niches.
Python doesn't have a niche. All Python has is- "Tab indent your code." And sorry to break the bad news to you. Merely forcing indentation on a bad programmer doesn't magically transform him to a good programmer. Rather it make the situation more worse. It gives him a free pass to sit amidst good programmers.
> a niche which continues to be totally unoccupied till today's date
Leaving all about Python aside, what exactly is that niche? I'm not being ironical or anything, I really want an answer to this question, that's why I started this piece of the discussion. Seeing that things like Metasploit, that I would have expected to be written in Perl, end up being coded in Ruby, makes me unable to see any "special niche".
my theory is that Python ended of being used so much in scientific computing because of what it lacked :) I mean weird stuff that put off "brilliant non-professional programmers" (ie. scientists, engineers and other domain experts that thought themselves how to code). All other languages have tons on these things: Ruby has blocks that make people write functionalish code, Perl has ...tons of weirdness. Python just looked clean and easy to learn and lacked "weird shit" :)
For biology -- especially the genomics side -- Perl was absolutely dominant 10 years ago. It's been gradually edged out by other things (substantially Python and R) since then. Desire for better statistical tools may be a driver here, but it's interesting that it's led to a switch of languages rather than building more stats tools for Perl
I would say that Perl is still dominant in computational genomics. About a year ago I wrote some code to do some basic comparative analysis at the genome level alongside some more gene focused phylogeny efforts. Since the whole thing was quite simple it wasn't a problem to write the overall structure, but getting the bioinformatics Python libraries working was a pain. Even if the code tiself was Python the API was littered with various Perl and Bash idioms and there was a major bug in at least one of the tree building methods (had to patch it myself). Calls to subprocesses within the libraries (a heavy part of most bioinformatics work, where there are thousands of stand alone command line programs) would often fail without warning. The state of the art in this area is definitely behind Ruby and far behind Perl.
However, Python is still my main language and I am very happy with that. The numpy/scipy stack and everything building around that is incomparable to anything in Perl of Ruby. Also for the last month or so I have been doing work in the IPython notebook. It has really helped my productivity and documentation efforts. And it looks really cool.
The superb community is one of Python's biggest assets, especially when compared to the Ruby community.
The Python community is made up of some very smart and talented experts. Their emphasis is on developing high-quality software, and doing things properly. Egos are kept in check, and there are always many people willing to offer a helping hand to those who are new to Python.
The Ruby community is generally quite different. There is a much bigger emphasis on celebrity and ego, and being "trendy". The attitude toward software development is different, too, with much more emphasis on producing a lot of code quickly, even if it has security flaws or other serious problems. It's more about being seen and heard, rather than doing.
I'd put the Perl community somewhere in between the Python and Ruby communities. Back when it was more prominent, it had a more lively set of participants than we than we find in the Python community, but a much higher degree of technical aptitude than we find in the Ruby community.
I haven't read something so generalizing in a while. This is the technology-equivalent of saying that women are worse at programming than men because of their sex, or people that use Craftsmen hammers build better houses. Just because someone writes code in Ruby or Python does not assign them to one personality group and mean they are driven by similar motivations.
It sounds like you're talking about the most prolific speakers and code authors in each community who may in fact have their own personalities, but they don't define everyone who are simply using the best tool they can to accomplish their goals.
Perl improved much in this area. The main reason for that is probably the automatic tests that for every new release on CPAN are run on a wide array of systems. This kind of infrastructure plus emphasis on having tests in the libraries is where Perl is still ahead of other languages.