TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

The Fall Of Perl, The Web's Most Promising Language

68 pointsby MattRogishabout 11 years ago

24 comments

smacktowardabout 11 years ago
<i>&gt; I first heard of Perl when I was in middle school in the early 2000s.</i><p>Welp, now I officially feel old. Thanks!<p>In seriousness, though, this is not a very informative article. It essentially boils down to &quot;I learned a little Perl after college, but didn&#x27;t like the syntax. Then I went to grad school and found that everyone there was using Python, so I switched to that instead. Also, where&#x27;s Perl 6 amirite lol.&quot;<p>Which is fine, as far as it goes, but it tells you more about the author&#x27;s career path than it does about either language. And by doing so, it leaves out important elements of the story. Writing an article about &quot;the fall of Perl&quot; that only incidentally mentions PHP, for instance, is a <i>big</i> omission. Insofar as Perl has fallen, what it fell from is the position of leading language for building Web applications. PHP is what pushed it out of that position, not Python or Ruby. If you want to write an article about the fall of Perl you have to explain how that happened and why, but this article attempts neither.<p>I think the root of the problem is that the author is incorrectly generalizing from his own experiences. He mentions working in scientific computing these days; if you work in that field, and entered the workforce within the last decade, I can totally understand how it might look like The Story Of Programming Languages goes &quot;once there was Perl, now there is Python, The End.&quot; But step outside that niche or that time window, and things look very different.
评论 #7289187 未加载
评论 #7289320 未加载
ChuckMcMabout 11 years ago
When I came out of Google I could see the Python features that endeared it to Googlers (although I expect Go to replace Python pretty much everywhere there eventually). Blekko is a perl shop and it certainly felt a bit strange, but having gotten acclimated I can see the appeal. Every now and then I come across some really idiomatic perl and find it mind bendingly opaque, but for the most part I can code up a quick script in it faster than I ever could in Python.<p>Of course when you write code in a dozen languages you stop seeing the language after a while and just see the code. And at that point it really is all the same.
评论 #7289445 未加载
erichsuabout 11 years ago
In my opinion, they buried the key point... the dead end of Perl 6.<p>Up until last year, I did a lot of web development in Perl. Its strengths were CPAN &amp; community, ubiquity and top-notch text processing. Its acquired taste was very elegant expressiveness once you grokked the grammar.<p>Then all the Perl leadership focussed on the black hole of Perl 6 which was solving a problem no one had but CS linguists. So Perl users like me felt there was no future in Perl. Perl 6 would have to be relearned for no tangible benefit so why not learn something new with a growing rather than stagnant&#x2F;declining ecosystem? No one was forced to leave, but like a trap door, as soon as a Perl programmer learned something new, they were only going to continue to decrease their use of Perl.<p>The rise of Python and Ruby (and Ruby on Rails especially) and even PHP, were grave wounds to the health of Perl, but Perl 6 was the self-cutting that bled the community beyond the point of self-repair.
评论 #7290032 未加载
评论 #7289080 未加载
lelfabout 11 years ago
This article is full of rubbish. Like this:<p><pre><code> 2000 Python 2.0 released 1994 Perl 5 released 2008 Python 3.0 released 2000 – present[&#x2F;b] Perl 6 &quot;in development&quot; </code></pre> It&#x27;s more like<p><pre><code> 2013 — Perl 5.18 released </code></pre> Perl 6 is entirely different language (with unfortunate name). And honestly, as a language it&#x27;s light years ahead of python.
评论 #7289705 未加载
评论 #7289596 未加载
greggmanabout 11 years ago
I&#x27;m by no means a perl expert having only written maybe 10k lines of Perl but ...<p>Perl seemed to me just hack upon hack. You can see the progression. First there were no local variables. Then &quot;local&quot; was added which effectively pushes the current value on the some stack and retrieves that value on the way back, then later &quot;my&quot; was added to actually give local variables.<p>Similarly all the crazy special variables @_,$_, $a, $b, $&amp;, $&#x27;, $+, @+, @- %-, $^R, $., $&#x2F;, $|, $\, $&quot;, $; etc etc etc. I&#x27;m sure someone out there really loves that stuff but to many it&#x27;s one giant hack, disliked for similar reasons to PHP&#x27;s disorganization.<p>On top of that it died at version 5 because version 6 never came out.<p>For web stuff, PHP at least provided a huge speed boost (over CGI, the typical way Perl was used) PHP also supported the whole shared host model much better than Perl&#x2F;CGI. I&#x27;m not saying I like PHP. PHP&#x27;s templating roots also made it more approachable by beginners. I&#x27;m only pointing out why for some use cases PHP killed Perl.<p>On the other side Python also killed Perl. Python seems like far less of a hack upon hack design. Python also has a comparable number of libraries, many builtin making it usually as easy to bang something out as Perl was.
评论 #7289275 未加载
gueloabout 11 years ago
In terms of expressiveness I think Python falls closer to Java than Perl. People make fun of Perl&#x27;s sigils but I think Python&#x27;s magic underscores and &#x27;self&#x27; everywhere are much uglier in a verbose way. And no one will ever convince me that significant-white-space and not having block enders are good ideas, it makes refactoring and copy-pasting code hazardous. And I don&#x27;t understand why every language hasn&#x27;t added Perl&#x27;s native regex syntactical sugar, it&#x27;s a huge win for many problems.<p>But yea, Python won.
评论 #7289186 未加载
评论 #7289280 未加载
评论 #7289441 未加载
评论 #7296144 未加载
评论 #7293206 未加载
einhverfrabout 11 years ago
Hmmm... This article strikes me as relatively missing a few things.<p>Perl 5 is a mature language. There is a lot of effort at building Perl 6, but at this point it doesn&#x27;t really look like Perl 6 will be a successor to Perl 5 (the metaphor now is &quot;little sister&quot;). It&#x27;s so different, it is like learning a new language.<p>Now, I do a lot of programming in Perl. I have done some scripting in Ruby, Python, PHP, and more, but I always come back to Perl because the language is remarkably flexible. (Rebol is probably the second I frequently come back to, and Red looks promising.)<p>Predicting the demise of Perl is relatively premature. I don&#x27;t think we will ever see Perl 6 supplant Perl 5. Rather these will become different languages (with a relationship similar to that of C vs C++).<p>Now you can write crap code in any language, and I just love how Python gives invisible characters semantic meaning (not), a problem that is likely to get worse as the number of whitespace characters continues to proliferate (not just plain spaces and tabs, but non-breaking spaces vs regular spaces....).<p>What perl has lost is the &quot;let&#x27;s quickly throw together an app&quot; crowd. That crowd has gone sometimes to Python, sometimes to Ruby, and sometimes to Lua. From where I stand, good riddance. This is what gave Perl a bad reputation in the past.<p>To plug my own projects, right now I am working on a framework for delegating Perl object methods to PostgreSQL stored procedures.[1] At some point I may port the work to PHP and Python, but currently Perl is where this is really going for me. The thing is that such work is not applicable to the &quot;throw together an app using an ORM or NoSQL fast&quot; crowd, but it allows for some very sophisticated, powerful, and robust business tool development.<p>Additionally I have to plug <a href="http://cpantesters.org" rel="nofollow">http:&#x2F;&#x2F;cpantesters.org</a>. This is a really really useful piece of the Perl community. I got a test failure report today for PGObject::Util::DBMethod failing to load in Perl 5.6.4. My first thought was &quot;who the heck uses Perl 5.6 anymore&quot; and my next thought was &quot;I guess I had better start adding minimum Perl versions to my Makefile.PL.&quot;<p>[1] The two most important pieces are <a href="https://github.com/ledgersmb/PGObject-Simple-Role" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ledgersmb&#x2F;PGObject-Simple-Role</a> and <a href="https://github.com/ledgersmb/PGObject-Util-DBMethod" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ledgersmb&#x2F;PGObject-Util-DBMethod</a>
评论 #7289372 未加载
kamaalabout 11 years ago
I&#x27;m not sure why every Python lover has to be Perl troll. No seriously. The author is clearly a Python fan boy, and he can very well write a good technical article to illustrate Python&#x27;s goodness. I&#x27;m sure we all can appreciate that. But you don&#x27;t have to troll Perl endlessly to do that. Besides all that, I&#x27;ve been hearing this Perl is dead thing since what, 10 years? If that was really the case Perl should not only have died, but should have even been forgotten from our very memories.<p>Something tells me most Python lovers take Perl as a very serious competitor. Else they wouldn&#x27;t be writing articles like these.<p>Python&#x27;s big rise came after hipster crowds got web frameworks written in Python. If you use hibernate or spring in Java, you can only come to love Python&#x27;s web frameworks. But that time is long gone now. The crowd went to newer languages like Scala and Go. For all practical popularity purposes. Perl and Python are the very same these days.<p>If you are really worried about popularity. Lets talk of Python&#x27;s falling popularity compared to languages like Go and Scala.<p>&gt;&gt;By the late 2000s Python was not only the dominant alternative to Perl for many text parsing tasks typically associated with Perl<p>When it comes to serious text parsing work, Perl is still the only practical alternative you have. Ever checked upon Perl&#x27;s Unicode capabilities?<p>&gt;&gt;2000 – present[&#x2F;b] Perl 6 &quot;in development&quot;<p>The development of Perl 6 didn&#x27;t start in 2000. And Perl 6 and Python aren&#x27;t even in the same league for comparison.<p>However the author completely misses the point. I can sit on top of a high priority production issue, just have a big log file. If all I have is that- Perl has the tools to help me get my job done in a couple of hours. Call me back, when Python can help me do that.<p>&gt;&gt;Perl 6 has been an ongoing development since 2000. Yet after 14 years it is not officially done, making it the equivalent of Chinese Democracy for Guns N’ Roses<p>Comparing Perl 6 and Python&#x27;s progress is a bit ridiculous. Merely the ambition and audacity of what Perl 6 is aiming to achieve is what Python would like to in the next 20-30 years of iterative development.<p>Perl 6 is not your usual language which aims a different syntactical style for decision and iterative statements and then calls it progress. A simple tour of the Perl 6 spec can help you on that.
nathancahillabout 11 years ago
This could have been titled &quot;The Rise Of Python&quot;.<p>Both languages have their uses. I write almost all of my code in Python these days, but fall back to Perl for complicated bash scripting. Shell scripts in Python feel clumsy, while Perl is very well suited for that environment.
评论 #7289135 未加载
评论 #7289053 未加载
mempkoabout 11 years ago
Still coding perl. I got something against a programming language telling me what to think the way Python does. Python is latin, perl is english.
评论 #7289133 未加载
评论 #7289156 未加载
meddlepalabout 11 years ago
Perl missed out on the hype-bubble of the web 2.0 craze which shot Python and Ruby to the top of the charts in the early&#x2F;mid 2000&#x27;s. But it wouldn&#x27;t surprise me if Perl was &quot;rediscovered&quot; at some point sort of like how JavaScript has experienced a renaissance since Node and the much-improved runtime engines showed up.<p>Personally, I have done a little work in Perl, but I never really considered it as tool I would want to build a large app using. I have always argued however that Perl is an ideal replacement for shell scripts and I have wondered for awhile what an interpreter shell would feel like if it used Perl as the language rather than say Bash.
评论 #7289067 未加载
评论 #7289174 未加载
tasty_freezeabout 11 years ago
A few days ago I was at a Half Price Books store. Something which struck me at the moment was that while there were probably 20 Perl books (some of them duplicates), there wasn&#x27;t a single Python book. I took it as in indication that Perl is in decline and people are unloading their personal perl library and nobody is buying the used ones; meanwhile, people are holding on to their Python books and ones which show up get snapped up.<p>The alternate interpretation is that Perl needs a LOT of books to explain things due to its quirky syntax and myriad coding idioms, so there are simply more Perl books in circulation.
raldiabout 11 years ago
In what possible universe could Perl be considered &quot;straight-jacketed&quot;?
评论 #7289084 未加载
natchabout 11 years ago
&gt;dubbed the Swiss army knife of the Internet<p>&quot;Swiss Army chainsaw&quot; is the correct quote (as can be verified by following the source link provided in the article).
macleodanabout 11 years ago
It seems the perception of Perl 6 as a long delayed update to Perl 5 is a serious problem for the languages. Perl 6 is not really the next version of Perl 5, it is more like another language.<p>Perl 5 is still under active development. The latest stable release was version 18.2, made in January. Perl 5 will continue to exist even when more people start using Perl 6. Also, Perl 6 is available and usable already.
lazyloopabout 11 years ago
Contrary to popular belief Perl is still very much alive and healthy. Sure, it has baggage, but so does any language that kept evolving for decades. If you want to know what Perl really looks like these days take a look at the Modern Perl book (<a href="http://modernperlbooks.com/books/modern_perl/" rel="nofollow">http:&#x2F;&#x2F;modernperlbooks.com&#x2F;books&#x2F;modern_perl&#x2F;</a>) and Mojolicious web framework. (<a href="http://mojolicio.us" rel="nofollow">http:&#x2F;&#x2F;mojolicio.us</a>)
piratekingabout 11 years ago
Perl was the first scripting language I really learned when I was an intern at Sun. I read the whole Camel Book my first couple weeks there. I had an awesome sysadmin mentor that was a Perl guru, and when I asked for help he would give me mysterious one-liners that did powerful things, simply saying &quot;use this&quot;. I had little idea what I was doing at the time, but it was awesome.<p>I use Ruby now for most scripting, and it is also awesome, but a lot less mysterious.
gregjorabout 11 years ago
I understand that this is written from an academic point of view and focuses on scientific computing, but writing &quot;upstart PHP grew in size to the point where it is now arguably the most common language for web development&quot; is a serious understatement.<p>PHP dates back to 1994, and (arguably) became a serious contender with the release of PHP 3 in 1998. PHP pushed out the then-dominant web programming languages ASP (a Visual Basic variant) and ColdFusion, along with Perl. At that time Python and Ruby were not on the web development radar.<p>PHP is not &quot;arguably the most common language for web development&quot;: it&#x27;s by far the most common. Much of that is due to WordPress, Drupal, and other PHP-based CMSs, but unlike Ruby and Rails, PHP had a large developer base before WordPress and Drupal.<p>The article also completely ignores JavaScript, which thanks to node.js is gaining web developer mindshare faster than either Python or Ruby, and may push PHP&#x27;s share down.<p>[PHP also uses the hated $ to prefix variable names, but that hasn&#x27;t slowed it down. PHP is not as pretty as Python or Ruby but it&#x27;s a lot easier to read than Perl.]
评论 #7291524 未加载
pixl97about 11 years ago
Languages that target and reach large numbers of beginners tend to do well. PHP tends to be the primary example, but BASIC and all forms of it continued by Microsoft are another. When any newb can sit for a few minutes with your language and a HOWTO and make a functioning (web)app it has a chance to be successful.<p>It&#x27;s hard to target people with a &#x27;harder&#x27; syntax even if it may be better for some particular reason. Once a person has learned one language it is more worthwhile to gain a more broad knowledge base in that one rather then invest time learning in another.<p>It&#x27;s likely most people that learned perl didn&#x27;t start with perl as their first language. At the time it what came with whatever form of unix they had and extended the scripting they did, but was not friendly. There was just a lack of alternatives at the time. Now, in an interconnected world with no shortage of better alternatives, there is simply little reason to invest any time in learning Perl.
signal9about 11 years ago
My me-too post.<p>I was a web developer working nearly exclusively in Perl during the time period the author describes. I understand the author&#x27;s lack of a handle on the period as he was, as he describes, in middle school at the time. Me, I had a job and a family and I was an actual Perl programmer. Come at me bro.<p>That aside, the description of a transition of developers from Perl to Python just didn&#x27;t happen the way it is described in the article. Or, to be fair, it didn&#x27;t happen that way for me.<p>I worked on a team extracting data from a number of disparate data sources and presenting reports on the web - basically the idiomatic Perl task. We tried to bring in PHP for a bit but found it wanting. As our jobs evolved out from under us, each of us moved on from Perl. Reporting jobs were becoming largely obsolete and there was market demand for working in other languages elsewhere. Being the early oughts, most of the engineers I knew had at least a few languages in their repertoire.<p>Of the developers I worked with, I was the only one to pick up Python. I remember feeling like I wanted to work with a dynamic language where OO was more core to the language feature set. Ruby and Python were both viable, though less known, options. I don&#x27;t remember why I chose Python over Ruby, but I did.<p>My colleagues went on to work in Java or C#. Over time, I did a bit of both as well, especially C#. One buddy of mine still does his personal and peripheral scripting in Perl. I&#x27;ve largely forgotten the language.<p>Back on topic, I simply did not see an exodus of developers from Perl to Python. It just didn&#x27;t happen that way within my community. Jobs got phased out, new ones began, often with new tools.<p>Off topic, what I did see at the time was a large movement of COBOL developers to JAVA. I saw that as a genuine migration, in earnest, of developers who were facing obsolescence.
agumonkeyabout 11 years ago
I only had a shallow knowledge of perl, then I read this <a href="http://matt.might.net/articles/perl-by-example/" rel="nofollow">http:&#x2F;&#x2F;matt.might.net&#x2F;articles&#x2F;perl-by-example&#x2F;</a> . As much as I like linguistics, perl sometimes feels a little too creative :)
评论 #7289474 未加载
GFK_of_xmaspastabout 11 years ago
I used perl as my go-to general purpose language for years and years until I joined a python team in 2004, now the only thing I use perl for is as a sed replacement. The perl6 stuff just killed all its momentum dead, and then it seemed to drop off the face of the earth.<p>I don&#x27;t see it coming back anywhere near what it was fifteen years ago. Too little too late.<p>The only thing I miss about perl is the regexes right there at the heart of things, but I&#x27;ll trade those for scipy&#x2F;numpy&#x2F;cython&#x2F;etc and come out the better for it.
metsgretsabout 11 years ago
I&#x27;m going to take a moment to vent about Perl. My company was experimenting with it as an alternative to Ruby based on the enormity of available CPAN modules.<p>1. CPAN is awful. The website itself is so bad that the &quot;correct&quot; way to browse it is to use the big brother &quot;Metacpan&quot;. Metacpan is also very bad, they strayed too close to CPAN design. Navigating it is a pain, and most of the documentation is done very poorly because no one puts time into formatting their readmes. None of the modules are in github, the issue tracker is a nightmare, the links make no sense ( &quot;Source (raw) Browse (raw)&quot; ) - the website itself is poorly done.<p>2. CPAN has many modules, which sounds like a selling point. The truth is that many of the modules we have worked with have bugs and poor documentation, and almost all of them are unmaintained. The owners either gave up or actually died (this is an old language after all). There is absolutely no support for trying to do common tasks with CPAN modules. You can&#x27;t Google for your error, you won&#x27;t get a response on StackOverflow. Bug reports don&#x27;t get answered because the ecosystem is a ghost town. This makes trying to do common tasks painful.<p>3. CPAN is just messy all around. There&#x27;s not even a command line flag to find out what version of a module you have installed. You have to hack into its internals to figure out what versions you&#x27;re running. Some modules are hosted in foreign countries that intermittently decide not to download. Builds have broken due to inability to download from a mirror. A &quot;benefit&quot; of CPAN is that modules are tested against multiple architectures for you. The reality is that these tests don&#x27;t matter. The Perl developers I&#x27;ve worked with bypass the tests with CPAN by installing with --notest because it&#x27;s faster, and more than once a module has failed to install because the tests failed. But the failure was either a false positive or had no noticeable impact on implementation, and there&#x27;s no alternative and no one to respond to bug reports. The only known benefit of CPAN - automated test running, has never once proved helpful.<p>4. One point I like in this article is that Python makes the right thing obvious. Perl&#x27;s &quot;multiple ways to do things&quot; is one of its bigger design flaws. It seems like Larry Wall (creator of Perl) has a no-one-likes-this-langauge-so-try-to-please-everyone-by-offering-every-way-to-do-it complex. It&#x27;s all to the detriment of the language. I have to Google for how to iterate over a hash every time, because there&#x27;s multiple ways to do it, and they all suck. I never know if iterating over a $hash is the same as iterating over a %hash or a \%hash. Or if I should be searching for &quot;hash&quot; or &quot;hashref&quot; or if I should be using a &quot;list&quot; or an &quot;array&quot; or a scalar or who cares. The multiple ways to do things only amounts to one asshole on the team will exploit some unknown feature of map to write shorter code, not document it, and no one can read it. Any efficiency gained from shorter code is lost to unmaintainability. Also, Perl is not efficient, so it doesn&#x27;t matter.<p>5. The language itself is gross. Beauty is subjective, readable code is not. The prefixing of variable names with @, % et all makes dissecting code hard and Googling impossible. The tacking-on of modern functionality will slap you in the face repeatedly. See: references. References are one of, if not the, biggest design flaw in Perl. They were introduced as a tack-on to hack over it&#x27;s shitty default data structures. They make reading and writing code confusing, overly complicated, and haven not once offered us any benefit. Perl&#x27;s leaky abstraction over poorly implemented data structures is easily seen in references.<p>6. No really, the language is gross. It has magic built in, and the syntax is a nightmare. Everything is done with sigils (characters like ~!=@#$ etc). You get function arguments as @_ . You do a regex match with $string =~ &#x2F;(capture)&#x2F;. This will magically populate $1 through $n with capture groups. This is bad. To substitute a string, you do $string =~ s&#x2F;a&#x2F;b. This modifies the string in place. Try to Google for how to not modify the string in place. Seriously, try and Google for it. If you forget to include an even number of values in a list it becomes another data structure entirely. If you don&#x27;t put a &#x27;1;&#x27; at the end of your module code it will fail to work (no, really).<p>7. Larry&#x27;s personal beliefs stray into Perl too much. Larry is a well known Christian, and you must &quot;bless&quot; a reference, a keyword baked into the language. This creeps me out. It doesn&#x27;t really matter, and I 100% acknowledge how judgmental I&#x27;m being, but it still is out of place in a programming language.<p>8. All of these reasons culminate to one point I just realized: Perl is a bad language for a team. It might be fine for one person to write code that will never have to be maintained or read to accomplish some dirty task. The &quot;features&quot; of Perl ruin it for a team environment. Feautres like its &quot;flexibility&quot;, wheel reinventing to avoid buggy CPAN modules, unreadable features hidden in sigils, magic, poor documentation, and hacker culture make it a very poor choice for multiple people to work on the same thing.<p>This is the perspective of a relative newcomer (~3 months of Perl exploration). I&#x27;m not a Python advocate and I don&#x27;t have a strong opinion of what other language you should use, but Perl has caused us many problems and we switched to Ruby early on because of them. Maybe if &#x2F; when I learn more about it I&#x27;ll have a different opinion of it. Right now though I agree with this article and seeing Perl go out the door is fine with me.
评论 #7290637 未加载
评论 #7289386 未加载
评论 #7289514 未加载
rasz_plabout 11 years ago
Perl - the ultimate job security tool.<p>When I come upon a Perl program that does 80% of what I need, and would do 100% when modified, I simply turn around and look again. I consider reading other peoples Perl code on the same level as firing up Hexrays to debug closed source Mips programs.