Hacker Newsnew | comments | show | ask | jobs | submit login

...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 :) )




I get the joke, but there are thousands of people currently learning either Ruby or Python and tons of classes for them, it's incredibly easy to hire either a Python or a Ruby (or PHP or Javascript) programmer and so on... while Perl is slowly falling off the radar.

-----


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.

-----


>>... is viewed as ...

The GP argued why a tech choice is good, you answer by arguing the reality -- of the fud! That was quite funny.

Edit: OK, I was talking about the first part, CPAN. You only made claims about jobs (that there are no good Perl jobs being created, which duckduckgo by itself should have killed.)

-----


I don't even know what this is supposed to mean.

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".

(About what people are learning: indeed we programmers pursue the new hotness, but of people that just started learning how to code, I bet 80% of them are learning Python, Ruby or Javascript, and since this the language they will first learn, this is more likely to become and remain their "go to scripting language" - bar Javascript...).

-----


Python's niche is that it's a general purpose language that is also good for scientific programming.

-----


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" :)

-----


Python also has scientific libraries that don't have equivalents in other dynamic languages. I don't agree that Python is free of weirdness, though. Perl and Ruby just happen to have extra weirdness.

-----


> All Python has is- "Tab indent your code."

When we use APL, everything is one line long and code doesn't ever need indenting.

-----


Ruby doesn't have great support for math, science or AI. There are projects out there trying to make the ecosystem better, but currently it trails Python.

-----


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.

-----


> anybody has any arguments for using Python instead of, let's say Ruby, these days

Yap.

* Better libraries

* PyPy

* gevent for green thread based concurrency

* Cython

-----


Show one single famous language that doesn't have that.

-----


Ruby?

-----


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.

-----


According to your logic Chicken Scheme is the language of the future. They have a small, but great community.

I like it, but I have given up hopes that one day it will become mainstream.

-----


  | Their emphasis is on [...] doing things properly
Too bad that doesn't extend to a better solution to packaging / deployment. :P

-----


Nobody really seems to get that right.

-----


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.

-----


That and the fact that you browse the documentation on CPAN. PyPI (for example) is only an index of packages, the documentation needs to be hosted elsewhere.

-----


*citation needed

-----


>>Egos [among Python programmers] are kept in check [compared to the Ruby community]

That is a really fun -- and typical! -- claim when your GP is a Python troll arguing that another open source language should just die... :-)

Frankly, I've never seen so much language trolls as Python trolls. (And no one needs multi line lambdas and hence real map functions, anyway...)

I don't know much about the Ruby community, but I have a hard time believing they can be worse.

Edit: But sure, the language trolls here might just a few idi... people. There are lots of you with just a few hundreds karma.

-----


Seriously. Python has plenty of good points to cite in its favor, but "lack of fanboys" is not one of them...

-----


First, yeah, I can't mention any modern environment without lots of good points -- and bad points. Most everyone agrees, except...

Second, this trolling attitude seems built in with the Python purity philosophy. It reminds me more of islamists and other religious fanatics than of anything else.

-----




Applications are open for YC Winter 2016

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact

Search: