
Will Python suffer the same fate as Perl? - metmirr
https://www.quora.com/Will-Python-suffer-the-same-fate-as-Perl/answer/Attila-Marossy?share=1
======
benj111
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'

~~~
twunde
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.

~~~
cimmanom
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.

~~~
benj111
"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](https://en.m.wikipedia.org/wiki/Hype_cycle)

------
eesmith
> (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](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.'

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

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

