http://qs321.pair.com?node_id=1115825


in reply to Honest question about Perl, Python and Ruby

Is Python or Ruby better/worse than Perl? or advantages of each Language?

Apocalyptically bad languages rarely (though not never) get much traction. Spectacularly awesome languages usually (though not always) wind up being used.

Most languages fall between the extremes. What determines their adoption winds up being a large pile of factors, but almost none of them can possibly be distilled down to "language is better/worse". Most deciding factors, really, can be succinctly, not-really-fairly, and totally-uninformatively lumped under "luck". And without contradicting those negative adverbs, also be not really untrue.

There's nothing Ruby can do that Perl can't. There's nothing Python can do that Ruby can't. There's nothing Perl can do that Python can't. Even aside from the (also not untrue, but still silly) argument of "they're all Turing-complete", they're all "dynamic" and "interpreted" and "scripting" and other fuzzy-but-still-useful subdivisions of the landscape.

What they are is different. They have different language structures, they have different community structures, they have different tendancies, they have different biases. They invite you to model problems and decompose processes differently, to express yourself to the compiler and to other programmers differently. You're not going to get a good description of those differences from anybody except somebody well-versed in all of them (which I'm not). And in fact, you really can't get it from anybody else either, since what will matter is how you relate to them, which is only partially determined by the language itself. It also varies depending on you (and for that matter, you-today aren't the same as you-5-years-from-now, so it's not even time-invariant).

Do you (/your team) know one better than the others? Then that's the right choice. Do you have an existing codebase in one? Then that's the right choice. Does one have an excellent set of existing libraries for your problemspace? Then that's the right choice. Does one sound more interesting to explore, even (especially?) not knowing it, and you have the resources available to indulge? Then that's the right choice. Do you not care about any of that, and just want to pick the one that'll get you the most/best paying jobs? Then count up job listings and pick that one (and hope you project right for the appropriate future term).

Do none of those apply, or provide definitive answers? Well, then obviously Perl is the right choice 8-}

  • Comment on Re: Honest question about Perl, Python and Ruby

Replies are listed 'Best First'.
Re^2: Honest question about Perl, Python and Ruby
by Your Mother (Archbishop) on Feb 07, 2015 at 03:09 UTC

    I was so dreading what this thread would look like and I had no good comedy to add so I was keeping out. I’m back in to say this is a fantastic reply. All ++s to you.

      All I know is: a good Fortran programmer can write Fortran in any language.
Re^2: Honest question about Perl, Python and Ruby
by roboticus (Chancellor) on Feb 07, 2015 at 16:06 UTC

    ++fullermd:

    Here's a virtual ++ since I can give the post only one real one. Well said.

    ...roboticus

    When your only tool is a hammer, all problems look like your thumb.

Re^2: Honest question about Perl, Python and Ruby
by doom (Deacon) on Feb 11, 2015 at 19:57 UTC
    "... they have different community structures ..." That's the kind of thing I usually put emphasis on. Technical decisions are usually social decisions in disguise. Look around for local users groups, attend a few meetings, and see what kind of folks have been attracted to the languages, and see who you want to hang out with. You might also look at what different companies you're interested in are using, but there's limits to that reasoning (e.g. Google hires some really good perl programmers, they just don't let 'em program in perl.).
      Technical decisions are usually social decisions in disguise.

      Now that’s a good pull quote.

Re^2: Honest question about Perl, Python and Ruby
by SimonPratt (Friar) on Feb 11, 2015 at 08:50 UTC

    Very well articulated :-)

    They invite you to model problems and decompose processes differently

    And this is why I think good developers don't limit themselves to any single language (even if they do have a preference)