This one page isn't a good indicator of a language's popularity. It probably includes results referencing Monty Python, as indicated by the news article headlines, or the animal python.
The TIOBE index might be a better indicator of programming popularity using internet search results:
TIOBE is almost more flawed, since it pretends to be scientific while only querying a bunch of search engines (google, SO, wikipedia) for "<language> programming", which is skewed towards languages that tend to be mentioned with the word, such as http://en.wikipedia.org/wiki/C_(programming_language) , as opposed to languages that have a unique enough name, such as http://en.wikipedia.org/wiki/PHP
Unless I'm wrong: The popularity doesn't mean anything necessarily good. More people are probably asking for help in F# than they are in Ruby (much simpler to comprehend). The results aren't really helpful they just give you back indiscriminating numbers.
Tiobe is gamed bigtime by promoters of some of the smaller languages in the 21 to 50 range, and postings for IT jobs that don't exist is a con that's been going on for decades.
It's fairly obvious that the python programming language results are fairly drowned out by the Monty Python and snake results, as illustrated by all the news headlines shown for python, and by related topics and queries.
That's not to say that the trend shown is entirely incorrect, just that it would be mostly coincidental to the data shown here.
Which falls prey to the fact that people don't need to disambiguate "perl" when searching, but often do for "python". Changing it to "perl" and "python language" isn't very useful either, as it so severely limits the python query as to be unusable.
To be clear, I don't doubt there is a drop in Perl mindshare and usage, I just don't think the original comparison, or the alternative one you posted, really shows a relation between Perl and Python in any meaningful way.
No, it doesn't. There's no reason for the proportion of people looking for perl related stuff who use "perl language" as a search term to change over time. That proportion might affect the absolute numbers, but not the trends.
Though I am not sure how Google categorizes search terms intro specific things like a programming language versus a python snake, etc. I wasn't offered a Python language selector so I changed it to Java and added Go for fun.
How does Google calculate interest? What's it normalized against? The overall decline might just be a function of the decline of software engineers as a percentage of the internet using population over time.
Death by a thousand cuts...PHP cut it off at the knees because it was trivialy easy to do web apps on a shared host; Perl hosting was far harder. Ruby came on the scene, and stepped in as a spiritual successor to Perl. Perl 6's infinite development cycle sapped the life out of the community. All of which led to fewer modules being added to, or updated on, CPAN. Fewer fresh modules drove more use to other languages that did have the fresh modules
I.e. a really nasty downward spiral that leaves perl occupying the same space as COBOL and FORTAN - a language used in massive legacy systems, but rarely used in new systems unless implemented by ancient wizards.
One the upside, pretty soon Perl wizards will be able to charge the same rates as COBOL & FORTRAN wizards...
> All of which led to fewer modules being added to, or updated on, CPAN.
That's a compelling story. Lots of folk believe it, including, it seems, you. But have you checked your sources and data? For those interested in data and irony, watch about 2 minutes of either or both of these from last summer:
> Perl 6's infinite development cycle sapped the life out of the community.
Again, lots of folk believe this story. For another dollop of irony the leading current P6 attacker was once the leading P6 booster around 2010. When he was pro P6 he didn't accept suggestions that it was slower than dog slow. (It was.) Now he's anti P6 he doesn't appear to be accepting that it's been speeding up every month and is due for official launch within a year. (It is.)
P6 is now flying under the radar but stories like this are around if you look for them, like this from a day or two ago here on HN: https://news.ycombinator.com/item?id=9089259
I would caution against bringing chromatic up in any context including Perl 6. That particular period of history is complex enough with enough blame to go around that I doubt any gain you hope to get by bringing it up will work as you expect. Best to respect his wishes and leave him out.
For another dollop of irony the leading current P6 attacker was once the leading P6 booster around 2010. When he was pro P6 he didn't accept suggestions that it was slower than dog slow. (It was.) Now he's anti P6 he doesn't appear to be accepting that it's been speeding up every month and is due for official launch within a year. (It is.)
I've asked you multiple times in multiple places not to speak for me. Your assertions here are nonsense.
Because everything perl can do python can do better? Okay that is a though claim but perl and python fit about the same area - a dynamically typed scripting language that can take over when that shell script gets too big and all the way up to a full-blown app or website, but you are not going to win any prizes for speed - but python doesn't have all the weird crap that goes along with perl (what exactly does $#% mean again?) and it has everything else.
Perl was a great language in its day but I just don't see a case where are new programmer is better of starting a new project in perl rather than python.
I'm always at a loss as to why people take such delight in the real or perceived decline of Perl.
Perl and Python are similar, excellent programming languages, and I don't imagine Larry and Guido argue like children about it when they meet at conferences.
I'll just quote Bjarne Stroustrop: There are two kinds of programming languages. The one's people complain about, and the one's people do not use.
Perl is one of the few languages associated with the web that was really pre-web. It's because of Perl's inspiration that we have PHP and Python. So while the language evolved, it was never web centric at heart.
Another great thing about Perl was in the early days of the web it appealed to both real coders and script kiddies. But as time went on the script kiddies tended to move on to languages like PHP, so only the pros are really left.
The last issue with Perl was that it was never a favorite of computer science programs, so it was always a bit of a hackers language at heart. So there is a wonderful community around Perl, but it makes it very hard if you run a shop to find kids out of school who know the language vs. Java back in the day (and other languages today).
But I know a few coders who still really love Perl in hearts, so while the popularity hasn't grown I would say the language does have a very hard core dedicated following.
The question assumes that the relevant forces weren't in motion much earlier (they were, it just takes time for the basic changes to show up clearly in things like this search)
I make my living writing single-page web apps in JavaScript. These days, everything I do, even on the server, is in JavaScript.
What does Perl do a hundred times better than the latest in the JavaScript universe (ES6, Meteor, node.js, etc.)? If it doesn't, that right there is your answer.
> What does Perl do a hundred times better than the latest in the JavaScript universe (ES6, Meteor, node.js, etc.)? If it doesn't, that right there is your answer.
Well, for a start, it's relevant for more than 3 months.
Asking for doing something 100 times better is quite a mouthful, coming from a JS developer.
perl does one thing hundred times better than (server-side) JavaScript: when you need to get data out of a server that you have no sudo privilege because your boss asked you to get stats on your trades ASAP.
This happens shockingly frequently in finance, and perl (and actually, awk) was the only scripting language that I could safely assume was installed.
The fact that I can be contemplating career suicide after reading the source to CGI.pm one minute (once amazingly useful and best of breed, now a crufty monster) and the next doing insanely useful things with metaprogramming, declarative interfaces and terse, easy to read code :)
I have to agree. There's nothing you need Perl for, and nothing it specifically offers. Like if you want to do something in Wordpress you can only use PHP, no choice. If you want to code a Linux driver you have to use C. If you want nice features like awesome readability you choose Python. If you want awesome power you use some kind of Lisp or Haskell.
There is not a single (well known) reason for using Perl. Even if it's 10% better and faster than any other language without a unique selling point the cost of switching is just too high in most cases.
That can be also said about Python now that they pretty much froze the stdlib. You are right, a language should be evaluated by it's general power, not just by it's stdlib. If you can easily install Perl packages every Perl package should be part of the equation.
So yeah. There are a few languages which are quite good at text parsing nowadays. Another key argument was the huge amount of packages. But most languages have that now. There are also lots of scripting languages who can be written quite fast, like Python or Ruby. That's what I mean with there is not a single thing left that you really need or want to use Perl for beside having used it the last decade already. For everything that Perl can do there is at least another tool that is as good.
But all of that is not a shame. Every language will go that path, especially one that is so common as Perl was. Everybody wants to copy the best, until one day it's not the best anymore.
How does Perls regex stand up against Python? I mean once Perl was the pearl of regex/text processing (The Common Lisp package that everybody uses for regexis pcre, Perl Compatible Regular Expressions) but that was a long time ago.
Aiui "The Future of Python Regexes" SO answer at http://stackoverflow.com/a/7066413/1077672 written by regex (and Perl) expert Tom Christiansen (and last updated by him in 2012) is still good info.
In brief, https://pypi.python.org/pypi/regex appears to be the path forward for Python. This engine is much closer to the power and Unicode compatibility of Perl 5's default regex engine.
= About Perl 5 regexes =
Aiui the default Perl 5 regex engine is significantly faster than the 're' regex feature included with Python 2. I don't know how it compares to the new 'regex' module.
Regexes in Perl have the advantage/disadvantage that they are syntactically integrated in to the language (a disadvantage if you don't like it being integrated).
Since Perl 5.10, a different regex engine can be plugged in and used without requiring any change in code that uses regexes (unless an engine uses a different syntax of course). (But it takes a lot of effort to package a regex engine up for use with Perl 5.)
A given regex engine can be extended using the overload module. Extending is relatively easy.
= About Perl 6 regexes =
A whole new ball game, two decades ahead of Perl 5 regexes.
Generally matches Perl 5 regexes feature-for-feature but with a much cleaner syntax. More importantly, unifies regexes and grammars.
Currently way slower than Python or Perl 5 regexes. Supposedly will eventually (5 years? 10?) incorporate all the key optimizations in the Perl 5 engine and become faster than Perl 5 regexes.
i totally understand that such key words are polluted with searches like Monty Python, but the trend does seem to change much even if we apply more restricted key words, as already pointed out by many other replies before. in the end it's really just a matter of habit using what programming language to do what, it's still, however, interesting to see how popularity of one language come and go.
Perl always will be my favorite language. Its absolutely a joy to write. What's interesting to me is that all the things that people like about JavaScript, Perl had first, and I think better (closures, first class functions).
The criticisms that people had about Perl, such as that it langrage like line noise was unfortunate. Being able to tell whether something was a scalar, array, or hash by the character that preceded it was helpful.
Being able to slap a set of braces around code to create a closure was also much better than needing to do the same in a function like JavaScript.
Perl formed some much new ground. CPAN was the predecessor of npm, etc.
I'm just glad to be able to write functional code again through JavaScript, just like when I wrote Perl. I don't miss writing Java (or any static typed object oriented language) at all, and hope I never will again. I just hope that ES6 doesn't turn JavaScript engineers into object oriented programmers.
Python is often claimed not to have closures but that isn't really true, what it doesn't have is anonymous functions. It does have a lambda statement, but that is limited to a single statement.
So what you end up writing is more akin to:
def multiplier_maker(a):
def temp(b):
return b * a
return temp
That is because Python allows you to declare a function anyware, even inside other functions.
You can do it by closing over a variable as well. Python closes over things just fine, it just has problems rebinding variables in outer scopes that aren't the global one. Here, I just make the variable a container, so I can alter a value inside it, instead of rebinding it ( only python2 has this problem, python3 has a "nonlocal" keyword to work around this in the language )
The TIOBE index might be a better indicator of programming popularity using internet search results:
http://www.tiobe.com/index.php/content/paperinfo/tpci/index....
but that's still not perfect. You could also look at the number of job postings on sites like Indeed asking for Perl experience.