Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Will Python suffer the same fate as Perl? (quora.com)
6 points by metmirr on Feb 5, 2019 | hide | past | favorite | 7 comments


This is a long detailed answer, that fails to answer the question.

The Answerer seems to have answered the question 'will python suffer the same fate as php'


Agreed. Perl failed primarily because it took 10+ years to come out with Perl 6. By the time that Perl had first class support for the object oriented paradigm, new paradigms had started to gain traction, notably functional. PHP almost suffered the same fate, but wisely decided to backport some of the improvements.

Python is unlikely to undergo a 10 year rewrite, although some of its recent decisions such as the 3.0 split and the more recent decision to make async a reserved keyword have shown some of the more problematic tendencies.


I would argue that Perl failed instead because it was better suited for short scripts than for large and complex web applications, and because its syntax was so beginner-unfriendly that it never attracted the new wave of developers who were getting into the game around the time that Rails became popularized.

This was compounded by the fact that nobody wrote a hot new RAD framework in it that would serve to attract people to a challenging and otherwise niche language.

In 2001, if you wanted to hack on simple interactive websites, Perl was probably your best choice - it was one of the few scripting languages supported out of the box by cheap shared hosting providers.

By 2004 that role had been supplanted by PHP, and by 2011 web development was nothing like it had been a decade ago, and there was no niche in which Perl was a better or easier choice than several alternatives.

Python, on the other hand, has way more momentum. Sure, web development could go another direction in the next decade. But Python has an enormous community and ecosystem. Plus it’s used for a broad variety of purposes - from web to desktop development to data science.

More importantly, it’s a widely used teaching language. Unlike what happened with Perl, a huge portion of the next generation of developers will enter the workforce already knowing Python; and those who don’t will likely not only encounter it but find it relatively easy to pick up.


"better suited for short scripts"

I certainly don't disagree with this, perl was basically designed as a shell scripting replacement as far as I was aware.

It's an interesting dynamic to think about though. Would perl have been as successful if it hadn't have been as good for short scripts? I think theres a tendency to try and use the latest language du jour on everything.

The hype cycle labels this as the trough of disillusionment [1]. I don't think its necessarily deadly in isolation, but there are a few factors that came together as you point out.

I think you're maybe underestimating the perl 6 split. Around 2008ish when I was first getting into programming, perl and python were at least neck and neck for mind share. Perl 6 just sucked all the oxygen out of the room as far as perl 5 was concerned, but never actually arrived. Without googling I couldn't even tell you if theres a stable release even now.

[1] https://en.m.wikipedia.org/wiki/Hype_cycle


> (1) ... If I read Python fans on Quora today, it feels like the enthusiast PHP community in the early 2000's.

This isn't a useful comparison. If Python fans in the early 2000s were like PHP enthusiasts at the same time, and Python fans are still enthusiastic while PHP fans are not, then that gives a rather different interpretation.

That is, one reading of the comment is that Python will follow the PHP trajectory, just 15 years later. Another is that Python fans have maintained their enthusiasm far longer than PHP ones have, and that more long-lived enthusiasm may be indicative of a better language.

Since there are two mostly opposite ways of reading the text, it doesn't make a useful comparison.

> (2) ... "script kiddie" ... "mainstream educational language"

As a reminder, in the 19990s and 2000s, Java was the mainstream education language.

> (3) ... "its whitespace-based syntax is really annoying (see Garry Taylor's answer ..."

Taylor's answer asserts without proof that "I think for real code, Python’s whitespace idea really, really doesn’t work. / It’s a pain to refactor, lambdas can only be one line (!), and just doesn’t present benefits."

As a proof-by-example, there are 500K Python code bases, like NumPy+SciPy.

PyCharm include automatic Python refactoring operations.

In practice, I have not found the lack of multi-line lambdas to be a problem. When my lambdas get to be that large, I tend to replace the code with something more declarative than functional, because I find it easier to understand. But at this point it's a personal view.

What little there is on the way of experimental evidence, like Lutz Prechelt's now-dated "An empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl" suggest that it isn't a serious and obvious problem.

> ... More WTFs of Python language design see in Richard Kenneth Eng's answer

Eng does not like indentation, but explicitly says it's a matter of individual preference.

I agree that it's "easy to advertently [sic] misalign" Python code. It's also possible to inadvertently mess up {}s, as this example from the C FAQ shows: http://c-faq.com/strangeprob/emptyloop.html .

> ... Python is lagging behind new and better languages such as Go, Elixir, Julia, Clojure or Dart in many features.

"New" is true. "Better" is an opinion. It would be better to describe why they are better.

Are there no features in Python which Julia, etc. are missing? That is, is it wrong to say "Go, Elixir, Julia, Clojure, and Dart are lagging behind Python in many features"?

For a trivial example, I don't think Go supports an eval().

You might respond that 'eval' shouldn't be used, which is fine. That means that "having features" doesn't mean "better".

> (4) In web development Python offers nothing outstanding

That paragraph seems to be pure opinion.

> (5) In the data science / ML etc. field ... as I know it has severe problems with commercialization, that is: it is easy to craft a model with it, but when it comes to an actual commercial product, problems begin...

I don't know what that means. What are the problems?

FWIW, Python is also widely used in the sciences outside of 'data science / ML etc.'


"in the 19990s"

Dates are hard, you should really rely on your languages built in date time library :P

But yes, I agree with your points.


"PyCharm include automatic" -- and I should rely on a spell chcker. ;)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: