Slashdot Mirror


Perl Is Undead

Ptolemarch writes At the Yet Another Perl Conference beginning today in Orlando, the first keynote squarely blamed Slashdot for starting the "Perl is Dead" meme in 2005. Let's be clear: if Perl was ever dead, it must now be undead. If you can't be at YAPC, you can still watch it live.

283 comments

  1. $_ to that? by Anonymous Coward · · Score: 3, Funny

    Congregation: $_
    Pastor: $_.

    1. Re:$_ to that? by Anonymous Coward · · Score: 3, Insightful

      The people of Perl 6 are tolerant and accepting.

      That's quite a broad brush you're painting with there.

      Discrimination and hatred have no place in the modern world.

      Agreed.

      Perl 6 is about love, care, tolerance and friendship.

      Now I think you're getting carried away... I thought it was a multi-purpose scripting language, not a big hug.

    2. Re:$_ to that? by K.+S.+Kyosuke · · Score: 4, Funny

      Perl 6 is about love, care, tolerance and friendship.

      Well, it clearly isn't about deadlines!

      --
      Ezekiel 23:20
    3. Re:$_ to that? by Anonymous Coward · · Score: 1

      Is this some sort of thinly-veiled, implicit slur against the role of Christian people within the Perl 6 community?

      Yeah, the creator of http://www.perlmonks.org/ (the coolest perl community) has changed been baptized. Do you have a problem with that? In case you didn't know, he's been called one of the "ten greats of Monking".

      The Perl 6 community isn't like the Ruby community. They aren't a bunch of immature men who seek to hate and demonize religion, likely out of latent athiesim. The people of Perl 6 are tolerant and accepting. They want you to be who you really are, and they want you to help contribute to the greatness that they're building. You can be a Christian, or Jew, or one than the other or or anything in between or anything else, really. The people working on Perl 6 don't care. It's all about great software, not discrimination and hatred. Discrimination and hatred have no place in the modern world. That's why we don't find them when working with Perl 6. Perl 6 is about love, care, tolerance and friendship. It's not about making people feel bad just because they are who they are.

    4. Re:$_ to that? by Pseudonym · · Score: 1

      I thought it was a multi-purpose scripting language, not a big hug.

      Speak for yourself. Surely it's better at hugging than scripting.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    5. Re:$_ to that? by jd2112 · · Score: 1

      Perl 6 is about love, care, tolerance and friendship.

      Well, it clearly isn't about deadlines!

      Perl 6 is the language of the future and always will be!
      I would say it's the Duke Nukem Forever of languages but DNF actually shipped.
      (too bad though, Although I haven't coded in it for nearly a decade I've always liked Perl, at least once I was able to wrap my brain around regular expressions.)

      --
      Any insufficiently advanced magic is indistinguishable from technology.
    6. Re: $_ to that? by loufoque · · Score: 0

      If your post is any indication, apparently, you can't be atheist without being insulted.

      Religion really is evil.

    7. Re:$_ to that? by Mjlner · · Score: 3, Funny

      Perl 6 is about love, care, tolerance and friendship.

      Well, it clearly isn't about deadlines!

      No, it's about undeadlines!

      I can understand you not bothering to RTFA, but at least you could RTFSubject! Some people... Sheesh!

      --
      Lemon curry???
    8. Re:$_ to that? by ron_ivi · · Score: 4, Insightful

      Perl 6 ...

      Anyone else miss Perl 3 & 4?

      Personally, I think Perl jumped the shark at Perl5.

      As a better awk/sed/bash, I think I've never seen a tool as good as Perl4. But then Larry decided it had to one-up C++ in some sort of "what's the worst possible way to glom on some confusing fake-OO-wrapper around a language that's main strenght was being not-OO" contest.

    9. Re:$_ to that? by Anonymous Coward · · Score: 0

      awk/sed/bash are a better version of Perl6.

    10. Re:$_ to that? by Anonymous Coward · · Score: 0

      Yeah, the creator of Pugs (the most successful Perl 6 system ever) has changed her gender.

      I really hate to throw around 'concern troll,' but this is a fairly obvious flag. Try harder next time.

    11. Re:$_ to that? by Anonymous Coward · · Score: 0

      There are a few douche nozzles in the rails community, but the Ruby community is completely different.

      DHH == Rails == Douchebag
      Matz == Ruby == Humble, smart guy

      If you can't tell the difference between Ruby and Rails you should just shut the fuck lest you get compared to DHH.

  2. sure you want to go with 'undead' ? by mooingyak · · Score: 3, Funny

    It means that the uninfected humans have to shoot it in the head. Or stake it through the heart. And quickly, before things get worse.

    --
    William of Ockham had no beard. The most likely explanation is that it was chewed off by squirrels every morning.
    1. Re:sure you want to go with 'undead' ? by Anonymous Coward · · Score: 0

      Think more along the lines of a utilitarian, single minded focus plodding along despite all rot.

    2. Re:sure you want to go with 'undead' ? by Chewbacon · · Score: 2

      What about "the rumor of perl's death has been greatly exaggerated?"

      --
      Chewbacon
      The Bible is like Wikipedia: written by a bunch of people and verifiable by questionable sources.
    3. Re:sure you want to go with 'undead' ? by minstrelmike · · Score: 1

      What about "the rumor of perl's death has been greatly exaggerated?"

      And you heard it here on slashdot first.

    4. Re:sure you want to go with 'undead' ? by NoNonAlphaCharsHere · · Score: 2

      Actually, it's a misquote. The original quote is "Perl is death".

    5. Re:sure you want to go with 'undead' ? by nitehawk214 · · Score: 1

      What about "the rumor of perl's death has been greatly exaggerated?"

      And you heard it here on slashdot first.

      Yeah, its only Mostly Dead.

      --
      I'm a good cook. I'm a fantastic eater. - Steven Brust
    6. Re:sure you want to go with 'undead' ? by Anonymous Coward · · Score: 0

      So it's an ex-ex-Parrot?

    7. Re:sure you want to go with 'undead' ? by narcc · · Score: 4, Funny

      Slashdot reminds me of the townspeople in "The Simpsons" the way the majority opinion changes.

      It wasn't that long ago that Perl was a darling, loved by all, with indecipherable code flowing freely in sigs and comments. Many even seemed to take pride in creating and sharing the most obtuse code imaginable.

      Now it's, apparently, the worst thing ever that no one in their right mind would use for even the most trivial task.

      Oh, Slashdot. When will you build a monorail?

    8. Re:sure you want to go with 'undead' ? by dmbasso · · Score: 2

      [...] code [...] in sigs and comments. [...] Now it's, apparently, the worst thing [...]

      They tried understanding their own sigs after some time.

      --
      `echo $[0x853204FA81]|tr 0-9 ionbsdeaml`@gmail.com
    9. Re:sure you want to go with 'undead' ? by ahknight · · Score: 1

      Oh god. I just got the image of Rails written in Mono. Pardon me while I stumble around feeling for the mind bleach.

    10. Re:sure you want to go with 'undead' ? by jbolden · · Score: 2

      There has been at least 2 huge shifts in culture in /. since I've been around and I think I was part of the 2nd wave that replaced the original /. crowd. I suspect a lot of the guys with sigs 200k and below were enthusiasts about Perl. In 2000 I would have called Perl my favorite language. By 2005 when Pugs came out I was a Haskell fan so the idea of a dynamic language with the fluidity of Perl having many of the powerful idioms of Haskell (what Perl 6 sort of has) was tremendous. A computer project that takes 14 years is unacceptably slow. We should have had Perl6 a decade ago. People in 2000 believed that in 2004 we'd be hearing that Perl 6 was ready and Perl 5 was legacy. That not having happened changed hearts and minds.

      There is nothing irrational with opinions being guided by changing facts.

    11. Re:sure you want to go with 'undead' ? by ahknight · · Score: 1

      That's a good point. I think everyone being sold on Perl 6 fixing Perl 5's issues and then ... not ... left us all with the impression that Perl 5 has issues that would never be fixed, to which we all reacted as one would expect and abandoned it for something else nice and shiny. With their own problems that will never be fixed.

    12. Re:sure you want to go with 'undead' ? by Anonymous Coward · · Score: 1

      Perl isn't the problem *CPAN* is the problem, untested, unvetted, cross-dependent nightmares of good and bad code that people overlap on top of each and call "packaged".

    13. Re:sure you want to go with 'undead' ? by Kittenman · · Score: 1

      That's a good point. I think everyone being sold on Perl 6 fixing Perl 5's issues and then ... not ... left us all with the impression that Perl 5 has issues that would never be fixed, to which we all reacted as one would expect and abandoned it for something else nice and shiny. With their own problems that will never be fixed.

      I'm waiting for the Perl 7 release. Then I can really talk about the string of Perls.

      (Honestly, it just popped into my head)

      --
      "The greatest lesson in life is to know that even fools are right sometimes" - Winston Churchill
    14. Re:sure you want to go with 'undead' ? by lennier1 · · Score: 1

      It means that the uninfected humans have to shoot it in the head. Or stake it through the heart. And quickly, before things get worse.

      Kinda like what Adobe has been trying to do to ColdFusion ever since they acquired it as part of the Macromedia deal.

    15. Re:sure you want to go with 'undead' ? by Anonymous Coward · · Score: 0

      Seems more like the humor of perl's death has been greatly exaggerated to me.

      *yawn*

    16. Re:sure you want to go with 'undead' ? by David_Hart · · Score: 1

      What about "the rumor of perl's death has been greatly exaggerated?"

      And you heard it here on slashdot first.

      Yeah, its only Mostly Dead.

      Miracle Max has the cure.

      But you either need a compelling reason, like true love (not likely), or a good MLT (Mutton, Lettuce, and Tomato) to get him to come out of retirement.

    17. Re: sure you want to go with 'undead' ? by Anonymous Coward · · Score: 0

      Also, Python got real.

    18. Re: sure you want to go with 'undead' ? by fyngyrz · · Score: 1

      This.

      --
      I've fallen off your lawn, and I can't get up.
    19. Re:sure you want to go with 'undead' ? by maxwell+demon · · Score: 1

      What about "the rumor of perl's death has been greatly exaggerated?"

      Did Netcraft confirm it?

      --
      The Tao of math: The numbers you can count are not the real numbers.
    20. Re:sure you want to go with 'undead' ? by Anonymous Coward · · Score: 0

      I'm surprised nobody has paraphrased what Frank Zappa said about jazz: Perl isn't dead, but it smells funny.

    21. Re:sure you want to go with 'undead' ? by torsmo · · Score: 0

      utilitarian . . . despite all the rot

      Was that meant to belittle Jeremy Bentham? You swine!

    22. Re:sure you want to go with 'undead' ? by Anonymous Coward · · Score: 0

      This is called growing up, both individuals and tools.

      As a teenager obtuse code is awesome. Perl was The Way one did such things, but now BrainF*ck, Whitespace and Ruby do it much better than Perl ever could.

      Now the Perl-based obtuse teenagers are grown up and praise Agile and Clean Code, while the new generation of obtuse teenagers look for the Next Big Thing to show how they are Different And Unique.

    23. Re:sure you want to go with 'undead' ? by Anonymous Coward · · Score: 0

      We should have had Perl6 a decade ago.

      Hom much code did you gave for that to happen?

      How much money did you gave for that to happen?

    24. Re:sure you want to go with 'undead' ? by ArsenneLupin · · Score: 1

      Oh, Slashdot. When will you build a monorail?

      The monorail will come. After all, Lyle Lanley already has "given" Springfield a nice highschool. Moreover, he has refurbished the site of the old nuke station into a wonderful university campus teeming with life. He'll be glad to "give" the city a mono-rail, after all the time it is being talked about!

    25. Re:sure you want to go with 'undead' ? by cout · · Score: 1

      Perl was once upon a time loved by all?

      Are you an invader from a parallel universe?

    26. Re:sure you want to go with 'undead' ? by eriqk · · Score: 1

      What about "Perl thinks it's going for a walk"?

    27. Re:sure you want to go with 'undead' ? by dclydew · · Score: 1

      Wow... way to make us feel old :P

      --
      Get a life, not a lifestyle. - Hikem Bey
    28. Re: sure you want to go with 'undead' ? by Anonymous Coward · · Score: 0

      While perl6 should never have used perl in its name. It stagnated perl development, for a decade. Other languages ate perl's lunch while perl6 was doing nothing but remove perl from the most used language to obsolescence.

      More than any other language, perl was an expression of complex thoughts. People who can't read it were stuck at baby talk and translating it to some language they knew.

      I hate perl 6.

    29. Re:sure you want to go with 'undead' ? by jbolden · · Score: 1

      I think a lot of Perl 5's issues would have been fixed had the focus not shifted to Perl 6. Perl had a very active community. There is nothing about the ideas behind Ruby on Rails that couldn't have happened in Perl. Perl had a community 10x the size of Ruby and Python's combined. The Perl 6 community had a long track record of success and focused everyone's attention on Perl6. I was OK with learning Perl 5.6 features. But there has been a ton since then I didn't learn and I didn't learn them because I was waiting on the better way to do them in Perl 6.

    30. Re:sure you want to go with 'undead' ? by jbolden · · Score: 2

      There never was something like a Perl kickstarter project where they put forward a "for $500k we can finish Perl 6 in one year". This is a two way street.

    31. Re:sure you want to go with 'undead' ? by Anonymous Coward · · Score: 0

      I personally gave a lot. What a waste.

  3. 2005 eh? by jandrese · · Score: 4, Interesting

    I don't think we're ever going to get as clear of an example of the second system effect as Perl 6. If you asked me back in 2005 if I thought it was going to take more than a decade for the next Perl version bump, I would have said no way. Now I'm wondering if Larry and company shouldn't just ditch Perl 6 and come out with Perl 7, that is basically just Perl 5 with some tweaks to make complex data structures less of a nightmare and better integrate the object model, plus some tweaks around the edges like the implicit /x switch on regular expressions.

    --

    I read the internet for the articles.
    1. Re:2005 eh? by mooingyak · · Score: 2

      I always thought Perl 6's major problem was a lack of backward compatibility to Perl 5.

      --
      William of Ockham had no beard. The most likely explanation is that it was chewed off by squirrels every morning.
    2. Re:2005 eh? by Rinikusu · · Score: 1

      There's a Perl 6? When the fuck did this happen?

      --
      If you were me, you'd be good lookin'. - six string samurai
    3. Re:2005 eh? by K.+S.+Kyosuke · · Score: 1

      I don't think we're ever going to get as clear of an example of the second system effect as Perl 6.

      I think R6RS might qualify as well. Damn those sixes...

      --
      Ezekiel 23:20
    4. Re:2005 eh? by rubycodez · · Score: 0

      it hasn't yet, since 2000 Larry and the Perltards jacking around with Perl 6 specs and still it's in development with no production release. In the past we'd say Perl 6 was like Duke Nukem Forever, except DNF finally got released so that joke's gone

    5. Re:2005 eh? by ArcadeMan · · Score: 4, Funny

      How about "Perl 6 is DNF's retarded cousin?"

    6. Re:2005 eh? by rubycodez · · Score: 1

      yes but undead. DNF's undead retarded cousin.

    7. Re:2005 eh? by TWX · · Score: 1

      Unfortunately, those that ultimately ended up with the Duke Nukem rights didn't know that Duke Nukem Forever was never supposed to be released, and the point of calling it "Duke Nukem Forever" was itself the joke... Lacking this sense of humor they decided to develop and release something anyway.

      Unfortunately Larry Wall and company don't have that excuse.

      --
      Do not look into laser with remaining eye.
    8. Re:2005 eh? by megalomaniacs4u · · Score: 1

      Come on it took ages for perl4 to die... This is normal.

    9. Re:2005 eh? by Anonymous Coward · · Score: 0

      So Perl 6 is like the Vista of programming languages.

    10. Re:2005 eh? by John+Bokma · · Score: 2

      Those things are happening or planned except for the version number change.

      Tweaks to make complex data structures less of a nightmare: http://search.cpan.org/dist/pe...

      better integrate the object model: https://github.com/stevan/p5-m...

    11. Re:2005 eh? by Anonymous Coward · · Score: 0

      Perl 6 and PHP 6, languages of choice on GNU/HURD.

    12. Re:2005 eh? by Anonymous Coward · · Score: 0

      I think of it as being Java without classes.

    13. Re:2005 eh? by jbolden · · Score: 1

      At this point what's the advantage in not pushing through? Perl 6 already Osborned Perl5. Perl6 is a heck of a huge upgrade. After 14 years there has been a tremendous amount of progress (about 1/5th the pace it should have had but still it has happened).

    14. Re:2005 eh? by jbolden · · Score: 1

      The Perl6 interpreter has pretty good compatibility with Perl5. They are doing that so that Perl6 can use most Perl5 modules.

    15. Re:2005 eh? by jellomizer · · Score: 1

      I will not blame Perl or Slashdot. But MySQL and MicrosoftSQL 2000+

      Late 1990s most programs were off a lot of file I/O. Writting to a file and reading from it. But full fledge Database systems were Expensive and took a lot of resources. So Perl with its Regular Ecpressions made it a great tool for handling these files.

      MySQL and Microsoft started to push high quality, affordable and runs well on low end systems database software. Allowing for Languages with better DB integration without the RegEx ugliness so PHP and .NET took over perls web space.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    16. Re:2005 eh? by Anonymous Coward · · Score: 0

      ^^^ THIS HAHAHA

    17. Re:2005 eh? by Anonymous Coward · · Score: 0

      That is basically happened to JavaScript. The ES4 spec (I think that was the one) got loaded up with all sorts of neato, cool, backwards compatible breaking features, and was stuck in committee for years.

      Luckily the community woke up, chucked ES4, produced ES5 as a strict cleanup, and restarted with more sane ambitions for ES6.

  4. "Undead" doesn't mean vibrant, though. by Anonymous Coward · · Score: 4, Interesting

    Maybe Perl isn't completely "dead", but it sure as fuck isn't as vibrant of a scene as it once was.

    In the 1990s, Perl was THE BIG THING . It was cool. It was trend-setting. It was what let average programmers and sys admins become superheroes, and it let good and great programmers and sysadmins become ABSOLUTE GODS .

    Knowing Perl was what got you jobs. Knowing Perl was what let you get the hard work done fast. Knowing Perl was essential. If you didn't know Perl, you were SHIT IN A URINAL .

    Perl's got some fierce competitors now. Python can do everything Perl can do, but with a way cleaner syntax. Ruby isn't as capable as Perl or Python, but it has a religious aspect to it that makes some hipsters go absolutely batshit crazy for it. Perl just can't compete against them.

    Yeah, Perl isn't dead, and there are a lot of people who still use it today. But let's not kid ourselves, it's not the 1990s. It's not the GLORY DAYS OF PERL , when it ruled the roost.

    1. Re:"Undead" doesn't mean vibrant, though. by al0ha · · Score: 2

      I don't know about Python, I could never get used to indentation to represent blocks of code, too easy to get lost. { } makes much more sense to me...

      --
      Did you ever wake up in the morning, with a Zombie Woof behind your eyes? -- FZ
    2. Re:"Undead" doesn't mean vibrant, though. by mattack2 · · Score: 4, Interesting

      Python can do everything Perl can do, but with a way cleaner syntax.

      If only I could turn off indentation==scope. I would pay $20 for this ability (to work in every interpreter, not some special one off interpreter just for me).

      Even *with* that limitation (and yes, I know a million people will respond saying it's oh so great and I just don't get it), I still think Python is pretty decent.. Though it seems to have (seemingly) superfluous colons in a few places, which reminds me of Pascal or BASIC.

    3. Re:"Undead" doesn't mean vibrant, though. by UnknownSoldier · · Score: 4, Insightful

      One of the biggest problems with Python is that you can't email people code without it fucking with the formatting.

      Any language design that relies on whitespace as being important is brain-dead.

    4. Re:"Undead" doesn't mean vibrant, though. by Anonymous Coward · · Score: 3, Interesting

      I've never had issues with emailing python code between people within my research group and those outside of it from time to time. Maybe that is because we standardize on using spaces instead of tabs and the email programs don't strip that when sending just text emails. If you are sending something more complex then a dozen lines you could/should just send it as an attachment anyway. Or if you don't keep sensible line lengths, as I've had some email programs of yore insert linebreaks in a bunch of places, and that didn't matter what language you tried emailing if you let the lines get too wide.

    5. Re:"Undead" doesn't mean vibrant, though. by j127 · · Score: 1

      That is a really easy problem to solve: You can just set the font of the code to monospaced in the email and the indentation will be preserved. Or send the email as plain text. Or link to a Gist. Most editors have a plugin to post selections to Gists. Or attach the code as a text file.

    6. Re:"Undead" doesn't mean vibrant, though. by Austerity+Empowers · · Score: 1

      It doesn't strike you that engineering your environment around a particularly unnecessary aspect of a programming language is a sign of a problem with the language? The whitespace thing is really annoying to a lot of people. I'm a fan of whitespace, really, but I prefer to do it my way, or when being paid, the way my team wants it done.

      I use python on a regular basis, it definitely has some advantages to perl in terms of datastructures, but it also has some bugshit crazy aspects too and an idiomatic style that really doesn't make a lot of sense and the control portion of the language has gone so far in to OOP excess that I find myself having to code around it.

    7. Re:"Undead" doesn't mean vibrant, though. by Shompol · · Score: 2

      My senior colleague also does not get it. The thing is, with C-syntax you need braces + indentation. So python halves your work out of the box. In C when indentation and braces are mismatched you read the code one way, but the computer interprets it differently. In Python: fixed.

    8. Re:"Undead" doesn't mean vibrant, though. by Anonymous Coward · · Score: 0

      Really? ABSOLUTE GODS??? It was always a GSD language. I guess maybe if nobody in your organization could get SD without Perl, and somebody came along and GSD with Perl they might look like a God; but it had nothing to do with Perl. I've seen people GSD in all kinds of ways. Even in 1998 we were catching on to the fact that Perl was being used to write job security applications. Weeding through it as the maintenance programmer was not fun. The guy wasn't trying to obfuscate it, so it was doable... just not fun. If he had actually tried to make it fancy, we probably would have just had to clean spec and re-write it. Like many companies, it went Ch. 11 but emerged. I wonder if that code did. Probably not.

    9. Re: "Undead" doesn't mean vibrant, though. by madprof · · Score: 1

      Emailing python is unusual. I tend to er, commit to Git and let people pull my changes.
      Emailing Perl can be hard too because so few people know how to write decent Perl that you end up reading rubbish.

    10. Re:"Undead" doesn't mean vibrant, though. by BlackPignouf · · Score: 1

      Ruby isn't as capable as Perl or Python

      [citation needed]

    11. Re:"Undead" doesn't mean vibrant, though. by goose-incarnated · · Score: 0

      My senior colleague also does not get it. The thing is, with C-syntax you need braces + indentation. So python halves your work out of the box. In C when indentation and braces are mismatched you read the code one way, but the computer interprets it differently. In Python: fixed.

      That's incorrect. Python already has open brace in the form of the ':'. The close brace is the keyword 'pass'. In addition to needing at least one brace, it also needs indentation. C-syntax only needs the braces, not the indentation so, technically, the python syntax is double the work, not half.

      In python you need to put in the open brace ':' anyway, so why not just use '{' like every other language out there?

      --
      I'm a minority race. Save your vitriol for white people.
    12. Re:"Undead" doesn't mean vibrant, though. by Anonymous Coward · · Score: 0

      Python can do everything Perl can do, but with a way cleaner syntax.

      use strict;

    13. Re:"Undead" doesn't mean vibrant, though. by Carewolf · · Score: 1

      That and Python is not nearly as fast to use for oneliners. Perl is strongest as a shell replacement for writing powerful scripts, efficient scanning&parsing or a quick hack.

    14. Re:"Undead" doesn't mean vibrant, though. by CnlPepper · · Score: 2

      pass is the equivalent of a nop, it has nothing to do with scoping. Have you ever read or written any python?

    15. Re:"Undead" doesn't mean vibrant, though. by Anonymous Coward · · Score: 0

      Ruby isn't as capable as Perl or Python.

      Parent doesn't realise how much of a hipster that makes him sound...

    16. Re:"Undead" doesn't mean vibrant, though. by Anonymous Coward · · Score: 2, Insightful

      If knocking braces off is "halves your work out of the box" then you are programming wrong.

    17. Re:"Undead" doesn't mean vibrant, though. by Anonymous Coward · · Score: 0

      In C-syntax, your text editor (or even yourself) can infer the proper code structure from the curly braces. You can tell your editor to do automatic formatting and you'll end up with readable and correct code with proper indentation, even if originally the white space was messed up by an incompetent teammate or pasting from web mail or whatever. No such luck in python. If your indentation is gone or messed up beyond recognition, the entire meaning of the code is gone and deciphering intent becomes hell.

      Braces also helps with editing code. If I decide I want to remove a loop or an if statement around a piece of code, I can simply cut and paste it outside, and my editor will correct the formatting. For python, I would also have to manually change the indentation. Python does not halve your work out of the box, but doubles it.

    18. Re:"Undead" doesn't mean vibrant, though. by goose-incarnated · · Score: 2

      pass is the equivalent of a nop, it has nothing to do with scoping. Have you ever read or written any python?

      According to every single example given on the python documentation page, pass is used to end a block. It get's even more hilarious when you try embedding python into (for example) html pages like web2py does (I've been using web2py hence my discovery that python actually has to have an end brace of sorts).

      'Pass' is not a 'noop', according to the documentation; it's simply an empty statement serving only a syntactical function. In other words, had python had an end-brace the way it has a start-brace, 'pass' would not be needed. The only use for 'pass' in python is to serve as an end-brace.

      --
      I'm a minority race. Save your vitriol for white people.
    19. Re:"Undead" doesn't mean vibrant, though. by Oswald · · Score: 1

      I'm pretty sure I've heard Guido say (in a video--not, like, at my dining room table) that the colons are indeed superfluous, but that in testing for Python's predecessor, ABC, users thought the code read more naturally with the colons in the syntax. Might have been in the "history of Python" presentation he did at Dropbox before he worked there.

    20. Re:"Undead" doesn't mean vibrant, though. by Anonymous Coward · · Score: 0

      In C you need parentheses around the condition in an if-statement, and in function definitions, for-loops, switch statements, and so on: +2 characters required in the C approach.

      It's easier to type a colon than an open brace, and the Python convention is to have no space between the expression and the colon. In C people almost always use a space or newline: +1.

      So C has those braces: +2. That's 5 characters on top of the indentation. Python has the colon: -1 for C. So C is +4 characters.

      The pass statement's syntactical function is simply in allowing you to define blocks that contain no operations. You would never put it at the end of every block.

    21. Re:"Undead" doesn't mean vibrant, though. by Anonymous Coward · · Score: 0

      Or you know, throw your code in git.

    22. Re:"Undead" doesn't mean vibrant, though. by ArsenneLupin · · Score: 1

      You shouldn't send mails using hotmail (or gmail, for that matter). It messes your text up. Use a real e-mail program.

    23. Re:"Undead" doesn't mean vibrant, though. by Anonymous Coward · · Score: 0

      Compulsory whitespace in languages is fine. Email clients that screw around with the formatting are a problem.

    24. Re:"Undead" doesn't mean vibrant, though. by Anonymous Coward · · Score: 0

      Would be nice - my work has standardized email to be html mail with a standard header, footer, and signature. I've got to send anything formatted as an attachment.

    25. Re:"Undead" doesn't mean vibrant, though. by Anonymous Coward · · Score: 0

      That's a lot of ifs and buts to rationalize the use of whitespace.

    26. Re:"Undead" doesn't mean vibrant, though. by Anonymous Coward · · Score: 0

      And why exactly do you email code around in 2014 anyway?
      Just share the links to source control, be it git or svn or whatever.

    27. Re:"Undead" doesn't mean vibrant, though. by Anonymous Coward · · Score: 0

      Aw shit, I started using Perl in 1999, I knew I was the reason for its demise!! :(

    28. Re:"Undead" doesn't mean vibrant, though. by Anonymous Coward · · Score: 0

      Damn, once I designed a language with indentation == scope, and thought it was good.

    29. Re:"Undead" doesn't mean vibrant, though. by Elbows · · Score: 1

      But my editor can do the indentation for me based on the braces. And if I change the control flow (for example, moving a block of code into an if), the editor can easily reindent the whole block. So using whitespace for indentation doesn't save me any work and in some cases takes more work (when I have to manually adjust indentation because the editor can't figure it out).

      It's a relatively minor annoyance, and I'm actually a big fan of Python. But I sometimes wish it had an "end" keyword like Lua or Ruby.

    30. Re:"Undead" doesn't mean vibrant, though. by ygslash · · Score: 1

      Python, Ruby... You're right, it's not the 1990's anymore. it's the 2000's.

      Oh, wait - it's already past 2010 now? So - how about Haskell?

    31. Re:"Undead" doesn't mean vibrant, though. by peawormsworth · · Score: 1

      There is a feature in your email client called "attachments". The habit of pasting code inline with your email content is your issue to solve and not a "problem with Python"

    32. Re:"Undead" doesn't mean vibrant, though. by Anonymous Coward · · Score: 0

      Any language design that relies on whitespace as being important is brain-dead.

      Fans of a new language flock to that language in the hopes that their skills with the latest and greatest fad will obsolete and make irrelevant the skills of everybody else, especially those with more programming experience.

      Quality of the language is irrelevant, provided there are suitable marketing bullets one can add to any presentation of the language.

      It's all about self interest.

      Kind of like legal professionals creating business for themselves by making the law unnecessarily complex.

    33. Re:"Undead" doesn't mean vibrant, though. by UnknownSoldier · · Score: 1

      Code snippets.
      Technical analysis.

      Just because *you* don't email code, doesn't imply that *other* people don't have a need to.

    34. Re:"Undead" doesn't mean vibrant, though. by ZigMonty · · Score: 1

      Sure... the only use for pass is to allow an empty block. But outside of canned examples and temporary debug hacking, empty blocks are not exactly used very often. Hence in the vast majority of cases, python has no "end-brace". Claiming that the pass keyword is a closing brace is disingenuous as it implies that it is always required. It *is* a no-op. You can use the pass keyword absolutely anywhere you want, and it will do nothing. It's only "useful" however in the largely useless case of empty blocks.

    35. Re:"Undead" doesn't mean vibrant, though. by Anonymous Coward · · Score: 0

      Code review tools don't have the links you can paste and share?
      Certainly emaliing code is one way to collaborate, doesn't mean it is a good way.

    36. Re:"Undead" doesn't mean vibrant, though. by goose-incarnated · · Score: 1

      Sure... the only use for pass is to allow an empty block. But outside of canned examples and temporary debug hacking, empty blocks are not exactly used very often. Hence in the vast majority of cases, python has no "end-brace". Claiming that the pass keyword is a closing brace is disingenuous as it implies that it is always required. It *is* a no-op. You can use the pass keyword absolutely anywhere you want, and it will do nothing. It's only "useful" however in the largely useless case of empty blocks.

      That's even worse. 'Exceptions to the rule' are the worst type of program structure rules there are. At least in other languages there is a rule that always applies - a block is delimited by braces. In python you now have to say 'a block is delimited by indentation, except for when the block is empty, or when the interpreter is unable to figure out indentation. When is the interpreter unable to figure out indentation? The interpreter can always figure out indentations, except for when the code is filtered through some third party like web2py".

      Frankly, I like the programming language rules to be simple, not filled with exceptions to a general rule. Python has many flaws (what the hell is 'print'? A statement? It acts like a function call but doesn't look like one, except if you're using python 3, or if you import 'print_function') but it's biggest has got to be the people who defend all the exceptions to the general rules. In this regard its closest relation is PHP, which also has general-rules-plus-exceptions-to-them up the wazoo.

      Regardless, my original point still stands - python has a non-optional start-brace anyway. They should have just stuck with an actual brace for delimiting 'start of program block' instead of being hipsterish different and using a colon. Of course that wouldn't fix everything but it would be a start.

      --
      I'm a minority race. Save your vitriol for white people.
    37. Re:"Undead" doesn't mean vibrant, though. by Anonymous Coward · · Score: 0

      They should have just stuck with an actual brace for delimiting 'start of program block' instead of being hipsterish different and using a colon. Of course that wouldn't fix everything but it would be a start.

      Since Python today is rather mainstream, you might find find that the "hipsterish" movement is the one that denounces its features without apparently being the slightest knowledgeable in the subject. Thereafter, an introspective process is close at hand.

    38. Re:"Undead" doesn't mean vibrant, though. by vilanye · · Score: 1

      The combination of enforced white space, and not making everything an expression has significantly weakened Python.

      The workarounds for Python's gimped lambdas for instance(they suck because of the above two issues) are truly bloated and horrifying.

      Tacked on scoping(self isn't required because 'explicit is better than implicit', that is just spin. It is required because once upon a time, Python had no scoping) and OO just add to the Python suck-fest.

      If explicit is truly better than implicit the language wouldn't be filled with implicit elements. Don't believe Guido's spin.

    39. Re:"Undead" doesn't mean vibrant, though. by Shompol · · Score: 1

      ...and my editor will correct the formatting. For python, I would also have to manually...

      Just like a C editor "corrects the formatting" for C, a Python editor "corrects the formatting" for Python.

    40. Re:"Undead" doesn't mean vibrant, though. by Shompol · · Score: 1

      I have to manually adjust indentation because the editor can't figure it out

      Try using a Python editor? I don't want to start the next "emacs vs vi" round, but seriously...

    41. Re:"Undead" doesn't mean vibrant, though. by j127 · · Score: 1

      I like Python, but I understand why people might have a reaction to certain elements. I have a very strong, irrational dislike of 2-space indentation in any language, for example. (I don't like wavy edges on the left side of the text, especially in languages with curly braces.) My comment was just in response to whether it's difficult or easy to email people Python code. It's easy, so if that is one of the language's "biggest" problems, it's doing well.

    42. Re: "Undead" doesn't mean vibrant, though. by j127 · · Score: 1

      You can use Gists: https://gist.github.com/

      I have a plugin in Vim that lets me select some code and then type :Gist -p to send it to a private Gist. It automatically opens the Gist in my browser and I can send the link from there. (If using Pentadactyl, just press "y" to yank the URL onto the clipboard -- the process is very fast.) There are similar plugins for other editors too.

    43. Re: "Undead" doesn't mean vibrant, though. by madprof · · Score: 1

      Nice idea. However I am working with code that can't escape the office network. And anyway we also have Crucible if we want to do proper code review.

    44. Re:"Undead" doesn't mean vibrant, though. by Anonymous Coward · · Score: 0

      Ruby isn't as capable as Perl or Python

      Citation needed

      Given that Ruby is far more flexible and has a cleaner syntax than either Perl or Python, your burden of proof is going to very high.

  5. It should be dead by Aethedor · · Score: 1, Insightful

    Whatever it is now, it should be dead. For the simple reason that Perl allows this kind of code:

    $_='while(read+STDIN,$_,2048){$a=29;$b=73;$c=142;$t=255;@t=map{$_%16or$t^=$c^=( $m=(11,10,116,100,11,122,20,100)[$_/16%8])$t^=(72,@z=(64,72,$a^=12*($_%16 -2?0:$m&17)),$b^=$_%64?12:0,@z)[$_%8]}(16..271);if((@a=unx"C*",$_)[20]&48){$h =5;$_=unxb24,join"",@b=map{xB8,unxb8,chr($_^$a[--$h+84])}@ARGV;s/...$/1$&/;$ d=unxV,xb25,$_;$e=256|(ord$b[4])

    --
    It doesn't have to be like this. All we need to do is make sure we keep talking.
    1. Re:It should be dead by al0ha · · Score: 0

      So what is your point?

      --
      Did you ever wake up in the morning, with a Zombie Woof behind your eyes? -- FZ
    2. Re:It should be dead by preaction · · Score: 5, Insightful

      Shall we drag out all the other obfuscated code contests and judge all languages guilty by the most heinous crimes committed with them? Remember that C and C++ give us Windows.

    3. Re:It should be dead by mi · · Score: 3, Insightful

      You can write C-code obscurely too. But, somehow, Perl seems to encourage this sort of thing... 20 years ago my CS-professor dismissed Perl as a "write-only" language — since then my conviction of him being right has only grown.

      --
      In Soviet Washington the swamp drains you.
    4. Re:It should be dead by l0ungeb0y · · Score: 1

      Frankly, this is the EXACT sort of shit coding that made me hate Perl and glad to see it go. Because I have seen so many examples of coding not too dissimilar to that. With Perl it has always seemed there is an ongoing contest among developers to see how arcane and unreadable they could make their code to show their "cred". Perl can go to hell, it's developer base can go fuck themselves and frankly the world will be a much better place as soon as that language is dead.

    5. Re:It should be dead by Anonymous Coward · · Score: 0

      Perl is the regex match function wrapped in a scripting language. Many programming languages now feature regex as a core API (see C#). ...which means Perl really doesn't have much to offer these days. You can't write anything more complex than a text transform in it so it's really more like an XSLT that's impossible to read. ...and no, "impossible to read" is not a desirable feature.

    6. Re:It should be dead by nitehawk214 · · Score: 1

      While I do not particularly care for perl... shit programmers will write shit code in whatever language they are given. It isnt the language's fault they are shit programemrs. (though languages like perl are more than happy to give programmers as much rope as they would like)

      My real problem with perl is that the fucking camel advocates bad programming style and hard to write code. I think snippets like yours come about because first time programmers read the camel and instantly became bad programmers. Larry effectively made people worship doing "neat tricks" as a style. It isn't the language, its the culture of lazy coding that the language grew out of.

      Groovy, Python, and friends could have become the same pile, but at least they have examples and books that are written with style.

      --
      I'm a good cook. I'm a fantastic eater. - Steven Brust
    7. Re:It should be dead by zippthorne · · Score: 2

      A language that is expressive enough to allow you to write code that is concise and understandable (but no more concise. Cutting out verbosity is only good when it improves legibility) is going to give you enough of a dialect to make some truly twisted and illegible statements that are, nevertheless, still valid code.

      I don't think we should blame the language for being powerful enough that an evil programmer can be unfathomably evil, if it also enables a just programmer to be eminently understandable.

      --
      Can you be Even More Awesome?!
    8. Re:It should be dead by Toad-san · · Score: 1

      Your point being ... ???

    9. Re:It should be dead by Anonymous Coward · · Score: 0

      Very good point. I write very legible Perl code after years of practice, but the standard books do encourage a little too much "cutesy"-ness. That can be handy for short, fire-and-forget scripts, but it can quickly get ridiculous in a code base of any size.

    10. Re:It should be dead by Anonymous Coward · · Score: 0

      Try debugging something in the perl core. You will hate perl even more once you have done so. It seems that the same people who write crappy and obfuscated perl scripts wrote the core of the perl interpreter using the same coding "style".

    11. Re:It should be dead by jbolden · · Score: 3

      Perl remember originated with short system automation scripts a replacement for Sed and AWK. It wasn't uncommon for a Perl script to be one line

      perl -e... in a shell script.
      And then of course a replacement for shell scripting. Perl handled 20 line programs wonderfully. But what works well at 20 lines doesn't work so well at 2000 lines. Perl took on new problem domains.

    12. Re:It should be dead by fanatic · · Score: 1

      Nothing forces anybody to write that way. Perl 5 is plenty good and CPAN still rocks. I suppose the Python community has something comparable. I'll admit I haven't checked. I've tried to make myself learn Python twice - the second time I remembered "syntactically significant whitespace - that's why I laughed at this last time". Don't feel like the Lone Ranger though, I hate BEGIN and END almost as much - maybe more.

      --
      "that's not encryption - it's a new perl script that I'm working on..." - from some Matrix parody
    13. Re:It should be dead by Anonymous Coward · · Score: 0

      No it doesn't allow this kind of code:

      Can't find string terminator "'" anywhere before EOF at - line 1.

    14. Re:It should be dead by Austerity+Empowers · · Score: 1

      find me a language that makes it impossible to write bad, unreadable, unmaintainable code and I will show you an AI capable of doing your job for you.

    15. Re:It should be dead by Anonymous Coward · · Score: 0

      You can write C-code obscurely too. But, somehow, Perl seems to encourage this sort of thing

      There's plenty of evidence that C encourages code where "an attacker can run arbitrary code of the attacker's choice".

      But many people still use C for _important_ stuff despite not being able to write in C without creating those problems. They should practice on nonimportant stuff till they get good enough at C for important stuff.

      People writing unreadable perl code isn't such a huge problem. It just makes it more obvious to other people that the offending parts have to be rewritten.

      The LibreSSL and BoringSSL bunch are rewriting OpenSSL because it's too full of crap C.

    16. Re:It should be dead by Shompol · · Score: 1

      A friend of mine, a physics major, is using Python to do his finance math (he secretly prefers Matlab) -- managed to write same exact code in Python, since chaining statements with ;'s is still allowed. All variable names are exactly one letter long, no spaces -- a wall of text margin to margin with no blank lines. His code will be dumpstered the moment he is not available to maintain it.

    17. Re:It should be dead by Anonymous Coward · · Score: 0

      I've seen well documented and well written perl (actual error handling and reporting that was worth something, readable modules) and I've seen horribly undocumented (or poorly documented) perl with obfuscated code due to syntax and variable name choices.

      Perl is flexible and that flexibility can be used competently and with high readability or not. That's a choice by the programmer.

      A friend once described Perl vs. Java like this:

      "Java functions, the language and the JVM work together to give you this: Some guy shows up at your party. The bouncer at the door checks his ID, makes sure he's on the guest list and isn't packing any heat before letting him in.

      Perl, with all of its flexibility and its particular typing rules works like this: You are at your party, there are a lot of people there, and you find some strange guy rummaging around in your fridge. You don't know who he is or what he is up to. He just walked in the open door and the people there didn't ask any questions."

    18. Re:It should be dead by SpaghettiPattern · · Score: 2

      You can write C-code obscurely too. But, somehow, Perl seems to encourage this sort of thing... 20 years ago my CS-professor dismissed Perl as a "write-only" language — since then my conviction of him being right has only grown.

      I understand but disagree. Any language can be a write-only language if you don't care about maintainability. Then there are the wannabe gurus that save 3 lines of code not to shorten the program but to impress others. Even worse, there are people that criticise readable code for it being too simple. If you ever worked in a team of programmers with varying skills then you appreciate simple, readable code. You also will once you had to take over unreadable code.

      --

      I hadn't the slightest objection to his spending his time planning massacres for the bourgeoisie... (P.G. Wodehouse)
    19. Re:It should be dead by dargaud · · Score: 3, Informative
      Absolutely. I wrote in Perl for a year. I gave up when I figured out I couldn't understand pieces of code I'd written a month prior.

      And another issue for me was this whole There's More Than One Way To Do It philosophy which I find extremely frustrating. Write a piece of code in 20 lines and show it on usenet. Somebody writes it in 10. Then another one pipes up in 3. Then the true Guru comes up with a one-liner that nobody can grok. And they all run faster. Maybe.

      It also mean that when you read somebody else's code, you have to pattern that you can recognize. In C if I have to go through an array, you can bet there's gonna be a loop. In Perl, mystery, it could be any of multiple and rarely used constructs. The thing that made Perl popular at once was the integration of regular expressions, but we now have this in Bash =~, so why bother ?!?

      --
      Non-Linux Penguins ?
    20. Re:It should be dead by Anonymous Coward · · Score: 0

      You can write C-code obscurely too. But, somehow, Perl seems to encourage this sort of thing...

      No, Perl merely doesn't dictate what you can and can't do with it. This is the Unix philosophy at work: you're being given enough rope to hang yourself with, on the assumption that you will use said rope for something productive rather than causing your own untimely demise.

      20 years ago my CS-professor dismissed Perl as a "write-only" language â" since then my conviction of him being right has only grown.

      So... an argument from authority, and 20 years later you still haven't gotten over it? Come on. If you want to dismiss Perl, fine, but can you at least come up with something better than "a human of superior social status said it was bad two decades ago"?

    21. Re:It should be dead by Sobrique · · Score: 1

      You can write bad code in any language. Perl is just more tolerant. That's a feature. It means you have more scope for writing _good_ code, with decently formatting, structure and idioms.

      You don't have to do that of course, and you can continue playing with obfuscated code. But really - that's not the fault of the language you're using.

    22. Re:It should be dead by Sobrique · · Score: 1

      If you're doing 2000 liners, Perl also lets you do things like object oriented code, modularisation etc. It may not be the best tool at that job, but it's a pretty versatile one that scales quite well.

    23. Re:It should be dead by dgatwood · · Score: 1

      I understand but disagree. Any language can be a write-only language if you don't care about maintainability. Then there are the wannabe gurus that save 3 lines of code not to shorten the program but to impress others. Even worse, there are people that criticise readable code for it being too simple. If you ever worked in a team of programmers with varying skills then you appreciate simple, readable code. You also will once you had to take over unreadable code.

      To paraphrase the famous adage: A C programmer can write C in any language; a bad programmer can write Perl in any language.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    24. Re:It should be dead by dgatwood · · Score: 1

      I wrote a partial C language interpreter in Perl once. Trust me, you can write code that's a lot more complex than a simple text transform. With that said, you don't write that sort of code like you'd write a script. You write it like you'd write a large C/C++ library or framework....

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    25. Re: It should be dead by Anonymous Coward · · Score: 0

      Perl is the closest thing to a linguistic language. Some people ever get beyond baby talk.

      In the real world often the subject is understood and not explicitly stated.

      In the real world idiomatic expressions are in widespread use.

      That you think in c, not perl, is not a fault of perl. I really feel sorry for people who can't get to a level of thinking in high level perl.

    26. Re: It should be dead by Anonymous Coward · · Score: 0

      "In the real world often the subject is understood and not explicitly stated."

      Then it isnt "understood". Assumptions are anathema. Subtlety is nothing more than a vice of the pompous.

      "In the real world idiomatic expressions are in widespread use."

      Thats because there are a lot of idiots in the real world.

    27. Re:It should be dead by nmr_andrew · · Score: 1

      Perhaps you should place the blame for the shit coding on shit coders rather than the language? Because it's not particularly difficult to write good, clean code in Perl, certainly no harder than in most other languages. Perl does seem a bit more tolerant of obfuscated code, but it's far from necessary to write it that way, unless as you say somebody is trying to show off how 1337 they are.

    28. Re:It should be dead by nmr_andrew · · Score: 1

      Even worse, there are people that criticise readable code for it being too simple.

      Thanks for bringing up a huge pet peeve of mine. It's one thing if the code truly needs to be optimized for speed/efficiency or to fit in some very limited resources, but for most things I've ever encountered the difference between "less efficient but more readable" and "highly optimized but I'll never grok how this works" is often no more than 2-3 lines of extra code and an execution time difference of at most a few microseconds. No matter what, that highly optimized but obfuscated code should be commented.

    29. Re:It should be dead by jbolden · · Score: 1

      Absolutely, Perl has some organizational features. But many of the techniques that Perl encourages for short programs work against good organization. The longer the program the more strict you want the language to be. The reason people complain is that those features allowed Perl to handle applications style programs without all the features you would want A few bolt ons don't solve Perl's problems. Ultimately an entirely different language the right thing for large projects.

    30. Re:It should be dead by MooseMiester · · Score: 1

      Isn't interesting that in 50 years we've gone from Grace Hopper "SUM INVOICE_AMOUNT INTO INVOICE_TOTAL" syntax to preferring code that looks to the untrained eye like complete gibberish? I am in no way suggesting a return to COBOL-74 but it seems that the inventors of all this stuff didn't have the massive ego's we have today, where we all are expected to pray at the altar of the guy who writes code no ordinary mortal can possibly read, let alone debug.

      Grace used to bring a coil of wire to her lectures. She would point to it, and say "That's a millisecond. Every programmer who ever wasted a millisecond should be forced to wear this around their neck for a week"

      Today, we start with a "framework" of 30,000+ little tiny files - and we use ten lines of them. But for the non developer, it makes the web site look damn complicated.

      --
      Murphy was an optimist
    31. Re:It should be dead by Lodragandraoidh · · Score: 1

      This brings to mind the purposes of creating and using code in the first place:

      Where you are the only person that needs to see and understand it - this is fine; it serves your purposes happily for you.

      On the other hand, where the purpose of creating and using the code extends beyond one person, this structure does not serve that need effectively. This is primarily because, while it may function, it is too brittle to be maintained by a team of developers over many years through many iterations in design without considerable time and errors generated in the process.

      From seeing things like this, I would argue that there are way too many clever programmers - and not enough smart ones.

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
    32. Re:It should be dead by Anonymous Coward · · Score: 0

      Absolutely. I wrote in Perl for a year. I gave up when I figured out I couldn't understand pieces of code I'd written a month prior.

      You know, you could have just written "I am too incompetent to leave comments in my own code" and saved yourself a lot of typing.

    33. Re:It should be dead by Anonymous Coward · · Score: 0

      C# has shitty Unix integration.

      Perl and Ruby shine in string handling, regex and Unix integration. Nothing else comes close.

    34. Re:It should be dead by Anonymous Coward · · Score: 0

      If you keep frothing rage and hatred, you'll die much sooner than Perl. And yes, the world will probably be a better place.

  6. Yes, Perl is indeed dead and rotting by rubycodez · · Score: 1, Interesting

    Larry killed Perl, 14 years and counting and still no Perl 6 production release.

    Meanwhile, Perl 5 being phased out of system building / admin tools and web frameworks. Even Perl 5 is dying.

    1. Re:Yes, Perl is indeed dead and rotting by cruff · · Score: 4, Informative

      Meanwhile, Perl 5 being phased out of system building / admin tools and web frameworks. Even Perl 5 is dying.

      Not for me, I write new Perl 5 code all the time. Get some real useful work done with it too.

    2. Re:Yes, Perl is indeed dead and rotting by rubycodez · · Score: 2, Insightful

      some people still write new COBOL too

      sure, can write good stuff with it, but it is passing

    3. Re: Yes, Perl is indeed dead and rotting by AcerbusNoir · · Score: 1

      Great and wise are you.

    4. Re:Yes, Perl is indeed dead and rotting by Sez+Zero · · Score: 4, Informative

      Perl 5.20 was just released and "represents approximately 12 months of development since Perl 5.18.0 and contains approximately 470,000 lines of changes across 2,900 files from 124 authors."

      That doesn't seem to bad to me, but I'm not sure how that number of core release authors compares to other languages like Python or Ruby.

    5. Re:Yes, Perl is indeed dead and rotting by rrohbeck · · Score: 1

      You'd be surprised how many software packages have a complete Perl under the hood.

    6. Re:Yes, Perl is indeed dead and rotting by rubycodez · · Score: 1

      no I wouldn't, quite familar with that in both Linux and BSD lands

      just last week had to install some nagios nrpe package that had some Perl library requirements, and it was hell first trying the one from repository, then a couple alternative CPAN ones, and finally finding the actual POS that would work.

    7. Re:Yes, Perl is indeed dead and rotting by UrsaMajor987 · · Score: 2

      Same here. The great thing about Perl is not all the things you can do with it, but all the things you don't have to do because there is CPAN module that already does what you want. IMHO, the most important characteristic of a language is its' usefulness and Perl is very useful indeed.

    8. Re:Yes, Perl is indeed dead and rotting by johnkzin · · Score: 4, Interesting

      Meanwhile, Perl 5 being phased out of system building / admin tools

      Really? what's replacing it? (genuine question ... I haven't seen anything that really fills that niche as effectively nor as completely)

      Perl 5 is still charging full steam ahead in every sysadmin group I've been around. I know there are python advocates out there, but I have only encountered ONE major IT shop that is completely (or nearly so) python driven (and it happens to be Guido's employer -- hardly a good example). Other than that, the most I've seen is _some_ python but _mostly_ perl in any IT shop.

      Sure, language-geeks have been talking about what other language has done a better job of being "a language" for at least 10 years ... but really, anything you can say negatively about perl can be said about bourne shell programming. And, yet, not only did bourne shell dominate *nix sysadmin and package install programming for 25+ years, but it is _still_ being done out there, by some backward luddite sysadmins. Perl has only been dominant in the sysadmin space for less than 15 years ... I wouldn't be surprised if it lasts at least another 10 more. And, really, since it lacks many of bourne shell programming's problems, it'd be reasonable to expect it to keep going for a lot longer than that. Especially as perl 5's evolution continues to slow down and become more stagnant (creating a consistent and stable programming layer ... which has not been true through the entirety of perl 5's lifespan -- there were a few major hiccups there as various sub-systems were refined or changed).

      (to be clear, perl 5 has _existed_ for more than 15 years, but it didn't become really dominant as a sysadmin language of choice, finally eclipsing bourne shell, until the very late 1990's or early 2000's ... probably about the time that y2k issues wiped out anything too old to have/support perl, and the last of many *nix vendors and most linux distro's being sure they included perl in their boilerplate installation, pretty much removing bourne shell's one major claim to fame (ubiquity).)

    9. Re:Yes, Perl is indeed dead and rotting by mbadolato · · Score: 5, Interesting

      More telling is how utterly fast Perl is compared to the other languages. I've run most of the sample files from this language shootout and had remarkably similar results to what they list there.

      The Perl version performed on par with the C and C versions, and it's growth/memory usage stayed pretty consistent throughout. The other languages were horrid. They took much longer, and their memory usage grew significantly during the run.

      I use Perl still when doing scripting tasks. I love Perl, always have. I don't, however, necessarily think it's the right choice for building a medium to large web-based application any more. Sure the performance is there, and there are some great frameworks like Catalyst and Dancer, but to me, they still feel a bit antiquated to some of the other technologies I've used. Plus installing tons of CPAN modules can get a little trying at times.

    10. Re:Yes, Perl is indeed dead and rotting by rubycodez · · Score: 1

      seeing a lot of system tools built in python now

    11. Re:Yes, Perl is indeed dead and rotting by Anonymous Coward · · Score: 0

      Yeah, everyone seems to have switched to Python 3... err, Python 2... well, Go?

    12. Re:Yes, Perl is indeed dead and rotting by preaction · · Score: 1

      Nah, Rust is the new hotness!

    13. Re:Yes, Perl is indeed dead and rotting by johnkzin · · Score: 2

      Like I said, I haven't seen python take over anywhere other than Google. That's a big claim to fame, surely. But, it's not as wide spread as it could or should be, at this point in python's life, IMO. It just doesn't have the momentum nor clear advantage (to non-language-geeks) over perl to push it forward fast enough to overtake perl.

      I do like python, mind you. I just think it's stuck in the betamax / BSD niche (academically superior to its cousins, but stuck in second place for reasons that have nothing to do with its academic superiority ... because academic superiority doesn't win any races outside of academia).

    14. Re:Yes, Perl is indeed dead and rotting by Anonymous Coward · · Score: 0

      470,000 lines of changes across 2,900 files from 124 authors

      i'm supposed to be impressed by volume?

    15. Re:Yes, Perl is indeed dead and rotting by Anonymous Coward · · Score: 0

      I don't, however, necessarily think it's the right choice for building a medium to large web-based application any more. Sure the performance is there, and there are some great frameworks like Catalyst and Dancer, but to me, they still feel a bit antiquated to some of the other technologies

      Have you looked at Mojolicious?

      From that page:

      1. An amazing real-time web framework, allowing you to easily grow single file Mojolicious::Lite prototypes into well structured web applications.
      2. Powerful out of the box with RESTful routes, plugins, commands, Perl-ish templates, content negotiation, session management, form validation, testing framework, static file server, first class Unicode support and much more for you to discover.
      3. Very clean, portable and Object Oriented pure-Perl API without any hidden magic and no requirements besides Perl 5.10.1 (although 5.18+ is recommended, and optional CPAN modules will be used to provide advanced functionality if they are installed).
      4. Full stack HTTP and WebSocket client/server implementation with IPv6, TLS, SNI, IDNA, Comet (long polling), keep-alive, connection pooling, timeout, cookie, multipart, proxy and gzip compression support.
      5. Built-in non-blocking I/O web server, supporting multiple event loops as well as optional preforking and hot deployment, perfect for embedding.
      6. Automatic CGI and PSGI detection.
      7. JSON and HTML/XML parser with CSS selector support.
      8. Fresh code based upon years of experience developing Catalyst.
    16. Re:Yes, Perl is indeed dead and rotting by John+Bokma · · Score: 2

      Same here. I am a freelance Perl programmer and for the past 12+ months have been very busy with coding in ... Perl. More so than when Perl was considered the "glue that holds the web together". And no, it isn't maintenance of old code.

      A number of people who left Perl and declared it dead are the ones that couldn't program in Perl to begin with (never learnt the language, thought it could be learned by trial and error), and most likely still can't in whatever they consider fashionable right now.

    17. Re:Yes, Perl is indeed dead and rotting by TWX · · Score: 2

      wouldn't that be a Perl under the shell?

      *ducks*

      --
      Do not look into laser with remaining eye.
    18. Re:Yes, Perl is indeed dead and rotting by viperidaenz · · Score: 1

      Maybe Larry is dead? For all we know he's just some chat bot trying to pass a turning test.

    19. Re:Yes, Perl is indeed dead and rotting by Anonymous Coward · · Score: 1

      YOU CAN HAVE MY PERL V5x
      when you pry it out of my
      dead cold fingers
      It does what I need it to do
      quickly - simply - sucks web pages,
      accepts posts, installs in a blink,
      handles flat files, indexed files
      and weenies who need more db capabilities like OraPerl or other cluster-screwball security/debugging nightmares should probably stick to windows... ...having written software since 1979 in more than 20 languages amounting to a mountain of code that is higher than any 10 of you - combined - along with over 15,000 web pages AFTER that career - I have a wee bit of experience and perl v 5x is a delight...

    20. Re:Yes, Perl is indeed dead and rotting by ThePhilips · · Score: 0

      More telling is how utterly fast Perl is compared to the other languages.

      The test is ridiculous.

      In any (Perl) program more complicated that helloworld (and in Perl terms that could be already pretty sophisticated piece of code) most of the time would be spent on calling functions.

      All the test accomplishes, is testing how well Perl itself is implemented. And that we know already. (This test is basically biased against Java, or in fact, any language with immutable strings. Java just tops it off with slow IO.)

      I use Perl still when doing scripting tasks. I love Perl, always have. I don't, however, necessarily think it's the right choice for building a medium to large web-based application any more. Sure the performance is there [...]

      That's the problem: performance of Perl5 with any kind of largish framework would be pretty miserable because Perl's interpretation model is not designed to handle it.

      Literally all interpreters decades ago went with p-code interpreters - and only Perl5 is still stuck with the traditional interpretation by (slightly optimized) syntax tree.

      In my personal tests I have seen a clear dependency between performance and the size of optree: larger the optree, slower the code.

      With any kind of sizable framework, the optree would be enormous. While bytecode allows for more aggressive optimization (inlining or IPO or profile based optimizations; after all, bytecode is just data), optree is very hard to modify (it is structured and inter- and intra-linked).

      --
      All hope abandon ye who enter here.
    21. Re:Yes, Perl is indeed dead and rotting by Anonymous Coward · · Score: 1

      It probably depends a lot on exactly what industry you're in, and a lot down to luck as there are lot of places using different things and combinations. I used to use perl a lot about 10 years ago for both system management and software glue when working with high performance computing and managing clusters for university and government research. I haven't seen any perl in the last four projects/places I've worked though, either on the sysadmin side or on on the user scripting side. The simplest stuff might be in a shell script, but otherwise it is all python and idl (ugh), with the latter being abandoned whenever possible. And these are not academic environments in the sense of being filled with CS people, but mainly physicists and engineers picking the tools to get crap done as fast as possible. It is probably different in other shops, and would need some actual surveys instead of anecdotal accounts.

    22. Re:Yes, Perl is indeed dead and rotting by WhoBeDaPlaya · · Score: 2

      I worked in EDA/physical design and use Perl on the job everyday, with a smattering of Tcl and SCALA on the side.

    23. Re:Yes, Perl is indeed dead and rotting by jbolden · · Score: 1

      COBOL has been passing since the 1970s. You probably want to use another analogy. Perl5 will be very lucky if it passes as slowly as COBOL.

    24. Re:Yes, Perl is indeed dead and rotting by cforciea · · Score: 2
      From the benchmark you linked:

      String manipulation is the core functionality for all languages so this allows to compare languages fairly.

      If that doesn't clue you in on how utterly full of shit he is, I'm not sure what will. I mean, Java Strings are immutable. This test is just about adding strings together. That's pretty much the worst possible case for trying to benchmark Java. So if you're coding Java and adding a bunch of strings together, you use a StringBuilder and not a String. Only you can go look at the source code, and whoever wrote it didn't. Not only that, but how much memory Java would use during the run would depend pretty much entirely on flags given to the JVM, because it would just keep eating up space copying the immutable String over and over until it was forced to garbage collect. And that's all just a quick inspection of the Java comparison. I am pretty confident without looking that that margin of difference between C and C++ is entirely due to pathological C++ code.

      I mean really, if you think that your interpreted language is comparable to any major compiled language in performance, you're an idiot. Sabotaged test results (whether the result of duplicity or incompetence) don't change that.

    25. Re:Yes, Perl is indeed dead and rotting by discord5 · · Score: 3, Informative

      I moderated in this article, but this is something that I'd like to talk about for a bit, even if only anecdotal...

      Perl 5 is still charging full steam ahead in every sysadmin group I've been around. I know there are python advocates out there, but I have only encountered ONE major IT shop that is completely (or nearly so) python driven (and it happens to be Guido's employer -- hardly a good example)

      Over the past 8 years my own usage of Perl in writing code has declined to zero. There has been a mentality change over the years in the shop I work in, and where we used to grab for Perl by default as a quick'n'dirty duct-tape & MacGuyver language, we now exclusively rely on Python. I think there are several reasons for this shift.

      The most prominent one to me personally is that other languages have adopted CPAN-like repositories. I don't know about the statistics of numbers of modules, active development, number of commits, etc etc, and put bluntly I really don't care. Although these statistics are interesting into disseminating how active a language is to its developers, to me as a user of the language it only matters if a module is maintained and does what its supposed to do. The thing is, for most of the things I used to use Perl modules for, I now use Python modules, and can say "Well, it's good enough".

      Our development teams composition has also changed. A lot of our older generation of programmers/admins have retired or switched jobs, and a lot of younger people were hired to replace them. The younger generation is definitely more familiar with Python, Ruby and other scripting languages than it is with Perl. The incentive for learning Perl has become a lot smaller. Perl was the de facto language for many when writing a CGI script, but then RoR and AJAX happened. While over time Perl adapted (think Catalyst and Dancer) other languages have adapted as well. Look at all the wsgi applications and frameworks in Python.

      Our investment in Perl itself was more of the kind where we used a set of scripts to change data from format A to B at which point our Java and/or C++ code takes over, or some tools to deal with our logs, etc. The switch to Python for these tools was gradual (but quick) process, and we found ourselves not looking back. I can't really say that we were/are heavily invested in Perl or Python, but for day to day usage Python has completely taken over. Who knows where we end up in another 8 years from now?

      Lastly, if you were to go around our shop, asking people what's new about Python 3 you'll get pretty much right answers. If you go around our shop asking people what's happening with Perl 6, you will get a blank stare. I remember clearly how Perl 6 was going to become the best thing since butter on toast, ... There was general excitement about it all, and then there was a whole load of ... well... nothing. We're 11-12 years further and there's still no sign of Perl 6. What the hell happened there?

      Perl has only been dominant in the sysadmin space for less than 15 years ... I wouldn't be surprised if it lasts at least another 10 more.

      I don't doubt that Perl will be around for a whole lot longer. It has assembled a group of dedicated die-hard users and developers over the years, and in general it has a great community. There are older, more horrible languages that are still alive today, so I doubt Perl will be gone anytime soon.

      However, while my entire post is anecdotal, I do think the Perl community is deluding itself a bit. The talk in the video (I actually listened to it in the background while working on something) mentions a lot of statistics that are interesting to the Perl developers and maintainers, but are hardly and indicator of usage or adoption. The more interesting part of the statistical talk was about the general decline of jobs available for scripting languages in favor of newer technologies, but even those statistics in general don't speak much about usage and adoption.

      FWIW, may Perl be around a long long time. Having more tools at your disposal is never a bad thing.

    26. Re:Yes, Perl is indeed dead and rotting by shrewdsheep · · Score: 1

      I am a Perl developer of 20 years. Yet I feel that the lack of modern OO-syntax and -semantics makes the language akward to use. There is Moose but it comes with a startup performance penalty and syntax-modifiers like MooseX::Declare make such code incredibly difficult to debug. Yet there are some CPAN-modules for which I could not find replacments yet for either Python or Ruby. Parse::RecDescent allows you to write powerful parsers in an (IMO) incredibly sane way using (modified) BNF DBIx::* is a set of modules for ORM that allow you to write OO-database code without *any* glue code I would like to learn about alternatives (I am personally leaning more to Ruby than to Python). If Moose with MooseX::Declare would go into the core language without performance penalty, I would be happy for the next 10 years.

    27. Re:Yes, Perl is indeed dead and rotting by johnkzin · · Score: 2

      I remember clearly how Perl 6 was going to become the best thing since butter on toast, ... There was general excitement about it all, and then there was a whole load of ... well... nothing. We're 11-12 years further and there's still no sign of Perl 6. What the hell happened there?

      Don't get me wrong about this particular thing... all of my commentary is about Perl 5. I think Perl 6 is dead on the vine. I think Perl 5 will probably be the final definition of the language. It will get refined, and bug fixed, but I don't think it will get the type of complete change that Perl 6 implies (not the current concept of perl 6, nor any concept of similar scope that might replace the current perl 6 concept). Nor do I think that that's a bad thing (for Perl 5 to be final definition of the language).

      I'm also not saying Perl 5 is perfect. I just think it's "good enough"* for what it does, and for use in sysadmin type development (which is not just for quick and dirty duct-tape programming ... I've written pretty extensive projects in Perl), with a momentum that will carry it forward for more than a little while.

      (* nor do I consider "good enough" to be a snobbish backhanded compliment ... I mean it more in the light of "the perfect is the enemy of the good-enough" -- "good enough" gets things done, "perfect" gets defined and redefined on a white-board for an eternity and never accomplishes anything other than a bunch of bloviating) (nor am I implying that that negative version of "perfect" applies to _any_ of the other languages being discussed ... I'm just saying, "good enough" is a good thing when applied to perl 5.)

    28. Re:Yes, Perl is indeed dead and rotting by Anonymous Coward · · Score: 0

      I still remember the days when Python was far from "academic superiority" ... do they finally have a BNF these days?

    29. Re:Yes, Perl is indeed dead and rotting by Anonymous Coward · · Score: 0

      You're extrapolating language performance from a single, flawed microbenchmark? Seriously?

      I gave up on Perl because I can't make it perform as well as other languages for my ETL work. That includes Java, by the way. I don't have silly string appends in my code, at least not many. Mostly I read data from a file/socket/db and write to a file/socket/db. There are many simple ways to optimize that in a concurrent language that are hard/impossible in Perl.

      My conclusions are based on real applications we use every day, not a contrived microbenchmark I found on the Internet.

    30. Re:Yes, Perl is indeed dead and rotting by rubycodez · · Score: 1

      plenty of useful languages in acadamia and the world don't have nor need a BNF grammar

    31. Re:Yes, Perl is indeed dead and rotting by Anonymous Coward · · Score: 0

      Ruby is taking over system scripting in a big way. Python is a minor player in this area.

      Chef and Puppet are two big reasons why Ruby will soon be the #1 admin tool in the server room.

  7. Perl 6ers just can't get shit done. by Anonymous Coward · · Score: 3, Insightful

    I don't think there's a second-system effect going on with Perl 6. Every two or three years some new team has come along and tried to implement it, only to totally fail and produce nothing usable. These people didn't implement Perl 5, so I don't think we can say that Perl 6 is a second attempt for them.

    These Perl 6ers have just continually done stupid shit with half-assed virtual machines and intermediate languages, rather than getting real work done.

    For fuck's sake, just look at the approaches that have always worked in the past:

    - Perl 5 and earlier: An interpreter written in C.

    - Python: An interpreter written in C.

    - Ruby: An interpreter written in C.

    - Lua: An interpreter written in C.

    - Tcl: An interpreter written in C.

    - PHP: An interpreter written in C.

    - UNIX shells: Interpreters written in C.

    The lesson should be crystal-fucking-clear: write an interpreter in C. That's all the Perl 6ers need to do, but for some reason they just won't do it.

    No more Parrot. No more crap written in Haskell. No more stupid intermediate languages. The Perl 6ers just need to cut out the crap, and do things right for a change.

    1. Re:Perl 6ers just can't get shit done. by Anonymous Coward · · Score: 1

      Thank you, Saul Tigh.

    2. Re:Perl 6ers just can't get shit done. by Anonymous Coward · · Score: 1

      except it's not true that all working interpreters are direct c interpreters.
      plan 9's rc implements a virtual machine (which it even bootstraps) and
      interprets the virtual machine. the interpreter is however c.

      it's interesting to note that the vm is dead simple and only implements
      instructions an rc interpreter might need. but it is a vm.

      so perhaps the failure is one of humility. parrot got too huge, and wasn't
      even the point of the project.

    3. Re:Perl 6ers just can't get shit done. by TWX · · Score: 1

      - Perl 5 and earlier: An interpreter written in C.

      - Python: An interpreter written in C.

      - Ruby: An interpreter written in C.

      - Lua: An interpreter written in C.

      - Tcl: An interpreter written in C.

      - PHP: An interpreter written in C.

      - UNIX shells: Interpreters written in C.

      So what was C written in?

      --
      Do not look into laser with remaining eye.
    4. Re:Perl 6ers just can't get shit done. by Anonymous Coward · · Score: 0

      And who actually uses rc? Nobody. Just like Perl 6.

    5. Re:Perl 6ers just can't get shit done. by UnknownSoldier · · Score: 2

      > So what was C written in?

      B, which was a stripped down version of BCPL, and then later C.

    6. Re:Perl 6ers just can't get shit done. by Beck_Neard · · Score: 3, Insightful

      You're implying that C-based interpreters are quicker and easier to develop, but that's patently not the case. Just look at the recent huge surge of LLVM-based JIT languages that have been developed extremely rapidly and in high-level languages. C is probably a poor choice now that good alternatives really exist.

      Maybe the problem isn't the choice of language. Maybe the problem is that the designers were incompetent.

      --
      A fool and his hard drive are soon parted.
    7. Re:Perl 6ers just can't get shit done. by 0xdeaddead · · Score: 2

      I'll drink to that!

    8. Re:Perl 6ers just can't get shit done. by Chris+Mattern · · Score: 2

      So what was C written in?

      C. At the beginning of the tool chain, there'll be a bootstrap compiler written in assembler, but full production C compilers are written in C.

    9. Re: Perl 6ers just can't get shit done. by bill_mcgonigle · · Score: 1

      ha, from B to B

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    10. Re:Perl 6ers just can't get shit done. by Anonymous Coward · · Score: 5, Informative

      Writing a virtual machine in C is dead-simple. It's just a loop over a table of opcodes. You can even get fancy and thread your dispatcher (that is, replace your loop conditionals with direct jumps to the next instruction handler), making it nearly as fast as JIT'd code because the CPU can pipeline all your virtual instructions.

      In fact, writing a virtual machine is arguably easier than writing an AST (abstract syntax tree) interpreter (which is what Perl5 is), because it's an elegant abstraction that cleanly separates areas of concern.

      If you can't write a VM in C than you're definitely not an experienced programmer. And if you think using LLVM to write an interpreter is easier, than you're just... I don't even know what... totally out of touch and have no clue how this stuff works.

      The VM isn't the problem. It's all the bells and whistles. The typing and object system. The FFI system. Garbage collection. Perl6 is a complex language, and they tried to bury too much of that complexity at the virtual machine layer. Or at least, they got tangled up in it.

      They couldn't use existing interpreters because at a minimum they wanted sane string prototype with a proper understanding of Unicode, something Java, C# and other systems lack. Perl 6's NFG (normalization form G) is a thing of beauty, but to make it fast you have to put it at a low-level. As for why they got hung up on all the other stuff, I don't know.

      To see what a fast, practical, feature-rich, and state-of-the-art (non-experimental) virtual machine looks like, I would recommend Lua's VM. It's about as simple as you can get and yet remain widely useful. It's completely written in portable, ANSI C (1989), it's several times faster than Perl, Python, Ruby and most other non-JITd interpreters, and the bytecode dispatcher is basically a giant switch statement inside a loop--very easy to read and work backwards through how the typing system works. (It could be made even faster by threading the dispatcher, but to remain concise and performant--without a mess of function pointers-- would require using a non-portable construct like computed gotos. Although the only C compiler I know of which doesn't actually support computed gotos is Visual Studio.)

    11. Re:Perl 6ers just can't get shit done. by Anonymous Coward · · Score: 0

      i never claimed that it was in widespread use. i mentioned it exists.
      the code is well worth looking over. it's only a few kloc. it's much simpler
      than even bash 1.x.

      fwiw, i use rc every day. it saves a lot of annoyance dealing with shell oddities inherited from
      40 year old decisions that in hindsight seem like not the best ideas.

    12. Re:Perl 6ers just can't get shit done. by dotgain · · Score: 1

      You're clever, young man, very clever, but it's turtles all the way down.

    13. Re:Perl 6ers just can't get shit done. by Beck_Neard · · Score: 1

      > that is, replace your loop conditionals with direct jumps to the next instruction handler

      This would accomplish nothing as GCC already highly optimizes loop conditionals with jumps.

      > And if you think using LLVM to write an interpreter is easier, than you're just... I don't even know what... totally out of touch and have no clue how this stuff works.

      I didn't suggest that the perl6 team use LLVM to write an interpreter. I'm just saying that examples exist of people successfully implementing interpreters in this way (using a high-level frontend and compilation to bytecode for performance) for fairly complex languages, without major development hell like perl6 experienced. The resulting code is often simpler than C (really -- have you ever looked at the source code for CPython?), even considering the added complexity of generating bytecode. Thus your conclusion (that the reason they failed was because they didn't use C) doesn't follow from your premises. It's more likely that they were just incompetent and bad at language design and implementation. Perhaps LLVM is a bad choice for perl6, but again, that boils down to language design.

      > The VM isn't the problem. It's all the bells and whistles. The typing and object system.

      I couldn't agree more that feature creep is the enemy when it comes to language implementation. Just look at C++.

      --
      A fool and his hard drive are soon parted.
    14. Re: Perl 6ers just can't get shit done. by Anonymous Coward · · Score: 0

      It accomplishes everything. I've written several VMs and neither GCC nor clang can remove the loop conditional. I don't even know how'd they do it given that the bytecode is dynamic. And any compiler which removes an explicit conditional on an enum type is begging for trouble because for decades most code treated enums as conveniences, not as closed sets with guaranteed nose daemons if a value snuck in outside those declared.

    15. Re:Perl 6ers just can't get shit done. by Anonymous Coward · · Score: 0

      it was written in B

    16. Re:Perl 6ers just can't get shit done. by serviscope_minor · · Score: 1

      So what was C written in?

      Originally some sort of proto-C, with the earliest proto C being in B. These days the modern major compilers are written in C++.

      --
      SJW n. One who posts facts.
    17. Re:Perl 6ers just can't get shit done. by serviscope_minor · · Score: 1

      but full production C compilers are written in C.

      Or C++. GCC (now) and LLVM are written in C++. I believe VS is in C++ as well but cannot find confirmation.

      --
      SJW n. One who posts facts.
    18. Re:Perl 6ers just can't get shit done. by Anonymuous+Coward · · Score: 1

      except it's not true that all working interpreters are direct c interpreters. plan 9's rc implements a virtual machine (which it even bootstraps) and interprets the virtual machine.

      How come? When was that true?

      Looking through the source code of rc (http://plan9.bell-labs.com/sources/plan9/sys/src/cmd/rc/) there is absolutely nothing of the sort.

      It's a simple interpreter that creates some intermediate bytecode out of the syntax tree, and then execute it in a stack machine.

      Very much like mawk or such.

      You probably have vague recollections about limbo/inferno, go or other similar failures they've churned out since then.

    19. Re:Perl 6ers just can't get shit done. by jandrese · · Score: 1

      I don't think there's a second-system effect going on with Perl 6. Every two or three years some new team has come along and tried to implement it, only to totally fail and produce nothing usable. These people didn't implement Perl 5, so I don't think we can say that Perl 6 is a second attempt for them.

      Nope, this is exactly what happens with the Second System effect. Everybody gathered up all of the ideas that percolated and were grafted on to Perl 5 and wrote a huge requirements document for the next version. Then when people try to implement it they discover that it takes way more effort than they expected and fail. Repeat a few more times and you have a language that either never comes out, or finally appears from a single vendor and costs a small fortune because they had to pour so many man hours into it. Even then it's buggy and slow and most people never touch 90% of the features because it's way too big to grok and even the reference manual is a monster. Plus, a lot of the tertiary features are poorly tested and likely buggy.

      The proper solution is to build a small(ish) but relatively clean core language and have a robust module system to let people pull in only the features they need, and to let developers focus on relatively small parts of the design and get it right. Perl5 actually does a pretty good job of this, but it could use some fixes here and there.

      Requirements documents are a two edged sword. Without them you end up with a hodgepodge language (see: Perl 5), but it's a lot easier to write requirements than it is to fulfill them. Put too many in there and the system becomes colossally expensive to build. This is the primary reason Government work is so inefficient, because simply writing the requirements and then verifying that they were followed is an enormous job, and training everybody in what their specific requirements are is also a massive undertaking.

      --

      I read the internet for the articles.
    20. Re:Perl 6ers just can't get shit done. by Wdomburg · · Score: 2

      - Perl 5 and earlier: An interpreter written in C.

      Not exactly. The interpreter compiles the source files into a bytecode and executes it on a stack-based virtual machine: ahref=http://perlbin.sourceforge.net/perlcompiler/perl.internals.pdfrel=url2html-14852http://perlbin.sourceforge.net...>

      - Python: An interpreter written in C.

      A virtual machine in C: http://www.troeger.eu/files/teaching/pythonvm08.pdf

      - Ruby: An interpreter written in C.

      A virtual machine in C: http://en.wikipedia.org/wiki/YARV

      Or in C++: http://rubini.us/

      Or against the JVM (which is written in C++): http://jruby.org/

      - Lua: An interpreter written in C.

      A virtual machine in C: http://www.lua.org/doc/jucs05.pdf

      - Tcl: An interpreter written in C.

      A virtual machine in C: https://www.tcl.tk/community/tcl2002/archive/Tcl2002papers/kenny-bytecode/paperKBK.html

      - PHP: An interpreter written in C.

      Hey, you got one. However the they are currently revising the language to make it compatible with adding a JIT later: http://www.computerworld.com/s/article/9248637/PHP_keepers_plot_radical_revision_of_the_language

      And Facebook has their own C++ VM: http://hhvm.com/

      - UNIX shells: Interpreters written in C.

      Different problem space.

    21. Re:Perl 6ers just can't get shit done. by Trogre · · Score: 1

      C. It's C all the way down.

      --
      "Nine times out of ten, starting a fire is not the best way to solve the problem." - my wife
    22. Re:Perl 6ers just can't get shit done. by vilanye · · Score: 1

      Ruby 1.8 and earlier has a AST interpreter written in C.

      All, or nearly all of the standard library for Ruby(regardless of version) is written in C.

      To say Ruby is written in C is not wrong in the slightest.

    23. Re:Perl 6ers just can't get shit done. by Wdomburg · · Score: 1

      Ruby 1.8, which was superseded in 2009 and completely discontinued in 2013.

      The majority of the standard library is written in Ruby. The handful of extensions typically have native Java versions under JRuby (and I believe in Ruby under Rubinus).

      It may not be "wrong", but it is significantly incomplete. The language has multiple first class implementations, in multiple languages. But the broader point was not the implementation language (which I point out is C in several examples) but other languages in the same class are not interpreters in the classic sense. They are almost universally virtual machines, either from the beginning (like python) or at some point in their evolution (like Ruby, TCL, PHP, etc).

    24. Re:Perl 6ers just can't get shit done. by Anonymous Coward · · Score: 0

      Wrong, nearly 100% of the core library is C(String, array, hash, numerics, etc). Go to the docs. You can toggle the source code. Compile Ruby from source and watch the output.

      A significant amount of the standard library is also C.

      For example, the source for the method
      VALUE rb_ary_push(VALUE ary, VALUE item)
      {
              long idx = RARRAY_LEN(ary);

              ary_ensure_room_for_push(ary, 1);
              RARRAY_ASET(ary, idx, item);
              ARY_SET_LEN(ary, idx + 1);
              return ary;
      }

      That is C, not Ruby.

      So once again, the Core Ruby libraries are all written in C. Always have been, always will be.

    25. Re:Perl 6ers just can't get shit done. by Anonymous Coward · · Score: 0

      Freaking Slashdot. The method is <<, which is a real method on Array, not an operator.

    26. Re:Perl 6ers just can't get shit done. by Wdomburg · · Score: 1

      That is the core API, not the standard library (csv, net/*, json, etc).

      And again, that holds true for MRI Ruby, not every implementation. For example, in JRuby, this is:

      /** rb_ary_push - specialized rb_ary_store
                *
                */
              public RubyArray append(IRubyObject item) {
                      modify();
                      int valuesLength = values.length - begin;
                      if (realLength == valuesLength) {
                              if (realLength == Integer.MAX_VALUE) throw getRuntime().newArgumentError("index too big");

                              long newLength = valuesLength + (valuesLength >> 1);
                              if (newLength > Integer.MAX_VALUE) {
                                      newLength = Integer.MAX_VALUE;
                              } else if (newLength

      And in Rubinius:

      def push(*args)
              Rubinius.check_frozen

              return self if args.empty?

              concat args
          end

  8. Ruby is fast behind. by Anonymous Coward · · Score: 0

    I've watched Perl die out over the past 15 years, and I'm seeing the exact same trend happening with Ruby. But with Ruby it's happening a lot faster. Ruby was adopted faster, and it's being discarded faster. People have lost patience with its shitty performance, and especially the shitty, shitty people involved with its community. Everybody is tired of dealing with shithead know-it-all Ruby hipsters who write horrible code. In fact, I would not be surprised at all if I'm still dealing with Perl 5 code 20 years from now, when nobody is still using Ruby, but everybody still remembers how shitty Ruby code and Ruby programmers were.

    1. Re:Ruby is fast behind. by rubycodez · · Score: 1

      maybe in the americas that's true, not true elsewhere in the world *shrug*

    2. Re:Ruby is fast behind. by preaction · · Score: 1

      There are developers who ride the wave of new languages (who appear to be surfing towards Go and Rust now that JavaScript has crested). In that respect, Perl has long since settled down, and Ruby is on the wave's trailing end. It could be said that now the hype wave is over, people can get real stuff done in the language.

    3. Re: Ruby is fast behind. by Anonymous Coward · · Score: 0

      maybe rails, but vagrant and chef arent going away anytime soon

  9. "Undead"? Exactly. by v3xt0r · · Score: 2, Insightful

    Most of the scripts/programs that I still use that are written in perl, truly are 'zombie processes', waiting to be put out of their misery.

    --
    the only permanence in existence, is the impermanence of existence.
  10. Perl6 vs. Perl5 by oneiros27 · · Score: 2

    So a few years ago, a bunch of people decided that there was no point in waiting for Perl6, and started back porting the features they liked into Perl5.

    And to deal with the whole issue of the Perl6 syntax not being compatible w/ Perl5, they've added 'use feature' where you can tell it which features to enable. (or specify a version number to turn on a whole bunch of things)

    So, you want postfix dereferencing? Then use perl 5.20, and enable the feature. (although, I believe it's currently enabled via 'experimental', so people know they're enabling a feature that may change)

    --
    Build it, and they will come^Hplain.
    1. Re:Perl6 vs. Perl5 by frank_adrian314159 · · Score: 1

      Oh my God! Is PERL really competing for worst language with Brainf*ck? After reading the article on the operator mentioned, I can only assume so. I can't believe with all of the syntax backward-compatibility crap they've bolted on they couldn't just have cleaned up the syntax. Thus, my assumption is the only reasonable explanation. Or maybe brain damage... I hear you get that from PERL.

      --
      That is all.
    2. Re:Perl6 vs. Perl5 by John+Bokma · · Score: 1

      The language is called Perl. Funny that so many people on Slashdot still don't get it right.

    3. Re: Perl6 vs. Perl5 by madprof · · Score: 1

      You fed the troll. Whoops.

    4. Re:Perl6 vs. Perl5 by dgatwood · · Score: 2

      Oh my God! Is PERL really competing for worst language with Brainf*ck? After reading the article on the operator mentioned, I can only assume so. I can't believe with all of the syntax backward-compatibility crap they've bolted on they couldn't just have cleaned up the syntax. Thus, my assumption is the only reasonable explanation. Or maybe brain damage... I hear you get that from PERL.

      No, it's actually more of a vicious cycle. Bad coders write bad Perl, which leads to brain damage, which results in worse code. If you have an array with five or six indices, unless you're doing some sort of borderline insane physics computation, you're already solidly in WTF territory. Most sane people try to limit their arrays to about two indices. Three is unusual. Beyond that limit, you should almost always be assigning explicit variable names to the components, and not working with them as arrays. And that limit applies to associative arrays and data structure chain references, too. If you're going more than about two or three steps out, there needs to be a named variable in there somewhere so that the code will be maintainable.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

  11. Modern Weak Languages by c0d3r · · Score: 0, Troll

    It probably has lost popularity because all of these newbies can't handle a more powerful language, and have to go back to basic like languages. I could do lots with little code in Perl. Python looks like a BASIC with some c and perl features.

    1. Re:Modern Weak Languages by Sez+Zero · · Score: 4, Funny

      What's the difference between a hipster and a Perl hipster?

      A hipster liked it before it was cool and doesn't now. A Perl hipster liked it when it was cool, and still does.

    2. Re:Modern Weak Languages by preaction · · Score: 2

      In fact, I like it more now that it _isn't_ cool!

    3. Re:Modern Weak Languages by Anonymous Coward · · Score: 1

      I like Perl too, but come on. Python is very, very similar to Perl. It does basically the same things in the same way, modulo syntax. That's not to say there are no differences -- there are -- but they are minor.

      In my opinion, the most significant difference between Python and Perl has nothing to do with the languages; it's that the Perl community makes a fetish of backward-compatibility, while the Python developers seem not to care.

    4. Re:Modern Weak Languages by laffer1 · · Score: 2

      That and the Perl community is good about taking upstream patches, has CPAN and a faster, cleaner implementation. Ignoring syntax, Python's got some ugly code in the implementation and it's touchy and irritating to port.

      I actually got into Perl because I tried to port Python and Ruby. When you see what's under the hood, it really makes you love Perl. I've migrated from PHP to Perl for scripts and web stuff in the last few years and I find it much less frustrating. The problem is no longer how am i going to get this to work, but which CPAN module do I want to use to do it.

    5. Re:Modern Weak Languages by Sez+Zero · · Score: 1

      Ha! True (for me as well).

  12. Slashdot itself uses Perl by amoeba47 · · Score: 3, Interesting

    ...squarely blamed Slashdot for starting the "Perl is Dead" meme in 2005...

    Meanwhile, it's apparent that slashdot itself uses Perl e.g: http://slashdot.org/job_board....

    1. Re:Slashdot itself uses Perl by sjames · · Score: 1

      Well, there we have it! Netcraft confirms blah blah blah.

    2. Re:Slashdot itself uses Perl by nitehawk214 · · Score: 1

      ...squarely blamed Slashdot for starting the "Perl is Dead" meme in 2005...

      Meanwhile, it's apparent that slashdot itself uses Perl

      e.g: http://slashdot.org/job_board....

      You couldn't tell by the inability to support unicode or roll out changes that do not ruin the site? (not that these are perl's fault per-se, but more that slashcode is an impossible pile of spaghetti to untangle)

      --
      I'm a good cook. I'm a fantastic eater. - Steven Brust
  13. Always found it amusing by Dega704 · · Score: 2

    Especially considering that the Linux job market is red-hot, and almost all Linux sysadmin job listings I see list Perl as a wanted skill. What exactly causes a language to be declared dead, anyway? Would you say that Fortran or Cobol are dead? Because they are still going strong in their respective niches.

    1. Re:Always found it amusing by Alan+Shutko · · Score: 1

      I consider a language to be dead when people stop thinking of it as an option for new programs.

      Fortran is still alive. Scientists are still using it for new simulations. Gradually momentum is moving to other languages, but it's still here.

      Cobol is dead. Nobody would consider writing something new in it. It's still being used, but only because people want to add new functionality to large systems written in Cobol, and it's crazy-expensive to rewrite those old systems.

      Perl? Well, I think it's getting there. It's still a job req because there is a lot of perl out there. But I agree with other folks in that when writing something from scratch, I see Perl picked rarely.

  14. So Perl isn't Dead? by bobbied · · Score: 2

    Perl may not be "dead", but it's dead to me.

    Does Deprecated mean ANYTHING? I used to write Perl programs, some 20 years ago, it was the thing. I wrote thousands of lines of KSH scripts too at that job. Perl it got replaced by a different tool, not that the new tool is better, but because it was new, just like KSH, CSH and BASH are no longer the tools of choice.

    As you young whipper snappers exit my lawn, I offer you the following tidbit of knowledge : "Learn from what happened to Perl, and learn as many tools as you can. Where it's not the tools that make the programer good or bad, having the right tool in your toolbox can make a good programer a great one. Be the great one."

    --
    "File to fit, pound to insert, paint to match" - Aircraft Maintenance 101
    1. Re:So Perl isn't Dead? by Anonymous Coward · · Score: 0

      Perl actually is better than any SH/KSH/CSH/BASH. The alternatives for general purpose programming (python/ruby), are not necessarily better than perl. But web developers find php to be more convenient. So you don't mention what your "different new tool" is?

    2. Re:So Perl isn't Dead? by shrewdsheep · · Score: 1

      Hm..., what is to be learned here? You promote quantity over quality and I could not disagree more. Learn one tool well and next one will not be new but just a variation of the theme.

    3. Re:So Perl isn't Dead? by david_thornley · · Score: 1

      Learn a few tools well. Perl and C++ are both very powerful, but they're not good for the same things.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  15. Re: obfuscation example by Anonymous Coward · · Score: 4, Insightful

    I agree that this (truncated) example is terrible, but it's clearly obfuscation for obfuscation's sake. If you manually insert whitespace and newlines, the above example is easy to read except for a few deliberate obfuscation techniques like hard-to-follow operator chaining and nested assignment.

    Most modern languages allow operator chaining, so things like "$t ^= $c ^= (...) " are not a problem with perl per-se. To make this more readable, all you have to do is decompose it into its component operators, following the rules of operator precedence: "{ $c ^= (...); $t ^= c; }". Most modern languages also allow nested assignment, so things like "if ((@a = ...)[20] & 48)" are allowed. Again, if you want to make it more maintainable, you can write it as: "@a = ...; if (@a[20] & 48)". Once we've removed those types of issues from your example, you're only left with issues related to lack of pretty-printing (includes the fact that nobody but Larry Wall truly understands perl's operator prededence rules), and some surprising things that happen because of implicit variables and dynamic scoping.

    IMHO perl's greatest fault is that there is no round-trip-capable pretty-printer. If Perl shipped with a pretty-printer, and if that pretty printer included an option to explicitly parenthesize operators and insert omitted implicit variables, then people could use the tool to read and understand poorly-written perl-snippets, and the only real fault left would be the fact perl uses dynamic scoping by default.

  16. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  17. Netcraft by Major+Blud · · Score: 2

    But did Netcraft confirm it?

    Personally I prefer "half-dead" or "quasi-dead". Does that make me a pessimist?

    --
    If you post as Anonymous Coward, don't expect a reply.
  18. Comment removed by account_deleted · · Score: 2

    Comment removed based on user account deletion

  19. Only have themselves to blame by wiredlogic · · Score: 1

    Betting the farm on Parrot and then waiting *years* to start implementing the Perl 6 spec is what killed it. Besides, around these parts we wait for Netcraft to confirm. We haven't succeeded in killing off the *BSDs yet have we?

    --
    I am becoming gerund, destroyer of verbs.
  20. Meh by Greyfox · · Score: 4, Insightful
    Tool for the job and all that. If I had to maintain some code, I'd prefer perl with "use strict" over any of the newer OO languages. At least when you're looking at bad code, you can usually salvage something from structural code. I've seen some atrocious Ruby programs lately.

    Most of the time you're maintaining code you're maintaining bad code, though, and it's pretty rare that I run across a perl program with "use strict" turned on. But if I don't see it, I at least know what I'm up against. The newer languages need a similar "A bad programmer wrote this" flags.

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  21. Perl requires brains by BenSchuarmer · · Score: 1

    so I'm not surprised

  22. Comment removed by account_deleted · · Score: 1, Insightful

    Comment removed based on user account deletion

  23. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  24. Metaphysical query by mark-t · · Score: 1

    Do the definitions of the terms involved stipulate that anything that was genuinely dead in the past, but is, in some way, no longer considered as dead anymore necessarily be considered undead?

  25. Kill it with fire by Anonymous Coward · · Score: 0

    Perl has no reason to exist.

    And no, not everything is a tool with the right application domain. Somethings are just plain trash.

  26. mod_perl by Anonymous Coward · · Score: 1

    mod_perl is a major issue for my company. Apache httpd 2.4 has been out for 2 1/2 years and there is still no mod_perl release. The release of Apache httpd 2.4 was no surprise. It was in beta as 2.3 for around 3 years before 2.4 came out.

    There is something you can cobble together from svn, but the mailing lists are nearly dead and what you can cobble together from svn is not ready for production with Mason, at least from what I have experienced.

    We're trying to get rid of all of the Mason and mod_perl stuff and replace it with something modern (PHP and Javascript frameworks), but it works acceptably with Apache httpd 2.4 for now. Perhaps this framework would have been updated if it weren't for Perl 6 becoming abandonware. Now that I'm thinking about Mason, that stuff is dead as a doornail. No activity there, either.

    Perl is still good for what we used it in the pre-web mass commercialization days, throwing together a quick script, but Perl has lost its way otherwise. I would never deploy Perl with a new project on the web.

    As for me, I'm a language generalist. I've been programming for closing in on 30 years, so I learn what I need. Perl has almost completely lost its utility and is becoming to me like COBOL or FORTRAN, just a niche language or something legacy you have to support.

  27. But how do you KNOW she's a witch? by Anonymous Coward · · Score: 1

    Witch hunters see witches everywhere. All I saw up there might have had something to do with religion, but then again I don't do Perl.

  28. Proof (with silly statistics) ... by rduke15 · · Score: 4, Informative

    Is it dead? Well, some quick scripting can tell us the truth, using Bash and of course Perl.

    On my Ubuntu notebook and main machine:

    sudo find /etc /bin /sbin /usr/bin /usr/sbin -type f -executable -exec file -b "{}" \; \
    | perl -MData::Dumper -nle '
            next unless /script/;
            if ( /(shell|python|ruby|perl|bash)/i ) {
                $types{$1}++
            }
            else {
                warn "Other: $_\n"
            };
            END {
                print Dumper(\%types);
            }'

    Output:

    Other: a /usr/bin/make -f script, ASCII text executable
    Other: a nickle script, UTF-8 Unicode text executable
    Other: awk script, ASCII text executable
    $VAR1 = {
                        'perl' => 283,
                        'python' => 104,
                        'bash' => 1,
                        'Ruby' => 3,
                        'ruby' => 9,
                        'shell' => 602
                    };

    On a server:

    Other: a /bin/dash script, ASCII text executable
    $VAR1 = {
                        'Python' => 36,
                        'Perl' => 139,
                        'shell' => 267
                    };

    Looks very much alive. Unless of course, Perl realized what it was calculating and cheated and made it's own numbers up on the fly...

    1. Re:Proof (with silly statistics) ... by Anonymous Coward · · Score: 0

      Probably a lot of useless crap that was written in perl, but not used by anyone. Some usage statistics would be much more interesting.

      And note that some of those 'shell' could be just stubs for python -m application_as_module (but again, your numbers tell you little... could be just little useless tools written in python).

    2. Re:Proof (with silly statistics) ... by Anonymous Coward · · Score: 1

      You know that you do need to learn to use "xargs", right? And you left out "/usr/share" and "/usr/lib" and "/var/www", right? Next time, just scan "/usr".

      There are reasons us old shell weasels are suspicious of tossed off one-liners and proposals written on napkins.

  29. Comment removed by account_deleted · · Score: 4, Informative

    Comment removed based on user account deletion

  30. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  31. if it's not dead... by stenvar · · Score: 1

    If Perl really isn't dead yet, could we please put it out of its misery and shoot it? Then drive a stake through its heart, burn it, encase the ash in cement, and then bury it in a silver urn, just to make sure that it will never, ever come back?

  32. There's nothing wrong with Perl ... by nut · · Score: 4, Interesting

    ... it's just the way people use it.

    Perl was designed as a powerful, flexible, loosely typed scripting language for munging text files and streams, and that's exactly what it is.

    It's great for those scripts that you write for a particular task and never use again after the few days it was necessary. It's also good for writing glue code on occasion, to tie the inputs and outputs of other applications together, and when shell scripting just won't quite cut it.

    The trouble was that it was such a useful scripting language people started writing applications in it. Then they had to jump on the object-oriented bandwagon, which was done clumsily. Sort of like gluing a dog to your horse so it can fetch. And yes, it can be difficult to read, but it doesn't have to be.

    Use Perl for the tasks it was originally designed for. If you're going to write real applications, use a more appropriate language. Don't kick your dog because he can't sing.

    --
    Never trust a man in a blue trench coat, Never drive a car when you're dead
    1. Re:There's nothing wrong with Perl ... by evil_aaronm · · Score: 1

      Exactly this. Don't blame the tool: blame the atrocious misuse of it. Look at how many people have perfectly good functioning brains, yet act like shit throwing simians.

    2. Re:There's nothing wrong with Perl ... by rsborg · · Score: 2

      ... it's just the way people use it.

      Perl was designed as a powerful, flexible, loosely typed scripting language for munging text files and streams, and that's exactly what it is.

      Perhaps it's not Perl that died, but the philosophy of Perl - the need for a *wicked fast* scripting language to code up 1-100 lines of code gluing together entire systems. The philosophy of which is power, speed, massive flexibility (very very loosely typed language, you could demo complex data structure creation on the fly using the REPL) which empowered the lone programmer, not the IT department or enterprise software firm.

      The diminishing of Perl is indicative of the wild wild web being tamed, and the Internet corporatized. A sad thing, but definitely predictable. I still use Perl once in a while (I'd say once or twice a year for a new compact script), but I never really share those scripts.

      --
      Make sure everyone's vote counts: Verified Voting
    3. Re:There's nothing wrong with Perl ... by Anonymous Coward · · Score: 0

      Perl 5 have an advanced object system : Moose that provides all OOP features that most others dynamic languages still lack: roles, optional strong typing, type coercion...

      This allows to build big applications, well besides just on-shot scripts.

    4. Re:There's nothing wrong with Perl ... by doti · · Score: 1

      Exactly this. Don't blame the tool: blame the atrocious misuse of it.

      Like, writing a photo management application in Perl?

      --
      factor 966971: 966971
    5. Re:There's nothing wrong with Perl ... by rdnetto · · Score: 1

      I disagree - Perl's biggest issue is that things which should be defined in the language's grammar are instead defined in code. This reduces it to a language of special cases.

      Consider the following:

      $_ = foo 1;
      bar;
      print;

      Does the function bar, in the absence of an argument, use $_ as its argument?
      Some functions do, some don't, and this is true even among the core functions. This is because the implementer of the function must explicitly read from the global $_, rather than the language passing the argument to it. The resulting inconsistency can make it difficult to reason about what a Perl script is actually doing.

      There are other issues, such as variables inside functions being global by default, but that's the big one.

      --
      Most human behaviour can be explained in terms of identity.
  33. go ahead and blame by mbkennel · · Score: 1

    "I don't think we should blame the language for being powerful enough that an evil programmer can be unfathomably evil, if it also enables a just programmer to be eminently understandable"

    Why not?

    Other language designs restrict an evil programmer to be only ordinary orc-level evil, and not unfathomably balrog evil.

    1. Re:go ahead and blame by Anonymous Coward · · Score: 0

      Orcs are evil. Balrogs are just misunderstood. I mean, let's put you in a pit full of brimstone and hellfire for a few millennia and see how grumpy you are without your morning coffee.

    2. Re:go ahead and blame by Sobrique · · Score: 1

      And you still get bad code. How about we stop blaming a language for what's clearly a wetware problem?

  34. Perl isn't (un)dead: worse, it's moribund. by Slartibartfast · · Score: 3, Insightful

    All traction was lost when Perl 6 became some amorphous goal, and nobody gives a damn any more. Personally, I think this is a shame -- but I've found Python and Ruby to be more-than-acceptable replacements. (Honestly, I think Ruby is the cat's pajamas, aside from regex speed on 100+ MB logfiles.)

    So... does Perl wish to make a comeback? It really would be fairly easy:
    1) Have Larry Wall take the reins well-and-truly again.
    2) Give a timeframe for a for-real reference release of Perl 6. Not this sort of wish-wash "everything that says it's Perl 6 *is* Perl 6" thing. Choose *one* of the projects, and have it be the reference against which all others are measured.
    3) Give direction and make it public. While associated clearly with #1, merely taking the reins won't do the job -- it has to be clear that Perl is *GOING* somewhere, and not just stagnating. And this has to be made known.

    There are plenty of sysadmins who learned Perl when it was 5.x, and who have fond memories of it. Give them something more than memories to work with, and you may well go somewhere. As it is? I just couldn't be bothered to care. Gimme Ruby.

  35. Perl isn't dead, it just smells funny. by porky_pig_jr · · Score: 2

    Just my personal experiences. Back in 90s I was working for BBN Planet, in a group monitoring network traffic within AS1 (which is *us*). I have inherited a set of tools written in Perl which I had to maintain. Prior to that I had some moderate experience with Perl. So, when I started going through the code, I've found it sufficiently obfuscated to give me a head ache. I guess my predecessor was one of those "Perl kids who like to have fun", not understanding that production environment means, among other things, readability and maintainability. OK, fine. Roughly at the same time the administrator of multiple machines running that code (I think it was Solaris) decided to move from Perl 4 to Perl 5. That broke lots of scripts. So I decided to save time, found out what the functional specs were (from those who actually used those tools) and rewrote lots of the code just from the scratch. Because I was under some serious time pressure, I didn't care too much about either readability and maintainability either. Just to get something out of the doors, and - let my successor suffer just as I did.

    Well, BBN Planet, as we all know, is a history, but Perl, unfortunately, isn't. At least it is steadily loosing ground to Python and for reason. Cheers.

  36. C interprets by jbolden · · Score: 2

    C written in BCPL
    Later C written in B
    Later C written in NB

    Most popular modern C interpreter whose key components written in CIL (an artificial object oriented assembly)
    2nd most popular modern C interpreter whose key components are written in llc & lli

  37. Re: obfuscation example by jbolden · · Score: 1

    Good comment. You should get an account.

  38. What is "Dead" by bradgoodman · · Score: 3, Interesting
    Sure - it's way down on the TIOBE index, and Perl 6 has been in production longer than Duke Nukem Forever, and there is a ton of "legacy" code that is written in Perl, so why do we say it's "dead"?

    Because of the lack of new projects being done with it. I can't remember the last time a [major] web site or web framework was done in Perl. It seems like the whole "ruby on rails" fad is over, but even things like Django (Python), .NET, Java, PHP, and even stuff like "Go" have stolen Perl's Thunder on the Web front.

    Well what about as your standard workhorse for script kiddies? Seems like Python has cleaned Perl's clock. For me - I've been a die-hard Perl guy for 10 years. The past couple years, I've worked with many different technologies such as 2d/3d CAD projects, Blender (3d adnimation), Inkscape (2d illustration), GNU Radio, OpenStack (cloud), and even Amazon AWS [libraries]. You know what was the striking commonality to all of these? They were done in Python.

    Tiny exception was in the last case (above - Amazon AWS libraries) had several different language options but had *NO* Perl options whatsoever. So the language that was once so revolutionary because of the abundance of CPAN libraries available for it starts to not have newer libraries built/ported to it. Furthermore, binding stuff to Perl can be difficult. So much so that most modern distros will make their own "Perl library" [RPMs] - and one of the reasons being is that a standard CPAN module installation won't work due to problems linking/binding/building across all these different environments with very different prerequisites. Most third party Python stuff I have acquired is most often "native python", and works across all types of exotic platforms - even on iOS and Google App Engine.

    As for me - I had to switch away from my beloved Perl over to Python for the aforementioned reasons. There are still several things I miss very much - the abilities to so easily spawn and fork "helper" processes, the ease it which it integrates regular expressions, how it can manipulate files, etc. All these things *can* be done with Python, they're just integrated into Perl much better IMHO.

    It seems like Perl 6 was supposed to use something similar to Java's "JVM" microcode interpreter. This could have been a possibility to run Perl in embedded sandbox-type environments (like parking meters and smartphones), but it never happened.

    So, I do believe Perl is dead. I miss it for what it was, what it is, and what might have been!

    1. Re:What is "Dead" by Sez+Zero · · Score: 2

      I can't remember the last time a [major] web site or web framework was done in Perl.

      Oh, I dunno, how about booking.com (about)? 'World's leading online accommodation provider' where 650K rooms a night are booked (they're owned by Priceline group, if that's a more popular brand where you live)?

      A YAPC talk by one of their employees says 99% of their code is Perl. Check out their dev blog.

    2. Re:What is "Dead" by bradgoodman · · Score: 1
      "What is dead may never die" - Game of Thrones

      (Sorry, had to do it)

    3. Re:What is "Dead" by SirSpammenot · · Score: 1

      For the first time in 3 years I didn't get to go to a YAPC (the conference thing in the video) and am really getting pissed about it. Having said that... why is everyone here fixated on Perl 6? Perl 6 will continue, much like a fork, running besides the Perl 5.x series. Both solving problems in their own spaces. Or not... feel free to argue amongst yourselves somemore. Where Python is currently a better tool, use it. But if you are highly productive (comfortable, knowledgable, not missing features..) with Perl 5.x, why not be productive?

      --
      1 Dachshund + 1 Dachshunds = A Paradox.
    4. Re:What is "Dead" by bradgoodman · · Score: 1
      lol...interesting point!

      I am very productive with Perl, and I like it. However, with the surge in things using Python, I find myself "needing" to know it. So where I may have a script to write, and I'm more comfortable doing it in Perl, I actually write it in Python just to learn/exercise the (needed) skills. So - even where I'm "productive, comfortable, knowledgeable and not missing features" with Perl, that's why I'd still do it in Python.

      That's why at least for me - it's demise is a self-fulfilling prophecy.

  39. Perl6 = Rakudo by Anonymous Coward · · Score: 0

    Perl6 should be renamed Rakudo, it has nothing to do with Perl5, it's not even the same syntax!
    and it's confusing for someone going from Perl5 to Perl6.

    It's like if Python4 changed it's syntax to Ruby for "fun".

    Perl6 should have been Perl5 with C++/Java style/syntax class period, no more @ISA=qw{}; crap.

    We moved to PHP5, I only used Perl5 for quick scripts, prototyping, fancy bash on steroid, one liners and code generator nowadays.

  40. Heh, what about Python? by John+Bokma · · Score: 1
  41. Encourage? Are you a programmer for real? by John+Bokma · · Score: 1

    Encourage? You fill up your shopping cart also while standing in the check-out line? It's the programmer who decides what to (ab)use.

  42. Books like.... by John+Bokma · · Score: 1

    You mean books like Perl Best Practices?

    1. Re:Books like.... by nitehawk214 · · Score: 1

      I have not read this book, but my argument was more around "The best practices for perl are not necessarily good programming practices." But to be fair I have never worked with anyone that actually wrote good perl. I have never been able to read something someone else wrote, and only barely able to read perl that I wrote.

      --
      I'm a good cook. I'm a fantastic eater. - Steven Brust
    2. Re:Books like.... by John+Bokma · · Score: 2

      A lot of best practices for Perl are good programming practices in general. Of course there are (plenty) of exceptions, but that's the case with other languages as well. One thing one wants to avoid is to program Python in Haskell or Pascal in C, for example.

      As for hard to read (for a beginner) have a look at Haskell, for example.

      Python's fame is that it "reads like pseudocode". That's nice, but utterly fails if a programmer has no good feel for algorithms. Pascal used to have the same fame. A few years back I had to reimplement a Pascal program into Perl. One of the pieces of code was 100+ lines. After some studying it turned out to be a variant of bubble sort. At the end few lines reversed the sort order (!). It could be replaced with a few lines of Perl. And no, not because I write short and cryptic code. The code could've been written way shorter in Pascal as well, even when implementing a sort manually.

  43. Re: obfuscation example by dnavid · · Score: 2

    I agree that this (truncated) example is terrible, but it's clearly obfuscation for obfuscation's sake. If you manually insert whitespace and newlines, the above example is easy to read except for a few deliberate obfuscation techniques like hard-to-follow operator chaining and nested assignment.

    Most modern languages allow operator chaining, so things like "$t ^= $c ^= (...) " are not a problem with perl per-se. To make this more readable, all you have to do is decompose it into its component operators, following the rules of operator precedence: "{ $c ^= (...); $t ^= c; }". Most modern languages also allow nested assignment, so things like "if ((@a = ...)[20] & 48)" are allowed. Again, if you want to make it more maintainable, you can write it as: "@a = ...; if (@a[20] & 48)". Once we've removed those types of issues from your example, you're only left with issues related to lack of pretty-printing (includes the fact that nobody but Larry Wall truly understands perl's operator prededence rules), and some surprising things that happen because of implicit variables and dynamic scoping.

    IMHO perl's greatest fault is that there is no round-trip-capable pretty-printer. If Perl shipped with a pretty-printer, and if that pretty printer included an option to explicitly parenthesize operators and insert omitted implicit variables, then people could use the tool to read and understand poorly-written perl-snippets, and the only real fault left would be the fact perl uses dynamic scoping by default.

    The language itself moderately encourages unreadability, but I think the language itself is not the only problem. Even with pretty printers, there's a separate problem in that the perl community tends to even more strongly encourage language efficiency over code readability, and encourages leveraging the language's most powerful, but least readable syntax. That can't be pretty-printed away. In fact, in my experience self-taught perl programmers start off writing fairly readable code, if for no other reason than its easier for themselves to read their own code that way. But the more they encounter other perl programmers and other examples of perl code written by others, the more they degenerate into increasingly less readable code. Its not exactly the language itself causing that, but rather an amplification effect where its small encouragement influences a larger programming community to loop around and reinforce jettisoning syntactic candy for pure efficiency (and lose readability in the process) among its members.

    You could say Perl is the tool that the Perl programming community uses to make more Perl programmers, molded in their image of absolute conciseness as one of the higher abstract goals of perl programs.

  44. Perl's heyday in hell by epine · · Score: 2

    At least it is steadily loosing ground to Python and for reason.

    None of those dynamics have ever occurred in a Python shop?

    The second half of the nineties was a bad scene for code readability all around, or did you somehow not notice the Herman Miller office furniture bubble?

    There was a lot of Perl written during this era. Perl was the only language that could keep up with the Vogon rapture of all things brick and mortar. The ferryman threw in the towel, auction off his ferry on eBay, bought two cords of dynamite (mail order), and simply diverted the river. Pretty much everything was still where it had been, but traditional commerce was all on the other side now.

    My development platform circa 1996 was NT 4, on a P6 200 with 32 MB of EDO system memory, a 640 MB disk drive, and a good quality 17" Dell CRT. It was tolerable, but hardly coding nirvana. The world was shifting under my feet almost daily: Linux, BSD, 2000, LBA, AMD64, SATA, DDR, broadband, Mozilla, Google, DVI, PHP, Python, Ruby, C++, STL, and not an open source version control system worth a crock of shit for love nor money.

    I wonder why my coding standards at the time did not optimally favour my future self in the mid 2000s with my CoreDuo workstation, 4 GB of ram, 200 GB of disk space, and twin 19" monitors.

    Do recall the little puzzle with the sliding digits 1-15 in a 4x4 grid? Trying to get any significant piece of glue code to run on NT and Linux and able to survive unscathed a major upgrade of each was a lot like that. Or have you blacked it out? Many ugly lines of code were written because the tiles were sticky. In the stupidest possible ways. And it was all going to be Ruby next year anyway. Whatever language you were working in was next up against the wall after the demise of B&M (if any wall could still be found). Soon the Wall was up against the wall, but I digress.

    Programmers were in such short supply that vast numbers of people were coding in languages they only pretended to know. Have you forgotten that, too? If Visual Basic had been a better scripting language, Perl would have come out the other side better loved.

    The great thing for the smart young programmers about becoming trendoids is that it helps to insulate them from the ugly job of cleaning up yesterday's bubble's giant mess.

  45. re: account [off-topic] by Anonymous Coward · · Score: 0

    [Off-Topic]

    I've been a daily visitor for 14 years as of next month. I made an account once, but I use unique random passwords for every site, and it's way too much trouble to open my password vault just to login on a site where I can comment anonymously. (Nevermind that I usually spend at least half an hour editing and previewing my posts.)

  46. ASMR? by Darinbob · · Score: 1

    Just a bit curious, when I went to youtube for that video there was a list of several ASMR videos lined up on the right, presumably as "related". So just what is the relationship between Perl and ASMR? Or maybe Larry Walls speaking brings out the tingles in some people?

  47. Who ever stopped using Perl? by Anonymous Coward · · Score: 0

    Perl just works. In a subtle way. Perl is easy to think in. It's easier to write the same software in Perl than any other language. Other languages require you jumping through hoops to express what you want to express. I always reach for Perl first when I need to write something, if possible, because I know I can write it easier and more naturally. I'll get the job done quicker.

    Perl 6 has been the best thing that ever happened to Perl, because it made Perl 5 a stable, "long term" release which we could keep using. Python, for example, destroyed itself by breaking its own language from release 2 to 3. The stability of Perl 5 means the language didn't get broken by people trying to improve it, and it helped create a stable platform for Perl.

  48. Don't feel too alone, Perl fans ... by Rambo+Tribble · · Score: 1

    ... at about that same time JavaScript was declared to be on its last legs, (Java applets were going to bury it), and COBOL was declared moribund over 40 years ago. Meanwhile, every proclaimed "natural language" phenomenon has proven too cumbersome for actual production.

  49. The means that by azav · · Score: 1

    Perl is just like Jesus!

    YAY Perl! Zombie party at my house!

    --
    - Zav - Imagine a Beowulf cluster of insensitive clods...
  50. Re: by Anonymous Coward · · Score: 0

    I'm pretty sure you can perplex the reader with gibberish in BASH as well.

  51. Re: account [off-topic] by jbolden · · Score: 1

    You don't use your password much your browser remembers on /. for a long time. Besides after 14 years you could just pick an easy to remember password and use that.

  52. THe Worst by carys689 · · Score: 1

    Perl has got to be one of the WORST programming languages ever designed -- all those dollar signs to make up for bad syntax design. I thought C++ was bad, but C++ is syntactically a thousand times more sensible than Perl ever was. Even a syntactically obtuse language like Scala is better than Perl.

  53. Perl is dead? Hooray! by mtthwbrnd · · Score: 1

    Now can somebody *please* go and kill that abomination called Python?