Slashdot Mirror


Perl 5.11.0 Released

jamie points out that Perl 5.11.0 was released yesterday, as well as a schedule for future 5.11.x releases, planned for the 20th of every month. Jesse Vincent encouraged testing of the new (development) version, saying, "If you write software in Perl, it is particularly important that you test your software against development releases. While we strive to maintain source compatibility with prior releases wherever possible, it is always possible that a well-intentioned change can have unexpected consequences. If you spot a change in a development release which breaks your code, it's much more likely that we will be able to fix it before the next stable release. If you only test your code against stable releases of Perl, it may not be possible to undo a backwards-incompatible change which breaks your code."

235 comments

  1. Wow. . . by ibmjones · · Score: 5, Funny

    It must be real good if it goes to eleven.

    1. Re:Wow. . . by Jeff+DeMaagd · · Score: 4, Funny

      Is anyone hosting a Perl 5.11.0 House Party? Will there be deviled eggs?

    2. Re:Wow. . . by Eudial · · Score: 1

      Is anyone hosting a Perl 5.11.0 House Party? Will there be deviled eggs?

      I've gotten several invitations, but they were all in perl, and I've taken it to some of the best linguists of the world, and nobody could make heads or tails of them.

      --
      GAAH! MY PRINTER IS ON FIRE!!! PUT IT OUT! PUT IT OUT!
    3. Re:Wow. . . by jonadab · · Score: 1

      > It must be real good if it goes to eleven.

      That's nothing, Emacs is at version 23 already.

      --
      Cut that out, or I will ship you to Norilsk in a box.
    4. Re:Wow. . . by doti · · Score: 1

      And it still doesn't include a decent text editor.

      --
      factor 966971: 966971
  2. Seriously? by bsDaemon · · Score: 2, Interesting

    5.10.1 just came out like a week or so ago... there seems to be a slightly accelerated rate of Perl development lately, which is nice as it proves it's not a 'dead' language by any stretch... and with extensions such as MooseX::Declare, it really gives some of the more modern, OO-based dynamic languages like Python or Ruby a run for their money in their traditional sphere as well, I'd say.

    and first post i think.

    1. Re:Seriously? by Anonymous Coward · · Score: 0, Insightful

      it's possible to actively produce a software package that no one uses. so new releases alone don't prove anything about whether it's a dead language.

      to those of you for whom basic reasoning and reading comprehension are too much to ask, i did NOT just claim that perl is dead. I only claimed that the frequency of releases alone is not a criteria for determining its dead-ness or alive-ness. now seriously, go get some remedial education if you thought I was claiming it was dead, because no one needs your wanton ignorance polluting the Internet, driving, voting, and buying into all the bullshit the media spews every day.

    2. Re:Seriously? by rubycodez · · Score: 3, Funny

      no, proves instead of being dead it's stagnant. Perl 5.x lingers like scent of dead skunk under the porch while the Frankenstein of Perl 6 is still on the mad scientist's table, metaphorically getting body parts sewn on from morgues and cemeteries and hospitals across the globe. Perl 6 is the undead Creeper of programming languages

    3. Re:Seriously? by causality · · Score: 2, Funny

      no, proves instead of being dead it's stagnant. Perl 5.x lingers like scent of dead skunk under the porch while the Frankenstein of Perl 6 is still on the mad scientist's table, metaphorically getting body parts sewn on from morgues and cemeteries and hospitals across the globe. Perl 6 is the undead Creeper of programming languages

      Where's BadAnalogyGuy when you need him?

      --
      It is a miracle that curiosity survives formal education. - Einstein
    4. Re:Seriously? by ThePhilips · · Score: 5, Informative

      Uhm...

      Perl 5 development is stagnant for one simple reason: Perl 5 is near perfect, there is nothing left to be developed there.

      Some wanted better Perl with more consistent syntax. That's what Perl 6 is for. 5.10/etc are intermediate releases serving the purpose of facilitating future migration to Perl 6: some ambiguous constructs of previous version are gone in 5.10/etc.

      I personally do not care much about 6th - I yet to find any pathological problem in Perl 5 which would persuade me somehow to move to next big thing. Perl 5 is well documented, has piles of modules and examples all over the net. I see no point to move from it.

      --
      All hope abandon ye who enter here.
    5. Re:Seriously? by Fnord · · Score: 3, Informative

      Its not an indication of anything. 5.11 is a development branch. In theory it should be released the moment they implement one feature that doesn't belong in 5.10.

    6. Re:Seriously? by iggymanz · · Score: 5, Funny

      and Perl use had dropped to 15% of its former level in the past five years because the perfect number of applications have been developed with it, there's almost no software left to write.

    7. Re:Seriously? by ThePhilips · · Score: 3, Insightful

      Benchmarks and whatnot have little relevance to the real world.

      It's true that thanks to the "there is more than one way to do the same thing" isn't very appealing to commercial companies. But at the same time in the past 15+ years I work, literally every employer had some part of its infrastructure supported by Perl programs.

      Perl isn't for everyone. Obviously simpler languages like Java or C# or Python would tend to dominate because barrier to entry is lower. Nothing new.

      Perl dominated Web in the times when it was a new thing. Internet itself was a new thing. And obviously to start something new you need smart and experienced people. Among such people Perl tend to be quite popular. Now Web design became something what even your mom can do - tools are abundant. There is no need to employ such heavy lifting tools like Perl anymore.

      But thinking that Perl was used exclusively to do web stuff is a rather silly mistake to make.

      --
      All hope abandon ye who enter here.
    8. Re:Seriously? by Anonymous Coward · · Score: 0

      There is always something left to be developed; you're just not imaginative enough.

    9. Re:Seriously? by shmlco · · Score: 0, Troll

      Perl dominated the web back in the early days not so much because of its power or ability to do "heavy lifting", but because it was darn near your only choice for server-side development and scripting. This was pre-ASP, pre-CF, pre-PHP, and Ruby wasn't even a gleam in anyone's eye.

      Perl is powerful, yes, but it's also complex, obtuse, and far surpases C in the obfusication department. The "smart and experienced people" abandoned it in droves the second easier to use and more productive tools became available.

      I personally know of exactly one company that uses Perl at the moment, and that's only for text cleanup.

      --
      Any sect, cult, or religion will legislate its creed into law if it acquires the political power to do so.
    10. Re:Seriously? by coolgeek · · Score: 1

      The statement that they are unsure if they are going to break something is probably just the thing to kill it in my eyes. I have about 50,500 lines of perl running a production system, and this announcement has me seriously thinking I should port it all to a language I can rely on. I don't need a routine yum update breaking my system, and I sure as hell don't have time to test their code constantly.

      --

      cat /dev/null >sig
    11. Re:Seriously? by maxume · · Score: 1

      Ruby was first released in 1995, the web wasn't real old just then.

      --
      Nerd rage is the funniest rage.
    12. Re:Seriously? by Thing+1 · · Score: 2, Interesting

      I personally know of exactly one company that uses Perl at the moment, and that's only for text cleanup.

      I call BS (or, less confrontationally, perhaps simply "you know of very few companies"). Microsoft uses Perl throughout their build environment.

      --
      I feel fantastic, and I'm still alive.
    13. Re:Seriously? by Anonymous Coward · · Score: 0

      Perl is for wussies. The real programmers use brainfuck.

    14. Re:Seriously? by Myopic · · Score: 2, Interesting

      I'm sure you are just being a wag, because obviously anyone concerned about the stability of a production system like that wouldn't make foolish mistakes such as changing the version of their runtimes or libraries or platforms.

      You don't mean to seriously suggest that you would rewrite 50,000 lines of code rather than just, you know, *do nothing*, and not update anything?

    15. Re:Seriously? by nick_urbanik · · Score: 2, Insightful

      I personally know of exactly one company that uses Perl at the moment, and that's only for text cleanup.

      Perhaps you don't know many companies :-)

    16. Re:Seriously? by doom · · Score: 1

      Perl 5 development is stagnant for one simple reason: Perl 5 is near perfect, there is nothing left to be developed there.

      I know you mean well, but despite the fact that it's certainly true that perl5 is a mature language, there's plenty of active development happening in the perl5 world. There were a lot of interesting features added to perl5 with the 5.10 release. Just to pick one, they added recursive regular expressions, which enabled Damian Conway to write this: Regexp::Grammars.

      Some wanted better Perl with more consistent syntax. That's what Perl 6 is for. 5.10/etc are intermediate releases serving the purpose of facilitating future migration to Perl 6: some ambiguous constructs of previous version are gone in 5.10/etc.

      That's a bit of an over-simplification of what perl6 is about, and there hasn't really been all that much removed with the release of 5.10 (maybe, pseudo-hashes?). The perl-porters care a lot about not breaking live code.

      I personally do not care much about 6th - I yet to find any pathological problem in Perl 5 which would persuade me somehow to move to next big thing. Perl 5 is well documented, has piles of modules and examples all over the net. I see no point to move from it.

      I'm not waiting with baited breath for perl 6 either, for much the same reasons... though I wouldn't say that perl 6 is uninteresting either. It's one of a handful of Latest Languages that I'd want to take the trouble to learn.

    17. Re:Seriously? by doom · · Score: 1

      and Perl use had dropped to 15% of its former level in the past five years

      You forgot to link to the data supporting this figure. But what the hell, it's only another smear of the perl community, it's not like you're ever going to be called on it.

    18. Re:Seriously? by jonadab · · Score: 1

      > Perl use had dropped to 15% of its former level in the past five years

      Obviously that's not true.

      But even if Perl usage *did* drop to 15% of its former level, it would still be more widely used than Scheme, Smalltalk, Tcl, Python, and Visual Basic .NET, combined.

      --
      Cut that out, or I will ship you to Norilsk in a box.
    19. Re:Seriously? by Anonymous Coward · · Score: 0

      So you think Java is simpler than Perl, boy that's tough. Why not clue up first?

    20. Re:Seriously? by fluffy99 · · Score: 1

      Doing "Routine yum updates" on a "production system" is just asking for trouble regardless. You're far more likely to break things updating the kernel and other critical libraries. Surely you have a developmental or test system right?

    21. Re:Seriously? by Hurricane78 · · Score: 1

      Sorry, but I think you're confusing the crap out there with web design. As an ex-professional web developer (who did AJAX, two years before the word even existed, and web apps since 1998) I can only tell you, that real actual good professional web design and development is far from that easy. You have to know not only how to program well, you have to know the basics of building compilers (parsers+interpreters for whatever data you get in, which usually is in a messy special format), be a graphical designer, know chromatics, typography, usability, ontologies, psychology, work with a live/staging/workstation version management and sync environment, be good in Photoshop, JavaScript, at least one server language, RegEx, SQL and database design, networking, scripting, and most of all, knowing all the extremely annoying little bugs of browsers, that usually mean you have to be very very good at understanding race conditions and special cases.

      Doing web apps the right way, is by far no easy thing. In summary, you have to be a programmer, designer, database developer and know psychology. And be good at all of them.
      Also if you're out for 2 years, you're done. Trying to do it again, is like starting at the beginning.

      But except from the browser bugs and incompetent wannabe colleagues of the type that you mentioned, it's also really fun. ;)

      --
      Any sufficiently advanced intelligence is indistinguishable from stupidity.
    22. Re:Seriously? by alexchorny · · Score: 1

      Perl usage is raising, you should not look at relative figures.

    23. Re:Seriously? by alexchorny · · Score: 1

      Perl is the most compatible language - that's why they are unsure that compatibility will be the same that in previous releases. But it still will be better than other languages.

    24. Re:Seriously? by ThePhilips · · Score: 1

      [ I did it myself for two years 1999-2001 and know what you talking about. Only difference that I grew up. You apparently didn't. ]

      This is the best explanation - why it is *never* done right.

      And nothing will be ever done right as long as single persons would be required to sit on more than one chair.

      Doing web apps the right way, is by far no easy thing.

      That's why everybody does it *cheap* way.

      Lessens business risks too.

      --
      All hope abandon ye who enter here.
    25. Re:Seriously? by ThePhilips · · Score: 2, Insightful

      Of course Java is simpler than Perl.

      Java is strict typed - Perl is weak typed.

      Java does support run-time dynamic loading of classes - Perl supports run-time compilation from text.

      Java's class tree is static - Perl's one is dynamic and can be twisted any funny way at any point of time.

      Java is explicit language (has no/little of side-effects) - many Perl constructs are by definition implicit and some side-effects are documented as features.

      In the end, Java is simpler to learn, simpler to develop with, simpler to maintain.

      Secret is very easy: Java pretty much never requires one to use brain during no phase of development process.

      Perl actually makes you want to use your brain. Because it's fun.

      --
      All hope abandon ye who enter here.
    26. Re:Seriously? by ggvaidya · · Score: 1

      Nope, that's because the people who would use Perl to "throw together a website" are now using PHP and its libraries instead, and good for them. People interested in writing games, applications or well-designed websites (to say nothing of its core "throw together a script or one-liner" market) still use Perl.

    27. Re:Seriously? by coolgeek · · Score: 1

      Yes, of course I update my dev VM first, and I do a run through the typical code paths. But I don't do a full test of every code path every time there is an update, which is what is necessary now that these guys are saying they can't guarantee that they aren't going to break the language. Don't they have unit tests, anyway? Sooner or later, there is going to be some security update to perl, and I won't have the luxury of skipping the update. This is my primary motivation for updating my systems in the first place, to plug any security leaks.

      --

      cat /dev/null >sig
    28. Re:Seriously? by fluffy99 · · Score: 1

      They are simply saying that Perl updates may break something inadvertently, and they are encouraging developers to test early so they can fix things before the stable release is put out. Sounds far to me.

      I don't believe yum will update you from 5.8 to 5.10. If you are genuinely concerned about Perl updates, why not edit your yum.conf to ignore perl updates?

      One thing I wish yum did, was to rank updates as to whether they are minor bug fixes, driver updates, security updates, etc and what they do. Right now it just says version x.x.x is available.

      This is one thing that Microsoft does well. It makes it much easy to only test, verify, and apply security updates on the production boxes. I don't need to worry about a patch that fixes printers not showing up in terminal sessions, but I do want to fix DOS or potential remote exploits asap. Although the unsubstantiated rumor that MS slips security patches into routine updates would counter that.

      Do note that yum in its default config doesn't update the kernel, which is where a number of major vulnerabilities do crop up in linux.

    29. Re:Seriously? by goodtrick · · Score: 1
      "The statement that they are unsure if they are going to break something is probably just the thing to kill it in my eyes"

      so I guess you prefer to be lied to?

      No software update can claim without a doubt that it will not break anything. Also notice that this is a "development" release...

    30. Re:Seriously? by goodtrick · · Score: 1

      Don't *you* have unit tests? In perl it is very easy to create a test suite, that is why modules on CPAN are already being tested against 5.11.

    31. Re:Seriously? by fluffy99 · · Score: 1

      Exactly. It is a development release and the community is being asked to check it for unforseen compatibility problems. It's possible that a bugfix to the behavior of a function causes a problem, simply because the original coder was relying on the previously incorrect broken function. What's the problem? You certainly don't hear all the linux users complaining about kernel releases which have a non-zero risk of breaking something.

    32. Re:Seriously? by chromatic · · Score: 1

      Don't they have unit tests, anyway?

      Far more and far better than any other dynamic language of which I am aware, even.

    33. Re:Seriously? by rp · · Score: 1

      Is this a real number? If it is, where did you get it?

    34. Re:Seriously? by codematic · · Score: 1

      Perl really REALLY needs an effective way to distribute applications, or utilities for that matter... Anything that is written ends up forcing the user into package upgrade hell... there has to be a way to bundle things like OSx does so that you can have a stable app thats easy to install... Just my 2 cents.

    35. Re:Seriously? by ThePhilips · · Score: 1

      The problem you mention relates only to few distributions which still (in this age) fail at trivial procedure as packaging and package installation. E.g. RedHat (which also btw notoriously known for breaking Perl with every minor revision).

      Get yourself a Debian and it will be OK. (That is also helped by the fact that some Debian admin tools are written in Perl.)

      Otherwise you can always compile Perl from sources. To me it worked on many platforms. Surprisingly, I even had no problems on Windows.

      P.S. And I'm not mentioning here CPAN since I can't believe that anybody might have problem with it. Unless of course you are using -broken by definition- RedHat.

      --
      All hope abandon ye who enter here.
    36. Re:Seriously? by chromatic · · Score: 1

      Try PAR.

    37. Re:Seriously? by emilper · · Score: 1

      Every company I worked for (4 until now in 11 years) used Perl. Try to remove Perl from your unix clone and it won't boot very far.

  3. Also try Perl 6 by Norsefire · · Score: 4, Insightful

    While you're being adventurous and testing Perl 5.11.0 I also suggest trying a Perl 6 implementation. Rakudo Perl (running on the Parrot VM) is one of the most actively developed right now. Not as solid as Perl 5.X yet, but certainly getting there.

    1. Re:Also try Perl 6 by iggymanz · · Score: 2, Insightful

      uh, I'd rather do an implementation in a language that's not in pre-release status. My clients like their money handled by language that 1. exists 2. has stable specification 3. has stable releases

    2. Re:Also try Perl 6 by Norsefire · · Score: 4, Informative

      1. exists

      People have been using Perl 6 for years now. It certainly exists.

      2. has stable specification

      "Stable" is a biologist term, it means "dead". The problem with a set specification (the "waterfall" model) is you discover after something was implemented that it was a bad idea, the whirlpool model prevents this.

      3. has stable releases

      Rakudo has a release every month. The "big" release is coming next April.

    3. Re:Also try Perl 6 by Sir_Lewk · · Score: 1

      So clearly it's not targeted at you. Nobody cares.

      --
      "linux is just DOS with a UNIX like syntax" -- Galactic Dominator (944134)
    4. Re:Also try Perl 6 by Norsefire · · Score: 2, Informative

      Who are these "people" using "Perl 6" for "years"? Name them now, please. The only people I know "using" Perl 6 are those who installed Rakudo, saw that it was a piece of cowshit, and promptly ignored it for being the excrement that it is.

      That's weird, because the number of projects known the proto perl6 module manager are increasing. Rakudo is passing more spectests, and its commits are increasing. There's an entire IRC channel full of users on freenode in #perl6 is you want a list.

      a lack of changes that will break our code

      A stagnant and dead product gets no changes that will break your code. It is that simple.

      I don't give a fuck if Rakudo releases every month. My clients don't give a fuck.

      Maybe no one cares what your opinions about Perl 6 are? But here we are.

      Perl 6 and Rakudo do not.

      Really? Can you give examples of problems in Rakudo that would stop it being used in production? Didn't think so.

    5. Re:Also try Perl 6 by iggymanz · · Score: 1

      no No NO. partial implementations of a pre-release language in flux exist, people who need to write reliable real world applications aren't going to touch that with ten foot pole. Perl 6 is the HURD of programming languages, high school science project with some cool ideas here and there.

    6. Re:Also try Perl 6 by iggymanz · · Score: 1

      clearly it's not targeted at anyone who writes real world scripting langauge applications. everyone cares since no one is using it other than as a fun diversion to fart around with ideas

    7. Re:Also try Perl 6 by outZider · · Score: 0, Troll

      I take it you're a COBOL programmer?

      --
      - oZ
      // i am here.
    8. Re:Also try Perl 6 by Norsefire · · Score: 1

      partial implementations of a pre-release language in flux exist, people who need to write reliable real world applications aren't going to touch that with ten foot pole.

      People only code in languages that never change?

    9. Re:Also try Perl 6 by iggymanz · · Score: 1

      for real world apps, they code in languages that have definite stable production release version.

    10. Re:Also try Perl 6 by Anonymous Coward · · Score: 0

      Rakudo is some great stuff - and from what I see in the Perl6 meeting minutes (and from trying it out myself) - has made HUGE advances since the last time I gave it a whirl.

      Perl6 is also (in my opinion) the most advanced, most capable language Ever. I have worked with all of the more popular languages around (you know, C, Java, Perl, PHP, C#, VB, VBScript, JavaScript (and derivatives), ActionScript (every version, many derivatives), Ruby (enough to have gotten the job done and to have a working knowledge of it), Python and C++). Perl6 is the language that will catapult software development forward for the next 20 years.

      Granted - just as the Perl5 from 10 years ago isn't the Perl5 that I would write today, the Perl6 that we write today won't resemble anything that we would write in Perl6 10 years from now.

      The point is - while I wouldn't yet write anything more than a toy in Perl6, I foresee writing a LOT LESS CODE next year by writing most of it in Perl6. And really, isn't that the point? (the writing less code part)

    11. Re:Also try Perl 6 by iggymanz · · Score: 1, Insightful

      "a Perl 6 implementation on the Parrot Virtual Machine, already implements a significant portion of the language."

      you really can't seriously suggest I recommend this to a paying client? Perl 6 is pre-release as it has been for 9 years, parrot just has its first 1.0 release, and Rakudo implements some subset of Perl pre-6?

    12. Re:Also try Perl 6 by iggymanz · · Score: 1

      haha, but note perl 5.8 or 5.10 *would* meet my criteria. pre-release 6 does not

    13. Re:Also try Perl 6 by Myopic · · Score: 1

      I don't think major implementations for professional clients is the right time to be "adventurous".

    14. Re:Also try Perl 6 by Anonymous Coward · · Score: 1, Funny

      A few shitty CPAN modules and a few guys on IRC don't make the sort of programming environment that we can use for real-world work. We even see more practical activity out of the Haskell community, for fuck's sake. And they literally are nothing but a bunch of academics.

      My clients, who stake their businesses and their employees' livelihoods on my software, give a fuck about the stability of the software they use. Welcome to the real world, "Norsefire". If you Perl 6 guys don't wise up to reality, you'll all be permanently relegated to the crap heap that you're struggling to flee from.

      First of all, Rakudo doesn't have good support for Solaris and FreeBSD, two of the most critical server platforms out there, and the ones used by many of my clients. If it doesn't compile out of the box on those platforms, like it currently doesn't, then it's fucked.

      Second of all, Rakudo has very poor performance. This isn't so much Rakudo's fault, as it is Parrot's. Parrot is just a steaming pile of shit. It makes the JVM look efficient, if you can imagine that. Yeah, Parrot is that bad.

      Third of all, there aren't enough stable, high-quality libraries that'll work with Rakudo yet. It doesn't even have support for connecting to a MySQL database, for the love of herpes. It wouldn't even be suitable for running a shitty blog, let alone any piece of software that's expected to help make a company generate profit.

      Maybe you should stop trying to argue with me, and get back to working on Perl 6. Perhaps in 10 to 15 years you'll produce something we could have used in 2005.

    15. Re:Also try Perl 6 by chromatic · · Score: 2, Informative

      This isn't so much Rakudo's fault, as it is Parrot's.

      I have a year's worth of benchmarks and profiles that disagree with you.

    16. Re:Also try Perl 6 by Anonymous Coward · · Score: 0

      Where are they then?

      By the way, just love the un-biased moderation here on Slashdot. Great job defending FOSS from reality guys, congratulations.

    17. Re:Also try Perl 6 by Anonymous Coward · · Score: 0

      uh, I'd rather do an implementation in a language that's not in pre-release status. My clients like their money handled by language that 1. exists 2. has stable specification 3. has stable releases

      Great. And exactly what the fuck does that have to do with the context of this conversation, which is entirely and explicitly about testing pre-release software such as Perl 5.11 that nobody whatsoever is claiming would be suitable for mission-critical applications?

      I know everyone needs to rip a good strawman to pieces from time to time, but please try to be a little less obvious.

    18. Re:Also try Perl 6 by petermgreen · · Score: 2, Informative

      It makes the JVM look efficient
      The JVM is really VERY good by VM standards. Yeah the class libraries are a bit bloated leading to long startup times but other than that it is one of the few VMs to come anywhere close to (and in some benchmarks even exceed) the performance of tradtional compiled languages.

      According to http://shootout.alioth.debian.org/u64q/benchmark.php?test=all&lang=all&d=data&gpp=on&java=on&ghc=on&csharp=on&sbcl=on&hipe=on&mzscheme=on&lua=on&php=on&vw=on&python=on&perl=on&ruby=on&calc=calculate&box=1 java is behind C,C++ and some language i've never heard of but ahead of everything else. Hell even java in interpreter mode is not that far down the charts.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    19. Re:Also try Perl 6 by jeremyp · · Score: 1

      "Stable" is a biologist term, it means "dead". The problem with a set specification (the "waterfall" model) is you discover after something was implemented that it was a bad idea, the whirlpool model prevents this.

      Stable is a chemist term. It means "could blow up".

      Stable is a physics term. It means "won't sterilise you with large quantities of radiation.

      Stable is an aeronautics term. It means the plane doesn't require a hotshot pilot to stop it from crashing and burning.

      Stable is a civil engineering term. It means the ground is firm enough so your building won't collapse.

      Why do you think picking an irrelevant meaning for a word out of context makes an argument? Stable in the context of software engineering certainly doesn't mean dead. If you don't know what it does mean, I suggest you go back to school.

      --
      All I want is a secure system where it's easy to do anything I want. Is that too much to ask ~~ Randall Munroe
    20. Re:Also try Perl 6 by jeremyp · · Score: 1

      Buggered that up:

      The first one: s/could/won't/

      --
      All I want is a secure system where it's easy to do anything I want. Is that too much to ask ~~ Randall Munroe
    21. Re:Also try Perl 6 by lennier · · Score: 1

      "The problem with a set specification (the "waterfall" model) is you discover after something was implemented that it was a bad idea, the whirlpool model prevents this."

      Hold on, let me draw a chart. So, our project starts in the cathedral at the top of the cliff, we get swept over the waterfall and into the whirlpool. Then the Extreme Bazaar ... is Rapture at the bottom of the ocean?

      I call dibs on the fireball plasmid!

      --
      You are not a brain: http://books.google.com/books?id=2oV61CeDx-YC
    22. Re:Also try Perl 6 by chromatic · · Score: 1

      Where are they then?

      In commit logs and occasional journal posts I've made. You should be able to find them by searching for "Parrot optimization" or "Rakudo optimization" or "Parrot benchmark" or "Rakudo benchmark". You're also welcome to ask any other developer of Parrot or Rakudo.

      Great job defending FOSS from reality guys, congratulations.

      You could read it that way. I read it more that moderators are tired of blowhard know-it-alls who love to complain but rarely back up their apparently strongly-held opinions.

  4. Other stuff that is out by sakdoctor · · Score: 5, Funny

    Kernel 2.6.31.1
    PHP 5.2.11
    Apache 2.2.13
    Debian 5.0.3

    Keep up with all those thrilling point released with slashdot.org

    1. Re:Other stuff that is out by sqldr · · Score: 1

      I was starting to wonder. I mean, an entire story dedicated to a new release of ssh. Wow, it's a headline on slashdot, it must be significant. What are the new features? Some bug fixes.

      I guess with this new perl release, we can write some sort of script to automatically convert a version bump into a slashdot story as an svn hook.

      --
      I wrote my first program at the age of six, and I still can't work out how this website works.
  5. Perl has died in industry. by Anonymous Coward · · Score: 5, Interesting

    For software of any appreciable size, Perl has unfortunately died in industry. People just aren't using it for anything more than 10-line throwaway scripts.

    Perl 6 was something those of us in industry had been anticipating with glee. We expected it to modernize the Perl platform, and make it a contender against Java, .NET and C++ for large-scale software development. But we also expected we'd have that around 2005. It's nearly 2010, and we still don't see much real progress on that front. Rakudo just isn't a production-grade product yet.

    I'm sad to admit it, but instead of waiting for incremental Perl 5 releases for the next decade until Perl 6 is finally mature enough, the company I'm with has started to migrate from Perl to Python. Unlike the Perl community, the Python community has shown with Python 3 that they're capable of working together to create a major release with many new features in a relatively short amount of time (especially compared to the Perl 6 effort).

    Rewriting our approximately 3 million lines of Perl code into Python has actually gone reasonably well. Although I was a staunch defender of Perl, I do have to give Python its kudos. Every day it looks more and more like we've made the right choice moving away from Perl, and towards Python.

    1. Re:Perl has died in industry. by Anonymous Coward · · Score: 3, Insightful

      People just aren't using it for anything more than 10-line throwaway scripts.

      You just posted on a website running Slash. Although it is Perl, so maybe the codebase is less than ten lines.

      But we also expected we'd have that around 2005.

      You were expecting it the same year the very first implementation (Pugs) was started? That was silly of you.

      It's nearly 2010, and we still don't see much real progress on that front. Rakudo just isn't a production-grade product yet.

      Unless lives are at risk, Rakudo is stable enough for production (although you may want to wait for the April "Rakudo Star" release).

      I'm sad to admit it, but instead of waiting for incremental Perl 5 releases for the next decade until Perl 6 is finally mature enough

      Perl 6 != Perl 5. They are two VERY different languages. Perl 5 and 6 will continue to be maintained in parallel.

      until Perl 6 is finally mature enough, the company I'm with has started to migrate from Perl to Python.

      You're complaining about maturity and yet you're using Python?

      Unlike the Perl community, the Python community has shown with Python 3 that they're capable of working together to create a major release with many new features in a relatively short amount of time (especially compared to the Perl 6 effort).

      Perl 6 has many, many more changes than Python 3. It is an entire rewrite of the language from the ground up, they didn't just change the print statement to a function and call it a day.

      Rewriting our approximately 3 million lines of Perl code into Python has actually gone reasonably well.

      That would have been what, 6 million lines in Python? Now I know you're trolling.

    2. Re:Perl has died in industry. by Jurily · · Score: 1

      For software of any appreciable size, Perl has unfortunately died in industry. People just aren't using it for anything more than 10-line throwaway scripts.

      Wasn't that the whole point of Perl? Perhaps we should be ashamed for doing large projects with it in the first place.

    3. Re:Perl has died in industry. by ThePhilips · · Score: 1

      For software of any appreciable size, Perl has unfortunately died in industry.

      Industry doesn't end with "web design".

      People just aren't using it for anything more than 10-line throwaway scripts.

      Perl is one of those languages which grows on you. I had wrote year ago primitive forking HTTP servers with minimalistic CGI support. In the time it was 20 lines + 100 lines for the CGI scripts themselve. Now that is about 5K lines of code.

      But in the end, yes, many 10-line Perl scripts become throwaway - when you realize how to do the job in 1 line.

      Perl 6 was something those of us in industry had been anticipating with glee. We expected it to modernize the Perl platform, and make it a contender against Java, .NET and C++ for large-scale software development. But we also expected we'd have that around 2005. It's nearly 2010, and we still don't see much real progress on that front. Rakudo just isn't a production-grade product yet.

      Change your dealer. He sells you something funny. Or get a real job.

      I'm sad to admit it, but instead of waiting for incremental Perl 5 releases for the next decade until Perl 6 is finally mature enough, the company I'm with has started to migrate from Perl to Python. Unlike the Perl community, the Python community has shown with Python 3 that they're capable of working together to create a major release with many new features in a relatively short amount of time (especially compared to the Perl 6 effort).

      If you were unable to exploit Perl 5 fully - it says more about you than about Perl itself.

      Rewriting our approximately 3 million lines of Perl code into Python has actually gone reasonably well.

      I would have wrote a Perl script for that ;)

      Because such heavy lifting is what Perl best suited for.

      Although I was a staunch defender of Perl, I do have to give Python its kudos. Every day it looks more and more like we've made the right choice moving away from Perl, and towards Python.

      I'm surprised that it took you that long to find a language which suits you better.

      Perl is simply not for everybody. And there is no language for everybody. It's a matter of what they call "taste" - or rather matter of your own abilities to exploit strengths of the tool.

      It's not Perl's fault that it doesn't suit you.

      --
      All hope abandon ye who enter here.
    4. Re:Perl has died in industry. by Fnord · · Score: 4, Interesting

      Ok, I actually do use perl professionally, but even I realize there are some serious problems with it. The reality is a middle ground between you and the grandparent.

      But we also expected we'd have that around 2005.

      You were expecting it the same year the very first implementation (Pugs) was started? That was silly of you.

      Pugs was started in 2005 as an attempt to inject life into what looked like a dying project. The language spec started in 2000. In five years they hadn't nailed it down. In ten years there still isn't a working implementation.

      It's nearly 2010, and we still don't see much real progress on that front. Rakudo just isn't a production-grade product yet.

      Unless lives are at risk, Rakudo is stable enough for production (although you may want to wait for the April "Rakudo Star" release).

      That is EXTREMELY wishful thinking. It may have changed in the last couple months, but I tried this perl 6 code out earlier in the summer:

      my $blah = "blah";
      $blah = $blah.reverse;
      print $blah;

      and that SIMPLE code resulted in an infinite recursion error.

      I'm sad to admit it, but instead of waiting for incremental Perl 5 releases for the next decade until Perl 6 is finally mature enough

      Perl 6 != Perl 5. They are two VERY different languages. Perl 5 and 6 will continue to be maintained in parallel.

      Perl 5 has problems inherent with the language that inhibit large scale use, and this is coming from someone who works on a multi-million line perl 5 project. Recent frameworks have tried to address the problems by grafting perl6 like features onto perl5, but they always impact performance, and are never perfect. And goddammit, I've still found no way around the broken behavior of the SUPER keyword.

      until Perl 6 is finally mature enough, the company I'm with has started to migrate from Perl to Python.

      You're complaining about maturity and yet you're using Python?

      Unlike the Perl community, the Python community has shown with Python 3 that they're capable of working together to create a major release with many new features in a relatively short amount of time (especially compared to the Perl 6 effort).

      Perl 6 has many, many more changes than Python 3. It is an entire rewrite of the language from the ground up, they didn't just change the print statement to a function and call it a day.

      Rewriting our approximately 3 million lines of Perl code into Python has actually gone reasonably well.

      That would have been what, 6 million lines in Python? Now I know you're trolling.

      You're being a bit unfair to Python. I'm not a huge fan of the language (if I had to move anywhere it'd be ruby), but python 3 while it didn't change much in the language itself, was a huge boost in performance to the interpreter. There are incremental changes happening to the perl5 interpreter, but nothing major structural can, because the codebase just isn't very maintainable. In fact that was one of the main reasons they decided to scrap it and develop parrot from scratch instead of working from the perl5 base. Try embedding the python interpreter and the perl5 interpreter in a C program, see which one has internals that make more sense.

      Not to mention that python is immensely more parsable. There are identical python interpreters in C, on the JVM, and on the CLR. Its been said that the only thing that can parse perl5 is perl5, and that is evidenced by the fact that the parrot project gave up on implementing a perl5 parser.

      That's not to say there aren't things python does wrong. Every time there's a point release it seems everyone's code completely breaks, while perl5 is backward compatible to perl1. And frankly, I hate significant whitespace, but that's a personal preference.

      Regardess things are not completely happy in the perl world.

    5. Re:Perl has died in industry. by Norsefire · · Score: 2, Informative

      my $blah = "blah"; $blah = $blah.reverse; print $blah; and that SIMPLE code resulted in an infinite recursion error.

      Might be because it's wrong? reverse is for lists.

      $ perl6
      > my $blah = 'blah'; $blah = $blah.flip; say $blah;
      halb
      > my @a = ; say @a.reverse;
      dcba
      >

    6. Re:Perl has died in industry. by Norsefire · · Score: 1

      Oops, that line should have been:

      my @a = <a b c d>; say @a.reverse;

    7. Re:Perl has died in industry. by Fnord · · Score: 2, Insightful

      I thought there was a reverse string function. In that case, why is it an infinite recursion and not a method not found?

    8. Re:Perl has died in industry. by Elwood+P+Dowd · · Score: 1

      People just aren't using it for anything more than 10-line throwaway scripts.

      So when you say "in industry" you mean your industry, software development (not IT), and you mean dead for large projects (not dead).

      --

      There are no trails. There are no trees out here.
    9. Re:Perl has died in industry. by A+beautiful+mind · · Score: 1

      Reverse string is .flip in P6.

      --
      It takes a man to suffer ignorance and smile
      Be yourself no matter what they say
    10. Re:Perl has died in industry. by schobes · · Score: 2, Informative

      Perl hasn't died. Cpan is one of the most active community and is the largest gathering of usable, open source code available on the net. Show anything that compares to this in the Python, Ruby, PHP realm and I'll shut up, but until you can provide me a CPAN replacement in another language why would you want to change languages.

      --
      CodeRiot! Something new for programming!
    11. Re:Perl has died in industry. by greerga · · Score: 1

      For software of any appreciable size, Perl has unfortunately died in industry. People just aren't using it for anything more than 10-line throwaway scripts.

      I'm in industry at my day job and rumors of its demise are greatly exaggerated.

      Perl 6 was something those of us in industry had been anticipating with glee. We expected it to modernize the Perl platform, and make it a contender against Java, .NET and C++ for large-scale software development. But we also expected we'd have that around 2005. It's nearly 2010, and we still don't see much real progress on that front. Rakudo just isn't a production-grade product yet.

      I'm sad to admit it, but instead of waiting for incremental Perl 5 releases for the next decade until Perl 6 is finally mature enough, the company I'm with has started to migrate from Perl to Python. Unlike the Perl community, the Python community has shown with Python 3 that they're capable of working together to create a major release with many new features in a relatively short amount of time (especially compared to the Perl 6 effort).

      Rewriting our approximately 3 million lines of Perl code into Python has actually gone reasonably well. Although I was a staunch defender of Perl, I do have to give Python its kudos. Every day it looks more and more like we've made the right choice moving away from Perl, and towards Python.

      Often times the effort of rewriting something is where you get your gains, regardless of which language you're doing it in (even the original). Learning from past mistakes, being more efficient, and adapting to new needs are all useful. You may have had the same gains from using PHP, depending on what you're liking.

    12. Re:Perl has died in industry. by greerga · · Score: 1

      and yes I messed up my quoting.

    13. Re:Perl has died in industry. by harmonise · · Score: 4, Insightful

      Perl 6 != Perl 5. They are two VERY different languages.

      Then maybe they need to have two VERY different names. Have we learned nothing from the problems caused by Java and JavaScript? It's nearly 2010 and people still think those two languages have something in common with one another. Now we have two different languages with the same name. Did anyone think that that would not cause confusion?

      --
      Cory Doctorow talking about cloud computing makes as much sense as George W Bush talking about electrical engineering.
    14. Re:Perl has died in industry. by chromatic · · Score: 2, Informative

      [The] Python community has shown with Python 3 that they're capable of working together to create a major release with many new features in a relatively short amount of time (especially compared to the Perl 6 effort).

      Guido switched jobs in early 2000 in part to work on Python 3000. Eight and a half years is not a "relatively short amount of time" for the delta between Python 2 and Python 3.

    15. Re:Perl has died in industry. by Blakey+Rat · · Score: 1

      You just posted on a website running Slash.

      Is that supposed to impress us? Slashdot is by far the most buggy and unstable website I visit.

    16. Re:Perl has died in industry. by Blakey+Rat · · Score: 3, Interesting

      Ok, but why would that result in infinite recursion? Correct or not, that code still exposes a bug.

    17. Re:Perl has died in industry. by chthon · · Score: 1

      I fully agree : Perl is a language which takes time to learn, but the most fantastic thing about is that code that I have written 9 year ago hasn't had the need to be changed, despite going from Perl 5.6.0 to 5.10.0.

      What I learned was that the following books (in addition to the traditional camel book) are a valuable addition to Perl knowledge :

      • How To Design Programs
      • Structure and Interpretation of Programs
      • Perl Best Practices
      • Higher-Order Perl

      If you work through these books, then you will understand why Perl is a better language than Java. My personal opinion, based upon some experiences with Python, is also that Perl is a better language than Python.

      I program Perl for my job, but for my own projects I use Common Lisp.

    18. Re:Perl has died in industry. by iggymanz · · Score: 0, Flamebait

      sure, great libraries built and are reason Perl still used. but share of its use on the web has dropped to less than 20% of what it once was. the contention isn't that Perl 5.x is dead, but that it is dying out.

      For better or worse, PHP has eaten much of Perl's lunch. PHP Libraries adequate enough for 80% of the uses.

    19. Re:Perl has died in industry. by Anonymous Coward · · Score: 0

      Maybe if you didn't cut out the first six words that he said, you wouldn't have to rephrase them in a condescending manner.

      For software of any appreciable size, Perl has unfortunately died in industry. People just aren't using it for anything more than 10-line throwaway scripts.

    20. Re:Perl has died in industry. by chromatic · · Score: 2, Informative

      chromatic, is that you?

      No, I'm actually programming. How about you? What have you produced lately?

    21. Re:Perl has died in industry. by jonadab · · Score: 1

      > You just posted on a website running Slash. Although it
      > is Perl, so maybe the codebase is less than ten lines.

      It could be golfed down to ten lines, but then it wouldn't be maintainable.

      > > Rewriting our approximately 3 million lines of Perl code
      > That would have been what, 6 million lines in Python?

      I'd be more than that.

      If you look at simple functions that do the same thing side by side, Python looks almost as terse as Perl, but you'd be missing the considerable fact that the corpus of available modules for Python is a great deal less comprehensive than the CPAN. When you take that into account, three million lines of Perl code is a terrifyingly large amount of code.

      I don't even want to think about how many million lines of C it would be. The mind boggles.

      --
      Cut that out, or I will ship you to Norilsk in a box.
    22. Re:Perl has died in industry. by korney · · Score: 1

      That may be true in Cali, where the sun always shines, and hot women program computers. In NY, in the wide world of financial software development, Perl is grandfathered into everything.

      Software is rolled out nightly, and millions of dollars run through these scripts daily. As long as what's in the system is supported by Perl, and as long as it's "stable enough", it will remain around.

      Transitioning one of the large financial companies to Perl would be a monumental task, risking massive quantities of money.

    23. Re:Perl has died in industry. by phayes · · Score: 1, Flamebait

      Either give a cite for the %20 or stfu & let the adults talk in peace. Grownups do not attempt to pull numbers out of the thin air.

      --
      Democracy is a sheep and two wolves deciding what to have for lunch. Freedom is a well armed sheep contesting the issue
    24. Re:Perl has died in industry. by petrus4 · · Score: 1

      Is that supposed to impress us? Slashdot is by far the most buggy and unstable website I visit.

      To a large extent, the reason for that is because the editorial staff felt a need to "modernise," presumably due to pressure from the brainless Web 2.0 crowd.

      Pre-2.0, the site was as solid as a rock. The editors should have ignored whoever was howling for cosmetic changes and stayed with their instincts.

    25. Re:Perl has died in industry. by Blakey+Rat · · Score: 1

      Either way, I'd leave it off your list if you're trying to get people to try Perl.

    26. Re:Perl has died in industry. by unity · · Score: 1

      "and this is coming from someone who works on a multi-million line perl 5 "

      Wowzer, I feel for you. Perl 4 was the first language I learned, loved it at the time. But now my days are filled with the joy of C#.

    27. Re:Perl has died in industry. by Anonymous Coward · · Score: 0

      Might be because it's wrong? reverse is for lists.

      You're wrong. Reverse can be evaluated in either scalar or list context. Try this:

      perl -we 'print scalar(reverse("123"));'

    28. Re:Perl has died in industry. by Norsefire · · Score: 1

      Might have done whenever they tried it, but it doesn't now.

    29. Re:Perl has died in industry. by Anonymous Coward · · Score: 0

      Hmm, there was another comment that Perl6's reverse differs from Perl5. If so, then I made a mistake.

      crap.

    30. Re:Perl has died in industry. by x2A · · Score: 0

      "Either give a cite for the %20 or stfu & let the adults talk in peace. Grownups do not attempt to pull numbers out of the thin air"

      I don't think grown ups particulary speak like that to people either. Seriously, the correctness of another is not a prerequisite for the correctness of oneself.

      --
      The revolution will not be televised... but it will have a page on Wikipedia
    31. Re:Perl has died in industry. by alexchorny · · Score: 1

      Perl 5 is developing quite nicely. And number of users is raising (in absolute numbers, and recently, even in relative). See http://www.slideshare.net/Tim.Bunce/perl-myths-200909

    32. Re:Perl has died in industry. by Anonymous Coward · · Score: 1, Insightful

      Better question is, what idiot decided to rename the string.reverse function to something that makes no sense to anyone but him and will cause head-desk-inducing errors for everyone who tries to reverse a string the way they do it in every other programming language since the Stone Age?

      Why should the name for the function to turn a series of characters from back to front be different from the name for the function to turn a series of arbitrary items back to front? Does perl6 not have namespaces or something?

    33. Re:Perl has died in industry. by fluffy99 · · Score: 1

      You must not be calling too many external modules. My biggest heartache on upgrading Perl versions is finding updated modules. I had to roll a few machines back to 5.6 simply because I couldn't find some modules that worked in 5.8. For those I eventually found the right modules or re-wrote the programs to use another module.

    34. Re:Perl has died in industry. by jjn1056 · · Score: 1

      I'm glad your python experience is working out for you. My experience with major rewrites is that they tend to put a company out of business. So best of luck. However I don't believe the fact that Perl wasn't working for you any longer is proof that "People just aren't using it for anything more than 10-line throwaway scripts." Additionally, the existence or lack of existence of a Perl version 6 has not stopped the majority of working Perl programmers from continuing to improve and modernize the language they are using everyday. Perl, built around modern technologies such as DBIx::Class, Moose and Catalyst (see http://www.enlightenedperl.org/project.html for a good starting list of newer Perl projects intended to modernize the language) is powering many high traffic web sites. For a good list check out:http://dev.catalystframework.org/wiki/sitesrunningcatalyst

      Highlights would include BBC iplayer (getting millions of regular hits).

      So people are building new, high traffic websites with modern Perl, and continuing to add on and expand their existing Perl based websites. So if you already have a big Perl codebase, this is a great time to get involved in the community and see what we can do together.

      --
      Peace, or Not?
    35. Re:Perl has died in industry. by emilper · · Score: 1

      "perl5 interpreter" ? since when ?

  6. Great! Another language to learn! by wandazulu · · Score: 0

    Specifically, I have to (re)learn Perl every time I write something in it, which has been about 2 dozen times over the past 12+ years. Seriously though, there's something about my mind that resists keeping any Perl syntax or tricks-n-tips longer than it takes to do the actual project; once it's done it's as if someone else wrote it.

    Why is it I can keep *shudder* Excel 4 macro tricks and have them at the ready at all times (=while(not(isblank(active.cell)))...why do I still remember this?) but I still struggle to assign values to a simple array in Perl?

    1. Re:Great! Another language to learn! by vadim_t · · Score: 1

      Why is it I can keep *shudder* Excel 4 macro tricks and have them at the ready at all times (=while(not(isblank(active.cell)))...why do I still remember this?) but I still struggle to assign values to a simple array in Perl?

      I have no clue? You assign values to an array in Perl in pretty much the same way as in any other language: $array[1] = $value;

    2. Re:Great! Another language to learn! by rubycodez · · Score: 1

      uh huh, then there's @array=qw(its whale guts) or @array=("its","whale","guts")

      behold the whale guts!

    3. Re:Great! Another language to learn! by FooAtWFU · · Score: 5, Informative

      qw(the list of strings operator) is awesome and is equivalent to a list of strings. The main complication of Perl data types: If the thing you're assigning to, or getting out, is an array, it starts with an @: @states = ("Alabama", "Alaska", "Arizona", "Arkansas"); (or if you don't like typing ",s all day long, @states = qw(Alabama Alaska Arizona Arkansas). If the thing you're assigning to, or getting out, is a scalar, it starts with a $: $states[0] eq 'Alabama' or $states[0] = "Canada". If you want an array reference, the reference itself is a scalar, and the thing you're pulling out is also a scalar because that's all you can put into arrays (which is why complex data structures are arrays or hashes with references to other arrays or hashes inside). $stateref = \@states; $stateref->[0] eq 'Canada'; $other_ref = [qw(manitoba vancouver tiajuana)]; @array_again = @$stateref; @array_again = @{$other_ref}.

      And that's really all there is to it, unless you want array slices or something (and who doesn't? @threestates = @states[0..3]).... or getting those out of a reference (@{$stateref}[0..3]).

      Oh, and hashes work on the same principle, but with % for the hash, {} for the indexes, () for populating the hash with an even-sized list, {} for the anonymous reference, and you can do @a_codes = @state_to_postal_codes{qw(alabama alaska arizona arkanasas)}

      --
      The World Wide Web is dying. Soon, we shall have only the Internet.
    4. Re:Great! Another language to learn! by vadim_t · · Score: 1

      qw and similar are there just to make assigning multiple values more comfortable. You can completely ignore its existence and not miss anything.

      That leaves the '@array=("its","whale","guts")' form, which is also very similar to many other languages.

    5. Re:Great! Another language to learn! by DieByWire · · Score: 1

      I love Perl, but I'll admit that after 6 months away I'm having to think a bit to get back into the all the reference/derefernce idioms.

      So when the parent post explaining it all gets modded as funny... well, I hate to admit it, but that's kind of funny itself.

      --
      Never shake hands with a man you meet in a fertility clinic.
    6. Re:Great! Another language to learn! by glassware · · Score: 3, Insightful

      Every so often when I think that Perl might be worth considering again, I come across some truly baffling example of misguided intentions like this.

      I'm sure someone thought it was a brilliant idea to save keystrokes - why type "list.GetRange(0,3)" when you can create syntax using random unused symbols on your keyboard like @states[0..3]? After all, the metric we use to judge programmer productivity is the number of keystrokes they use writing code, not the maintainability of their code.

      Oh yeah! And let's pick a totally random set of characters and use it to tell the code syntax parser to change modes! How brilliant! We can just use "qw" to mean "list of strings operator". Sure, why not, nobody would ever write a function called qw on their own, so there will never be a conflict. And now our code has random text in it which is hard to scan for and isn't surrounded by quotes and doesn't obey the same logic that any other text does.

      Seriously, consistency helps reduce the burden on a programmer. There is no excuse for a language that attempts to remove readability and consistency for the sake of reducing the number of keystrokes required to type a task. You can only save yourself typing time once, whereas readable code saves you time every day for years.

    7. Re:Great! Another language to learn! by vadim_t · · Score: 3, Insightful

      I'm sure someone thought it was a brilliant idea to save keystrokes - why type "list.GetRange(0,3)" when you can create syntax using random unused symbols on your keyboard like @states[0..3]? After all, the metric we use to judge programmer productivity is the number of keystrokes they use writing code, not the maintainability of their code.

      What random symbols? the 0..3 type of syntax seems to be pretty common outside of Perl as well.

      And Perl doesn't have a .GetRange(0,3) type syntax since it's not an OO language originally. OO was grafted on to it later, so a list in Perl is still a list, and not an object with methods.

      Oh yeah! And let's pick a totally random set of characters and use it to tell the code syntax parser to change modes! How brilliant! We can just use "qw" to mean "list of strings operator". Sure, why not, nobody would ever write a function called qw on their own, so there will never be a conflict.

      Same logic could apply to exactly any other function. Personally I think "print" is a much more logical name for a function a programmer might want to use than "qw" (if your code has functions with names like that, I don't want to deal with it).

      As a language construct though, it'd be weird if "qw" had a much longer name, since it's intended to help make things shorter. And it probably stands for "quote words" which seems pretty logical given what it does.

      Also, this complaint seems odd in regards to Perl, which has a much cleaner namespace than many other languages, and helps keeping it clean.

      And now our code has random text in it which is hard to scan for and isn't surrounded by quotes and doesn't obey the same logic that any other text does.

      I don't get this part?

      Seriously, consistency helps reduce the burden on a programmer. There is no excuse for a language that attempts to remove readability and consistency for the sake of reducing the number of keystrokes required to type a task. You can only save yourself typing time once, whereas readable code saves you time every day for years.

      I agree, though in part only.

      Seriously, Perl gives you a choice. If you don't like it, don't use it. I don't use every single construct I can either. Sometimes they help:

      my @months = qw( January February March April May June July August September October November December );

      Why type all those quotes and commas, which can easily be messed up, leading to a compile failure? It's even more readable this way. Sometimes things like $_ help inside things like map, sometimes they make things more confusing. A good programmer knows when a tool is appropiate.

      Sometimes quick and dirty is a good thing. When I make a log parser in 15 minutes to gather some stats for a one time event, it helps being able to take some shortcuts. But those are by no means necessary, and I don't use them when writing bigger things.

    8. Re:Great! Another language to learn! by FooAtWFU · · Score: 1

      why type "list.GetRange(0,3)" when you can create syntax using random unused symbols on your keyboard like @states[0..3]?

      So you can also do @list[1,1,2,3,5,8,13,21,34] or @list[getFibonacci(0..8)] or any one of a number of things like that. So you can say

      to_json(hash_slice_of($product, qw(name description serial_number price)))

      .

      Oh yeah! And let's pick a totally random set of characters and use it to tell the code syntax parser to change modes! How brilliant! We can just use "qw" to mean "list of strings operator".

      Yes. Totally random, because no one will understand that 'qw' means 'quote words' (or that qq{foo} and qq(foo) is the same as "foo", or that q{foo} is 'foo', or qr{foo} is the regular expression /foo/, or that qx(foo) will execute the system command foo and return the output... No, no rhyme or reason to that setup at all! And no one will ever think to read it in a book or perldoc perlop.

      You can only save yourself typing time once, whereas readable code saves you time every day for years.

      Which is why (properly-executed) Perl is as awesome as it is. Look, I realize there are some trade-offs there, and that non-Perl parsing of Perl in particular is a nightmare, but between having the programming language type my quotes and commas, and having myself type the quotes and commas, I will pick the programming language 98% of the time. My IDE can handle it.

      The point of a programming language is to make things easier for people with a modicum of basic skills, not the illiterate - otherwise we'd just use BASIC all the time. When it comes to Perl, you don't have trouble because there's something wrong with the language: you have trouble because you're ignorant and illiterate with regards to Perl. Stop blaming the language for your own deficiencies, and either learn the language or decide you have no need to and accept it as a personal limitation.

      --
      The World Wide Web is dying. Soon, we shall have only the Internet.
    9. Re:Great! Another language to learn! by Anonymous Coward · · Score: 1, Insightful

      Random unused symbols such as the at-sign, square brackets, and periods? E-mail must be difficult in that case.

      Also, "qw" stands for "quote words." Simple enough.

    10. Re:Great! Another language to learn! by Anonymous Coward · · Score: 0

      Seriously, Perl gives you a choice. If you don't like it, don't use it. I don't use every single construct I can either.

      You have no choice when reading/debugging/maintaining code, only at write-time.

      I think you missed the point of his argument against qw. It's an example of near-meaningless symbols thrown together because they are unlikely to suffer a namespace collision. He's not complaining that he really wanted to write a qw function, he's complaing because it's bad for the same reason that he would never write a function called qw. If your language construct is a string of letters unlikely to suffer a namespace collision, it's almost certainly a terrible choice of letters. Choose something that's more than two letters, it can still be short, like quote, or words, or strlist, or something.

      As a language construct though, it'd be weird if "qw" had a much longer name, since it's intended to help make things shorter

      If that's the real reason, then it's an odd sort of syntactic aspartame. Making things shorter is good when it makes it more readable and understandable and less prone to difficult-to-sort-out errors; whether is saves keystrokes is WAY down the list of possible advantages.

      Why type all those quotes and commas, which can easily be messed up, leading to a compile failure

      Compile failure isn't the thing you generally want to optimize against, any more than keystrokes. A compile failure is rapidly seen, diagnosed, and fixed.

      I think the only important advantage here is the readability from removing excess punctuation, but then, if readability is the only true benefit, then "qw" is an extremely odd choice, because it is itself not very readable. I'm sure you get used to it when you look at perl a lot.

    11. Re:Great! Another language to learn! by Anonymous Coward · · Score: 0

      What you are describing is Perl's steep learning curve. Yes, Perl has a steep learning curve compared to other languages, but it has lots to offer that other languages don't. Lots of programmers who have lots of experience in other languages never get past the curve, because it is difficult, and then they walk away with the impression that Perl code is impossible to read, impossible to maintain, and so on. It doesn't help that the tutorials online and lots of the popular books don't show you how to write *good* Perl. Read Mark Jason Dominus, "Higher-Order Perl", or Damian Conway, "Object-Oriented Perl." I would argue that once you achieve a decent level of proficiency with Perl you will find that you can write code that is more powerful, more clean and more maintainable than what you could achieve with an equivalent level of proficiency in other languages. Perl doesn't hold your hand like other languages - you have to impose your own style and philosophy on your project. The advantage being that you aren't cornered into approaching problems in one particular way. There is more than one way to do it.

      There is an argument that "there is more than one way to do it" is incompatible with maintainable code. That if you have a bunch of developers of differing abilities and experience levels working on a project, each trying to apply their own philosophy, chaos results. I program Perl professionally, with a team of other Perl programmers on a significant project (on the order of a million lines of code), and find that this is just not the case in practice. The project has its own philosophy and style that we each understand and adhere to. We make sure that each developer knows the language well, either through hiring or mentoring.

    12. Re:Great! Another language to learn! by da+cog · · Score: 1

      While I am not a fan of Perl, in fairness square brackets are a nearly universal programming language notation for array indexing, and "0..3" is very common mathematical notation meaning "everything between 0 and 3 inclusive."

      --
      Snarkiness is inversely proportional to wisdom because it emphasizes feeling right rather than being right.
    13. Re:Great! Another language to learn! by realcheese · · Score: 1

      Sorry to be pedantic... @threestates = @states[0..3] really gets you "fourstates".

    14. Re:Great! Another language to learn! by Anonymous Coward · · Score: 0

      Your example of GetRange shows just how much you failed to understand the basic concept. In the code @array[2..3], the 2..3 is actually a LIST. This means that you can easily expand it far beyond this basic example while still using CONSISTENT SYNTAX. Which is where your example fails.
       
      What if you wanted elements 2 through 5 and element 7? Why, that's trivial and consistent: @array[2..5,7] How would I expect array.GetRange to do that? Would I need array.GetRangeWithSomeOtherElements?
       
      Not to mention the ability to use any item that returns a LIST inside the brackets, @array[give_me_a_list()] or another @array or any number of things. All of this with consistent syntax. I mean, sure, you could memorize a dozen different GetArrayElements$FOO variants, but who wants to waste time doing that?

    15. Re:Great! Another language to learn! by mikehoskins · · Score: 2, Interesting

      OK, then there's Ruby. It preserves the best pieces of Perl, Smalltalk, Python, and Lisp.

      Perl's `qw(one two three);` actually works in Ruby as `%w{one two three}` but many constructs are semi-close to Perl.

      It is considered to be in the Perl family of languages but is a supremely cleaned up / ultra powerful OOP language, in the Smalltalk vein.

      In general, Ruby is as pragmatic as Perl, if not more so. It has a cleaner, more readable syntax, and code is very/most often shorter than a Perl equivalent.

      As an ex-Perler myself, I'm not looking back. Ruby is a far more powerful language, and I can read other's code (and even my code, 6 months later).

      Ruby exceeds Perl in web development, a la Rails (or Merb). It comes with many "hackers' libraries" built in, such as Expect, Erb, and Net::. Ruby Gems has Rubyforge, Raa, and GitHub as sources, which are functionally similar to CPAN. However, Gems is cleaner, without all manner of compilation and portability issues (and less code rot).

      Ruby's lambdas, open classes (monkey patching,) and method_missing() make Perl hackery look anemic and juvenile, by comparison. If you need a different way to program, try building a DSL in Ruby, which is similar in functionality to Lisp's macros, just without S Expressions.

      In short, Ruby is a better Perl 5/6 than Perl 5/6....

    16. Re:Great! Another language to learn! by UltimApe · · Score: 1

      just to clarify, the q and qw etc are not random characters to avoid collisions, you just have to consider them as abreviations:

      q = single quote:allows you to write things like
      q{
      <a href = 'somewebsite.com'> show me the $! </a>
      }
      without having to escape the quotes (readability), and avoiding $ interpretation as variable

      qq = double quote: allows you to write things like
      qq{
      <a href = "$location"> some random location! </a>
      }
      without having to escape the quotes, but with $variable interpretation

      qx = quote & eXecute : allows you to write things like
      qx{
      ls "some directory with spaces"
      }

      qw = quote on whitespace : treats whitespace as a quote delimeter
      qw{
        one
        two
      }
      (a list of two quoted words)

      why do these exist? I'm not sure exactly. But they are a godsend when trying to quote things that are full of $, and " marks ( like other programming languages, or even raw text)

      --
      "Infecting minds with my own memetic virus, one post at a time." Ultimape
    17. Re:Great! Another language to learn! by harry666t · · Score: 2, Interesting

      my @months = qw( January February March April May June July August September October November December );

      How about:

      months = "January February March April May June July August September October November December".split()

      Python's full grammar specification fits on two pages of A4.

    18. Re:Great! Another language to learn! by A+beautiful+mind · · Score: 1

      Ruby exceeds Perl in web development, a la Rails (or Merb). It comes with many "hackers' libraries" built in, such as Expect, Erb, and Net::. Ruby Gems has Rubyforge, Raa, and GitHub as sources, which are functionally similar to CPAN. However, Gems is cleaner, without all manner of compilation and portability issues (and less code rot).

      Perl is king of the hill in web development. RoR brought us a clearly defined concept that doesn't work in practice (implementation). Perl has Catalyst that scales with increased requirements and complexity very well. It runs some very high traffic websites in the world.

      Github is not a replacement for CPAN. Github allows you to get a code repository, with you know, git. I use it every day, but CPAN is so much more. It's a network of archives that you can use to install software from using any complete Perl 5 installation.

      About cross-platform compatibility and portability, Perl runs on around a hundred platforms by last count. Ruby is "cleaner" if you take it to mean that it doesn't work on nearly as many platforms and as such it has no "issues" originating from those platforms.

      Ruby's lambdas, open classes (monkey patching,) and method_missing() make Perl hackery look anemic and juvenile, by comparison. If you need a different way to program, try building a DSL in Ruby, which is similar in functionality to Lisp's macros, just without S Expressions.

      You might have a point with Perl 5, since it's pretty old. However, Perl 6 is way WAY ahead of Ruby, in part because the features that Ruby borrowed from Perl 5 and cleaned up, got borrowed from Ruby into Perl 6 and improved upon again :)

      --
      It takes a man to suffer ignorance and smile
      Be yourself no matter what they say
    19. Re:Great! Another language to learn! by cliveholloway · · Score: 1

      Yeah, it's so much easier to type VisualEditor filename - vi is so hard to remember! QuoteWords makes so much more sense than qw! I see the light now.

      --
      -- Trinity in high heels carrying a whip: The donimatrix - there is no spoonerism
    20. Re:Great! Another language to learn! by chromatic · · Score: 1

      Ruby is a far more powerful language, and I can read other's code (and even my code, 6 months later).

      I know plenty of Perl hackers who have no trouble reading their own code six months later. I suspect this reflects more on your code than the language.

      Gems is cleaner, without all manner of compilation and portability issues (and less code rot).

      Ruby extensions written in C require compilation. Ruby Gems would also have portability issues if they were actually tested on all of the platforms that CPAN supports.

      In short, Ruby is a better Perl 5/6 than Perl 5/6....

      I suspect you know very little about Perl 6 then.

    21. Re:Great! Another language to learn! by mikehoskins · · Score: 1

      ...yet in practice, CPAN has trouble compiling large numbers of libraries on "tier 2" platforms, such as AIX and HPUX.

      Try getting Expect from CPAN for HP/UX, some time.... Expect works, Perl works, Expect.pm does not.

      In practice, even Solaris 8/9/10 has issues where package A depends on version x.y.z of package B which conflicts with version a.b.c of package C, and package C needs a newer version of package A than will compile on Solaris, due to C-library vs. Xyz.pm issues.

      Where I worked, it was often nightmarish to compile/make the 150+ CPAN packages and install tons of GNU libraries, to make a typical Apache-based website that had both Websphere and Perl CGI.pm-based apps. We loved Perl and touted it, even as we were cursing CPAN packages under our breath.

      To me, an ex-Perl programmer, it doesn't matter if it compiles on "hundreds" of platforms, if my platform runs only the parts of CPAN I don't need....

      Also, I wrote well-documented code, compared to most Perl programmers. Yes, I have read much Perl code over the years, at work, home, and on the 'net -- my own and others.

      Perl is notorious for unreadable code! Just check the opinions of *seasoned* Perl programmers on the net. There is an attitude that "if it was hard to write, it should be hard to read."

      Perl has never been known for clear, clean code -- short code but not clean code. It's "blessed" object model, for instance is an ugly, bolt-on hack.

      I have no interest in Perl 6, ever since I read that its backward compatibility with Perl 5 was even worse than Python 3 was with Python 2.x (which has a converter) and also after I spoke to somebody on the Perl 6 team who said that the spec, years later, was not even close to complete. Two years later, it still isn't.

      Who really trusts Perl 6 in a mission-critical production environment? Many do daily with Java, C#, vb.net, Python, Cold Fusion, Ruby, asp, vbscript, etc. Perl 6, of course, isn't "finished" yet.

      I believe Perl 6 has no future. This was the final nail in the coffin for me to explore this up-and-coming Ruby. Many Perlers, back then, were open-minded enough to try Ruby, as were many in the Java world.

      I made the switch, and while I am still more proficient with Perl (after 13 years of Perl 4/5 vs. about 1-2 with Ruby), I find a "programmer's joy" with Ruby and a learning experience nearly every time I use it. My code is cleaner, more readable, more concise, and more reusable in Ruby. It is fun, enlightening, and better for scripting.

      Try Ruby, you might like it. I've "evangelized" Ruby to Perl and Python addicts at work. Much to their delight, Ruby becomes something they quickly begin to prefer over Perl and Python. Almost every time they use it, they find the same "profound enlightenment" moments I have. Lispers have this same experience, although probably to a greater degree.

      Nobody is saying you have to be an exclusive Rubyist. I still do use Perl, for the quick-and-dirty. I still use bash and am learning Python.

      I now know a little Rails, which (make no mistake) has a steep learning curve.

      Who says RoR doesn't work in practice? Twitter? LinkedIn? Hemnet? Shopify? Doodlekit? 43Things? Nope.

      In each of the above cases, the site either has to scale/perform like crazy, has complex data needs, needs rich content, or all of the above. It works in practice...

      Again, be open-minded and try Ruby. You just might like it. Unlike Perl 6, it's here and now. If you are stuck in a Java-only environment, try JRuby 1.x, which is Ruby for the Java masses.

    22. Re:Great! Another language to learn! by mikehoskins · · Score: 1

      BTW, PHP is the undisputed king in web development and compares favorably with Java and C#, in terms of sites, code, and jobs. It's also faster, easier to learn, and cleaner than Perl.

      Perl definitely has more legacy code and sites than Ruby on Rails, sure.

      I'd submit that RoR code is better/cleaner and supports larger teams of coders.

      Even if all you do is get proficient with Ruby and later RoR, you will change the way you code in Perl/PHP/whatever.

      BTW, if imitation is the most sincere form of flattery, see CakePHP, Groovy on Grails, ColdFusion on Wheels, the Castle Project, and Mojo. RoR is influencing frameworks on PHP, Groovy/Java, Cold Fusion, C#, and Perl, respectively.

    23. Re:Great! Another language to learn! by chromatic · · Score: 1

      Perl is notorious for unreadable code! Just check the opinions of *seasoned* Perl programmers on the net. There is an attitude that "if it was hard to write, it should be hard to read."

      I would be happy to introduce you to dozens of seasoned Perl programmers who object strenuously to that mischaracterization.

      [Perl 5's] "blessed" object model, for instance is an ugly, bolt-on hack.

      Lifted straight from Python.

      Perl 6, of course, isn't "finished" yet.

      Neither is Ruby 2 or Python 3 or ECMAScript 4 or ....

      Unlike Perl 6, [Ruby is] here and now.

      If Perl 6 wanted to support only those language features that Ruby 1.9 supports, Perl 6 would have been "here and now" years ago. That's a modest goal, and my goals are much, much more ambitious. Ruby's still playing catch up with Perl 5 (let's talk object systems, platform compatibility, library support, compiler warnings and errors, a built-in test suite...).

    24. Re:Great! Another language to learn! by chromatic · · Score: 1

      [PHP is] also faster, easier to learn, and cleaner than Perl.

      I'd really like to see you support most of this sentence.

      Regarding the influence of Rails, note that the strongest influences for Catalyst (likely the strongest influence on Mojo) predate Rails measurably.

    25. Re:Great! Another language to learn! by mikehoskins · · Score: 1

      Sorry, Mojo is "like" Rack. Mojolicious is more "like" Rails. I use the quotes around "like," because both are weakly inspired by Rack and Rails, not close to being "clonish" like Groovy on Grails.

      Speed, by the way, is *not* one of Ruby's strengths, although its performance and scalability are greatly improving and have more "tweakability."

      I am having trouble backing up the performance differences claim (one that used to be easy to do) -- perhaps Perl has finally closed this gap over the past couple of years.

      However, the opinions that PHP is cleaner and easier to learn are shared by many:
          http://www.killerphp.com/articles/php-vs-perl-vs-java-a-students-question/
          http://www.webmaster-forums.net/web-programming-and-application-development/php-vs-asp-vs-perl
          http://www.thesitewizard.com/archive/phpvscgi.shtml

      I used to be a believer in Perl (and PHP, for web development) but have changed my mind, due to Ruby.

      As a programmer, are you open to change and trying new stuff? Why not learn from other languages, like Ruby, Lisp, or Smalltalk, to become a better Perl programmer?

    26. Re:Great! Another language to learn! by chromatic · · Score: 1

      Speed, by the way, is *not* one of Ruby's strengths, although its performance and scalability are greatly improving and have more "tweakability."

      Over Perl 5? Unlikely. The last I looked (I haven't looked at Ruby 1.9.x), Ruby closures had to close over all lexicals in a program. There's a great way to reduce scalability, memory wise. (I can also mention that the last I knew of Ruby's GC, it unshared way too many pages during a naive mark and sweep.) As well, I seem to recall that a Perl 5 program won Tim Bray's Wide Finder benchmark.

      However, the opinions that PHP is cleaner and easier to learn are shared by many....

      Let's talk numbers. How many default functions and operators does PHP have? How many does Perl 5 have? How many of PHP's default functions and operators are compile-time settings or settings in php.ini?

      Why not learn from other languages, like Ruby, Lisp, or Smalltalk, to become a better Perl programmer?

      I first programmed Ruby in 2001. I've written my own Scheme. I have the Smalltalk-80 books on my desk, and I've referred to them in the past few days.

      The only thing I consider worth learning from PHP is the necessity of ease of deployment.

    27. Re:Great! Another language to learn! by mikehoskins · · Score: 1

      Lifted straight from Python? How's that? The syntax doesn't even superficially resemble Python's. Where do you get proof for that (I looked and see nothing to back up your claims)?

      Perl got objects in 1994, with Perl 5. Python was released in 1991. It *could* have happened the way you describe, but I don't see evidence of that. I bet some Pythonistas would challenge that assumption.

      In Python, as far as I can remember, nearly everything is an object (except, basically keywords and immutable types), with the ability to call methods on most things, even many immutable types, such as numbers:
      >>> (1).__add__(2)
      3

      In Ruby, where essentially everything (other than keywords) is an object:
      >> "hello world".length
      => 11

      How does Perl compare to either of these, even Python?

      Ruby 1.8 and Ruby 1.9 are production-ready, as is Perl 5.

      Perl 6 is "any decade now." I don't see a sequitur leap to a comparison between Ruby 2 and Perl 6, since you started by comparing Ruby 1.9 to Perl 6.

      Very few people worry about Ruby 2, while Perl 6 is considered a "big deal" to Perlers. Perl 6 is still on the drawing board and is in a severe state of flux, many, many years later. I think the Perl 6 project has failed due to scope creep. Ruby 2 is rarely discussed, since it's not a "big deal," so it hasn't suffered from that kind of "bit rot," yet. Ruby 2 is just a relative glimmer in a few people's eyes, even if it, like Perl 6, is a long-term project.

      Comparing Ruby 1.9.x to Perl 5.11.x may be more of a valid comparison, in terms of what they mean to the next big leap.

      Both Ruby 1.8 and 1.9 have severely more powerful OOP constructs than Perl 5. All three of these are prod-ready.

      Still, Perl 6 is supposed to greatly break compatibility. Ruby 1.9 doesn't greatly break compatibility, and 2.0 is also expected to be easy to port, but we'll see. Perl 6 is mostly a different language, according to what I've read.

      Perl 5 has bolt-on class-based objects. These superficially resemble C++/Java/C#'s classes. Ruby has objects resembling the king of OOP: Smalltalk. There's a big difference, there.

      Ruby has open classes, true exception handling, method_missing(), duck typing, and reflection. Lambdas are truly useful (check out iterators).

      Even though Ruby is extremely dynamic, it is strongly typed, without getting in your way -
          This is an error:
              "hello world" + 5

          This is not and returns an integer 5:
              "hello world".to_i + 5

      In Perl 5, this is not an error:
          "hello world" + 5;

      So, in Perl 5, if you accidentally set a variable wrongly, you still get an answer, instead of an exception you can handle. This can be catastrophic to data integrity. `use strict;` and `my $variable;` don't help this situation.

      I just have one question, in closing.... Have you spent at least 6 months trying to become proficient in Ruby? If not, I challenge you, as a former Perler. Try it for 6 months, part-time....

      See if you get as hooked as many of us have.

    28. Re:Great! Another language to learn! by chromatic · · Score: 1

      Have you spent at least 6 months trying to become proficient in Ruby?

      Indeed I have. It's a decent language. It has nothing on Perl 6 (and, frankly, it's missing a lot of nice features of Perl 5).

      Where do you get proof for that....

      Larry's exact quote is "I don't really know much about Python. I only stole its object system." You should have no trouble finding confirmation on the Internet.

      Both Ruby 1.8 and 1.9 have severely more powerful OOP constructs than Perl 5.

      Nonsense. Compare Perl roles to Ruby monkeypunching.

      Perl 6 is "any decade now."

      The twenty-second monthly release of Rakudo Perl 6 in a row will take place in two and a half weeks. You're almost two years out of date with respect to your Perl 6 information.

      Perl 5 has bolt-on class-based objects. These superficially resemble C++/Java/C#'s classes.

      Nonsense.

      Ruby has objects resembling the king of OOP: Smalltalk.

      Perl 5 objects (using Moose) have more features from Smalltalk than Ruby objects do then. Of course, that's because Moose backported them from Perl 6, which borrowed some of the formalisms from Smalltalk for the design of the particular feature I have in mind.

      Ruby has open classes, true exception handling, method_missing(), duck typing, and reflection. Lambdas are truly useful (check out iterators).

      Perl 5 has all of those as well. Perl 6 adds built-in support for roles, class finalization, junction types, optional typing, serialization, multi dispatch, and more. You can try them today.

      In Perl 5, this is not an error....

      ... because of Perl 5's type system and Perl's nature as an operator-oriented language. I can understand how this might be confusing if you never learned the language, but it's a deliberate design principle. Don't pretend it's an accident perpetuated by clueless buffoons who never saw the grape-flavored wonder that is Ruby.

    29. Re:Great! Another language to learn! by mikehoskins · · Score: 1

      As a long-term Perl programmer, myself, who switched to Ruby, virtually everything you're talking about is either an ugly hack or is an add-on via CPAN or is only available in 5.10+.

      As for features available in 5.10+, that's totally fair, but I abandoned Perl around that time. As for Moose, it's not part of the core language today.

      Maybe if a production-ready version of Perl 6 ships by late 2011, I may give it a try, then. Is it truly ready for prod, now? If so, I'm interested.

      Don't get me wrong; Perl 5 is a popular, very powerful dynamic language that I programmed in for 12-13 years, myself.

      To say, however, that Perl 5 is better than Ruby 1.8/1.9 in every respect or to equivocate between the already available Perl 5 and the maybe-it'll-be-released-real-soon-now-perhaps Perl 6 isn't fair and smacks of fanboyism.

      It's not like I am comparing 2 languages, one of which I never programmed in.

    30. Re:Great! Another language to learn! by chromatic · · Score: 1

      As for Moose, it's not part of the core language today.

      So what?

      Plenty of widely-used Ruby libraries aren't part of the core language. Is Rake in 1.9 yet? The Enterprise Ruby patches make Ruby much more usable, and they're not in the core language either.

      To say, however, that Perl 5 is better than Ruby 1.8/1.9 in every respect....

      That would be stupid, which is why I never wrote that.

      maybe-it'll-be-released-real-soon-now-perhaps Perl 6

      As I wrote earlier, the 23rd monthly release in a row of Rakudo Perl 6 will occur in two weeks. It supports more features than Ruby 1.9 does and you can use it today. It may not support the features your code needs -- but that's okay. Ruby 1.9 doesn't support the features my code needs.

    31. Re:Great! Another language to learn! by vadim_t · · Score: 1

      You can do:

      @months = split(/ /, "January February March April May June July August September October November December");

      As well. Though I find the qw idiom more natural for the particular task. For me it's deeply ingrained that split() is something you do at runtime, to a variable that may have a different content every time. qw is a compile time operation. To me, "@months = qw (...)" and "@months = (..)" are Perl versions of the C array initializer "char *months[] = { ... }", while split implies a mess with malloc and strtok, and which should be avoided for static data.

      Python's full grammar specification fits on two pages of A4.

      That's good to know, it'll make things easier when I finally find a reason to bother learning it. Not trying to troll here, I know Perl, it does everything I need doing at the time. Learning another language to do the same thing except in a prettier and maybe slower way seems wasteful with other more interesting things to do.

  7. I love Perl by kokoko1 · · Score: 1

    $Book = 'Perl For Dummies';
    print 'The title is $Book.';
    When you run the program, Perl displays

    The title is $Book
    .
    Now change the single quotes to double quotes in the print statement:
    $Book = 'Perl For Dummies';
    print "The title is $Book.";
    When you run the program now, Perl displays
    The title is Perl For Dummies.

    --
    http://askaralikhan.blogspot.com/
    1. Re:I love Perl by Anonymous Coward · · Score: 1, Insightful

      This is exactly how it should work. I'm not a fan of perl, but this is how most scripting languages, and your shell, do it. ' means literal quotation, while " is more relaxed.

    2. Re:I love Perl by ThePhilips · · Score: 1

      But there is more!

      print qq{The title is $Book.\n}; # double quotes, not forgetting the \n

      print q!The title is !.$Book.q!.\n!; # single quotes, not forgetting the \n

      Quoting is the f***ing best feature in Perl. Ever.

      --
      All hope abandon ye who enter here.
    3. Re:I love Perl by TheLink · · Score: 1

      And there is yet even more:

      #!/usr/bin/perl -wT
      use strict;
      sub bar {
        my $c=shift||'';
        return join(" ","Perl For Dummies", $c);
      }
      my $foo=<<"EOT";
      Hey everyone, guess what...

      The title of the book is "${\( bar(2))}".

      Go figure.
      EOT
      print $foo;

      Yes it's ugly that you can in effect interpolate functions in a huge blob of text. But it does save a lot of time compared to the printf or python way. You don't have to keep checking to see if the number of %s matches the number of things you want to interpolate, or that you've got stuff in the right order.

      Or how about this:

      #!/usr/bin/perl -wT
      use strict;
      sub foo {
        my $title=shift||'Unknown';
        my $startversion=shift||0;
        return sub {
            $startversion++;
            return $title unless ($startversion>1);
            return join(" ",$title,$startversion);
        }
      }
      my $bar=foo("Perl For Dummies");
      my $bar2=foo("Perl Cookbook");
      my $t=<<"EOT";
      Hey everyone, guess what...

      The title of the first book in library A is "${\( &$bar())}".
      The title of the second one is "${\( &$bar())}".

      The title of the first book in library B is: ${\( &$bar2())}.
      The title of the second book in library B is: ${\( &$bar2())}.

      Go figure.
      EOT
      print $t;

      OK most of us won't need to use that sort of thing, but who knows, you might think of a reason to use stuff like that ;).

      --
  8. *cough* *cough* by CODiNE · · Score: 1, Insightful

    ...

    unit tests.

    --
    Cwm, fjord-bank glyphs vext quiz
  9. Re:netcraft didn't confirm but Perl is dying by Anonymous Coward · · Score: 0, Insightful

    What the fuck are you talking about? Perl is still the King of Scripting Languages and always will be, at least until it has some real competition.

    Ruby is the biggest fucking joke to hit software development in years. It takes the worst of Smalltalk, and combines it with the worst of Perl. Then it adds in a bunch of smug college students, sorry, "rockstar programmers", who can only toss together ass-licking Web frameworks that pale in comparison to NeXT's early releases of WebObjects.

    Python 3.0 has been a huge disaster. When we tried it at work, we found a huge number of problems with core modules. Many of them hadn't even been updated to support the Unicode string changes in Python 3.0! And a lot of the third-party Python software just plain won't work with Python 3.0. We couldn't fucking believe how horrible of an experience Python 3.0 was for us.

    Perl is the only scripting language that is solid, is reliable, is flexible, runs just about everywhere, has an intelligent developer community, and just works out of the box. There is no alternative to Perl.

  10. who uses PERL by viralMeme · · Score: 2, Informative

    "For software of any appreciable size, Perl has unfortunately died in industry. People just aren't using it for anything more than 10-line throwaway scripts"

    "Large and high profile websites using Perl include: Slashdot, The Internet Movie Database, Amazon.com, CMPnet technical magazines ...

    1. Re:who uses PERL by FooAtWFU · · Score: 2, Interesting

      Also, the AirWave Management Platform is in Perl (with C/XS/etc as appropriate in certain places). It sells for thousands-of to millions-of dollars, depending on your licensing and support needs. It's basically the only wireless network NMS out there which supports multiple brands of access point (Aruba, Cisco, HP/Colubris, Meru, Proxim, Symbol/Motorola, Foundry...) and its main competitor is basically Cisco WCS, which only manages/monitors Cisco devices.

      Perl's take on object-oriented programming seems a little "fake" to some people: "what? you just bless hash references into a package named with a string? that's crazy!" But it works, and it works fairly well, and it is in fact very well-suited to development in this wildly heterogeneous environment.

      --
      The World Wide Web is dying. Soon, we shall have only the Internet.
    2. Re:who uses PERL by uassholes · · Score: 0, Troll
      Is that why the interface is such fucking shit?

      include: Slashdot

    3. Re:who uses PERL by onefriedrice · · Score: 3, Informative

      Is that why the interface is such fucking shit?

      include: Slashdot

      I can't believe I have to explain this to somebody reading Slashdot, but interface is built with html and css, not perl (or any other server language).

      --
      This author takes full ownership and responsibility for the unpopular opinions outlined above.
  11. Changelog? by Anonymous Coward · · Score: 0

    What's the point of a release announcement without a link to the changelog?

  12. Re:netcraft didn't confirm but Perl is dying by Anonymous Coward · · Score: 0

    Are you comparing Perl 5 to Python 3? Why not Python 2.6 or Perl 6?

  13. Re:*cough* *cough* by Anonymous Coward · · Score: 2, Insightful

    Unit tests are only as good as the programmer that programs them.

    Many times, your solution is not cut and dry.

  14. Re:netcraft didn't confirm but Perl is dying by iggymanz · · Score: 3, Insightful

    nice to hear of universe between your ears, where it's 1999. outside of that, in real world use, Perl has plummeted in use in last five years, from third most widely used language to eleventh. the language has stagnated and any Perl creative effort being wasted on the undead Perl 6.

  15. Obligatory by razvan784 · · Score: 3, Funny
  16. Re:netcraft didn't confirm but Perl is dying by ThePhilips · · Score: 2, Insightful

    ... we're still stuck with Perl 5 limitations.

    Limitations in studio, please.

    Larry is old enough we should start placing bets, does he die before Perl 6 comes out?

    I'm accepting bets whether a card runs you over before you read the comment.

    --
    All hope abandon ye who enter here.
  17. Re:netcraft didn't confirm but Perl is dying by Anonymous Coward · · Score: 1, Informative

    nice to hear of universe between your ears, where it's 1999. outside of that, in real world use, Perl has plummeted in use in last five years, from third most widely used language to eleventh. the language has stagnated and any Perl creative effort being wasted on the undead Perl 6.

    Nice to hear of the universe between your ears, where it's a fantasy island that you created yourself. Perl is the 5th most popular language on Github (and Ruby doesn't count because Engine Yard give Ruby guys free accounts). And Perl 5 and Perl 6 development are happening very separately, one of Rakudo's lead devs said a month or two ago that if they (personally) weren't working on Perl 6 they wouldn't be working on anything in the Perl community.

  18. Re:netcraft didn't confirm but Perl is dying by Ant+P. · · Score: 2, Insightful

    too many better competitors with powerful features have sprung up

    Such as... what? A Visual Basic clone (Python), a rewrite of VB itself (.Net), a Java ripoff (C#), something that brings a website to its knees before it hits 20 simultaneous users (Ruby), or an absolutely appalling clusterfuck of a language that can't even use consistent function names within a single module (its name shall not be spoken).

  19. Re:Perl has died in industry (mod away, kids) by uassholes · · Score: 0, Troll

    I constantly struggle to make various Python programs work.

    Why can't people just write real programs in real languages?

    Remember C and Java?

  20. Re:*cough* *cough* by A+beautiful+mind · · Score: 5, Informative

    Perl probably has the best testing culture out there from the major programming languages, including Java on the list. Between TAP, Perl 5 core's large test suite and a myriad of test related modules it has automated testing well covered.

    Did you know for example that when you upload something to CPAN, it gets automatically smoked on dozens of platforms and hundreds of different boxes, test reports sent to the author and assistance provided to diagnose platform specific problems if needed?

    Manual testing is for the problems not caught by the huge array of automated tests.

    --
    It takes a man to suffer ignorance and smile
    Be yourself no matter what they say
  21. Re:netcraft didn't confirm but Perl is dying by smoker2 · · Score: 0, Flamebait

    Somehow I think your username gives away your bias. So STFU.

  22. Re:Comic books! Entertainment for little faggots. by Anonymous Coward · · Score: 0

    Is that Perl?

    Given that it probably is, what does it do? And is that also what it was supposed to do?

  23. Re:netcraft didn't confirm but Perl is dying by Anonymous Coward · · Score: 3, Insightful

    and Ruby doesn't count because Engine Yard give Ruby guys free accounts

    Yeah, I'm gonna use this statistic, but only the part of it that I like.

  24. Perl -- Goodbye Old Friend by tres · · Score: 1

    Perl was so. fricking. awesome. back when the only choices were shell scripts or compiled apps. It was such a leap forward. Who wouldn't be excited about Perl back in the '90s

    But we're far beyond the sophistication of Perl. I'm not saying that you can't do some pretty fricking awesome things in Perl, but that Perl doesn't do many of the meta-tasks that we've come to expect in languages. These supporting features don't necessarily make things run or run fast, but rather help developers in the process of creation and maintenance. The industry has grown up and the black magic of hacking has been codified into the craft of coding.

    And Perl isn't alone here, C++ is undergoing the same process.

    --
    Notes From Under *nix: blas.phemo.us
    1. Re:Perl -- Goodbye Old Friend by Anonymous Coward · · Score: 0

      What meta-tasks are those? Not to diss you, just genuinely curious.

    2. Re:Perl -- Goodbye Old Friend by coryking · · Score: 1

      1) Easy Refactoring.
      2) Somewhat related - Easy to write an IDE for. You can't right-click on a method call in some perl code and go "show definition". This is partially the nature of this class of languages though.
      3) Something better than POD. Make it XML based. Steal from Javadoc or XMLdoc.
      4) One damn way to inherit and one damn way to build a class. Yeah I know Perl wasn't originally OO, and it shows.

      Perl was my bread and butter for many years, but quite frankly I've been spoiled rotten by the new languages on the block. Going back to my old friend is just depressing, sadly.

    3. Re:Perl -- Goodbye Old Friend by chromatic · · Score: 1

      For your first two points, try Padre. For your fourth point, try MooseX::Declare.

      I disagree on your third point. Ouch.

    4. Re:Perl -- Goodbye Old Friend by coryking · · Score: 1

      Why? Pod kinda sucks compared to the other two. I guess that is just personal though.

    5. Re:Perl -- Goodbye Old Friend by Eravnrekaree · · Score: 1

      Perl is awesome. Still today it is the best choice for large applications. I dont know where people get that it is not elegant, it is an extremely elegant language to use and its design makes good sense. Especially compared to C++. Perl produces far better code than what you would do with C++, easier to debug, etc.

    6. Re:Perl -- Goodbye Old Friend by chromatic · · Score: 1

      Why? Pod kinda sucks compared to the other two.

      I've written books in XML and I've written books in PseudoPOD. I don't write books in XML anymore. My company's entire production system uses PseudoPOD.

  25. Re:netcraft didn't confirm but Perl is dying by Anonymous Coward · · Score: 0

    Visual Basic DONE RIGHT (Python)

  26. Re:*cough* *cough* by Anonymous Coward · · Score: 0

    Yup. And the TAP framework (Test::More) is super easy to link with requirement management frontends.

  27. Re:netcraft didn't confirm but Perl is dying by Anonymous Coward · · Score: 0

    I was writing a rebutal to your statements, but I came to the conclusion that it will be futile. So instead of that I just feel sorry for you, as I do for all Cobol programmers.

    I have written some smaller Perl scripts and I will probably do so in the future. Perl is just unmatched when it comes to text processing. But for anything else the syntax is just to arcane. Instead of learning the Perl syntax in greater detail I prefer learning general concepts (or getting shit done).

  28. It would be better if it wasn't so huge by trparky · · Score: 1, Interesting

    Perl would be a whole lot better if the damn interpreter wasn't so freakin' huge and didn't take almost fifty MBs of RAM to load. 50 MBs isn't that much to speak of unless you're not running MOD_PERL and you have several Perl scripts running at the same time and your poor server is brought to its knees.

    1. Re:It would be better if it wasn't so huge by Anonymous Coward · · Score: 0

      You must be doing something really fucking wrong if your Perl interpreter process is consuming that much RAM.

      I just ran a 5000 line script that parses some C headers and generates C++ bindings. Running this Perl 5 script on Linux against my project with over 500 C header files, with it processing 20 header files in parallel, top is reporting that perl using 4 MB of virtual RAM, with 2.2 MB resident.

      Something must be really fucked up with your script if it requires 50 MB of RAM.

    2. Re:It would be better if it wasn't so huge by Anonymous Coward · · Score: 0

      What?

      Loading the naked interpreter on a 64bit linux machine (memory usage measured in bytes):

      17748 perl-5.10.0
      21544 bash-3.2.39
      25596 python-2.5.2

    3. Re:It would be better if it wasn't so huge by A+beautiful+mind · · Score: 1

      50 MB is not the Perl interpreter size, but about 5MB for perl, 45 for loaded modules and the variables that come with them. You need to load a lof of moduels to get to 50MB. I'm not sure why are you worried about that 50MB though, most of it should be COW across the 20-40 child processes, or does that only work with FCGI like that?

      --
      It takes a man to suffer ignorance and smile
      Be yourself no matter what they say
    4. Re:It would be better if it wasn't so huge by Eravnrekaree · · Score: 1

      Thats a bunch of nonsense. Perl interpretor does not use anywhere near that. Its pretty efficient, and only uses a small amount of ram. How do people come up with these lies?

  29. Re:netcraft didn't confirm but Perl is dying by Anonymous Coward · · Score: 0

    an absolutely appalling clusterfuck of a language that can't even use consistent function names within a single module (its name shall not be spoken).

    I think its name should be spoken. I doubt that I'm the only one who doesn't know what language you're talking about.

  30. Re:netcraft didn't confirm but Perl is dying by Anonymous Coward · · Score: 0

    To be fair, Python is a lot more than a VB clone. I love Perl but you gotta give Python some respect.

  31. Re:netcraft didn't confirm but Perl is dying by iggymanz · · Score: 1

    hahaha, never heard of github until now? and the fifth most popular language of these gits means what exactly? bet Perl was their #1 a few years back if that site more than four years old

  32. qw vs. explode or split by tepples · · Score: 1

    qw and similar are there just to make assigning multiple values more comfortable. You can completely ignore its existence and not miss anything.

    But what does Perl qw do that PHP explode() or Python str.split() doesn't?

    $array = explode(' ', 'its whale guts'); # PHP

    array = "its whale guts".split() # Python

    1. Re:qw vs. explode or split by vadim_t · · Score: 2, Informative

      Perl has that too.

      @array = split(/ /, 'its whale guts');

      With the additional advantage of that it uses a regular expression, so you can split by a much more complex criteria.

      The difference is that qw happens at compile time, and split happens at runtime, so it has efficiency advantages. Additionally, qw lets you choose the delimiter. For instance:

      @array1 = qw( its whale guts );
      @array2 = qw/ its whale (guts) /;

    2. Re:qw vs. explode or split by Anonymous Coward · · Score: 0

      But what does Perl qw do that PHP explode() or Python str.split() doesn't?

      Expresses the intention directly? qw means "create a list of strings"", whereas "...".split() means "make a string, then split it up into a list".

    3. Re:qw vs. explode or split by Anonymous Coward · · Score: 0

      It doesn't actually have to split a string, which can be considered a reasonably expensive operation.

    4. Re:qw vs. explode or split by tepples · · Score: 1

      The difference is that qw happens at compile time, and split happens at runtime, so it has efficiency advantages.

      That's an implementation issue. A smart implementation of the language would apply what C calls the as if rule to methods of literal values. I don't know whether the Python bytecode compiler already does this.

    5. Re:qw vs. explode or split by tepples · · Score: 1

      It doesn't actually have to split a string, which can be considered a reasonably expensive operation.

      The parser still has to split the string when compiling the program to bytecode.

    6. Re:qw vs. explode or split by Anonymous Coward · · Score: 0

      Python can't do that, because without whole-program analysis you can't know whether some other module has replaced any function or operator with a custom implementation.

    7. Re:qw vs. explode or split by tepples · · Score: 1

      Python can't do that, because without whole-program analysis you can't know whether some other module has replaced any function or operator with a custom implementation.

      In that case, a speed-oriented implementation of Python would prohibit replacing methods of built-in types in a way incompatible with static analysis, using something like this:

      from __future__ import final_builtins

  33. Re:netcraft didn't confirm but Perl is dying by Anonymous Coward · · Score: 2, Informative

    Perl has plummeted in use in last five years

    Really? Or are you just making stuff up?

  34. Re:netcraft didn't confirm but Perl is dying by tepples · · Score: 2, Funny

    an absolutely appalling clusterfuck of a language that can't even use consistent function names within a single module (its name shall not be spoken).

    I think its name should be spoken. I doubt that I'm the only one who doesn't know what language you're talking about.

    Let's just say that you might need a Physicians Health Plan after trying to remember whether or not a function name has an underscore.

  35. Re:netcraft didn't confirm but Perl is dying by Anonymous Coward · · Score: 0

    You can polish a turd, but it's still a turd.

  36. Re:netcraft didn't confirm but Perl is dying by jmlsteele · · Score: 2, Informative

    I believe he's talking about this.

  37. Whats new? by hey · · Score: 1

    Hey I still use and love perl!

    Is there a list online of the cool new features?

    Also, people dumping perl... what are you moving to?
    (Thanks)

  38. What about 3rd party modules? by krypticmind · · Score: 0, Troll

    Ladies, ladies, before you start talking about things you obviously lack the brains to comprehend, lets just remind everyone how one should measure an active development community. Lets examine the amount of modules in the default distribution for each of the top interpreted languages today: CPAN: 73018, PyPI: 7740, Pear: 132. A year ago, there were 58878 modules on CPAN (http://web.archive.org/web/20080730121430/http://search.cpan.org/). Draw your own conclusions whether the language is dead. Meanwhile, the Python (ex PHP retards) core team is still trying to figure out, 20 years deep in the development of the project, how to support UNICODE correctly. Good times!

    1. Re:What about 3rd party modules? by Anonymous Coward · · Score: 0

      Nice troll

      Python3's main change was unicode-all-the-way. Unicode is working fine in Python2, but it still makes 8 bit strings "too easy".

      I don't think Perl as it better than that. Perhaps you were thinking of Ruby that still has sucky unicode support?

    2. Re:What about 3rd party modules? by Anonymous Coward · · Score: 1, Insightful

      You Perl faggots always like to bring out CPAN, don't you?

      The last five or six times I've tried to install a module from CPAN on a modern Linux distribution, it has fallen flat on its face.

      First, you have to wade through 15 or 20 similar, yet equally shitty, modules before you find the one that actually sort of works. Then you have to pray that it installs correctly, which it usually doesn't. Finally, you have to try to figure out how to properly use the goddamn module, which is often as cryptic as anal warts and of course lacks documentation and helpful comments.

      But by that time, you've wasted a better part of a day, and you realize that Perl is a waste of time, CPAN is a waste of time, and that Python just works. 7000 modules each doing one thing very well are better than 70000 modules where 10 perform the same task, and all of them suck rotting goat penis.

    3. Re:What about 3rd party modules? by Anonymous Coward · · Score: 0

      You Perl faggots always like to bring out CPAN, don't you?

      The last five or six times I've tried to install a module from CPAN on a modern Linux distribution, it has fallen flat on its face.

      First, you have to wade through 15 or 20 similar, yet equally shitty, modules before you find the one that actually sort of works. Then you have to pray that it installs correctly, which it usually doesn't. Finally, you have to try to figure out how to properly use the goddamn module, which is often as cryptic as anal warts and of course lacks documentation and helpful comments.

      But by that time, you've wasted a better part of a day, and you realize that Perl is a waste of time, CPAN is a waste of time, and that Python just works. 7000 modules each doing one thing very well are better than 70000 modules where 10 perform the same task, and all of them suck rotting goat penis.

      Asshole

    4. Re:What about 3rd party modules? by Skrynesaver · · Score: 1

      Then use the cpan CLI tool or if you're using Debian use the prebuilt apt packages

      --
      "Linux is for noobs"-The new MS fud strategy
  39. Re:Perl has died in industry (mod away, kids) by uncqual · · Score: 3, Funny

    Kids today... Who writes in C? Real Programmers write everything in assembly - all those fancy "volatile" and "restrict" constructs are just cruft required because they couldn't find Real Programmers who didn't need stinking optimizers. Java... don't even get me started - support for synchronization IN A LANGUAGE - that's just silly talk.

    --
    Why is there an "insightful" mod and why isn't it "-1"? If I wanted insight, I wouldn't be reading /.
  40. Fool by omb · · Score: 0, Troll

    When you know as much, and can do as much as Larry Wall, talk, meanwhile STFU.

  41. Re:netcraft didn't confirm but Perl is dying by ducomputergeek · · Score: 2, Informative

    We must REALLY be behind the times like it's 1999. Because a lot of our stuff is not only written in Perl, but deployed on FreeBSD too!

    Most of our stuff was in PHP and usually what the public sees in the terms of our control panel and shopping cart system is PHP. But behind the scenes, it's all perl. All our billing scripts, maintenance scripts, log parsing scripts, reporting scripts, and API are all Perl. Anything that needs extensive regex is Perl. Granted, most of those scripts I've built probably 10 - 12 years ago, but they still do their jobs and do them well why change?

    We've been looking into datamart for long-term storage and analytics and the one we're close to selecting turned out to have no PHP support at all (well supposedly ODBC works), but Perl had not 1, but 2 modules in CPAN to connect and work with the database. And thanks to that it turned out to be faster in loading batch jobs than PHP/ODBC.

    Recently we'd been using a PHP based CMS that while popular is slow. The content is mostly static, but the pages needed to load faster. We switched to a Perl based CMS with flatfile databases that load in less than 2 seconds vs. 12 seconds for the PHP/MySQL based CMS.

    --
    "The problem with socialism is eventually you run out of other people's money" - Thatcher.
  42. No, Completely Wrong by omb · · Score: 1

    Perl is used very extensively, in industry, military and academia, that is not to say anything against Python.

    I find it is much easier to get people from a traditional programming environment, FORTRAN, C, C++ productive in Python than Perl, since the style is much more compatible. Perl as line noise is a joke and is easy to write well and debug.

    But again, you must learn your tools, but all learning is at a cost. Also developers tend to overcomplicate.

    The which is the best Programming language | Methodology | Pattern is getting very old!

  43. Re:Perl has died in industry (mod away, kids) by Myopic · · Score: 2, Insightful

    Wait, wait. I'm not clear on your concept. Are you saying that compilation makes programs more stable and maintainable? What's the connection between stability, maintainability, and compilation?

    Are you saying that if I ran C or C++ code inside an interpreter (and there are some), then that code would somehow become less stable and maintainable?

  44. What perl needs by Saac · · Score: 1

    For me anyways:

    1: Better multi-threading support

    I have written a huge estimation application (web-based). The calculations are something like O(n^n) or worse... point is, processors aren't getting faster. We are however getting a lot more cores. The algorithm parallelizes very well, but perl does not do efficient multi-threading. So I will have to re-write the estimation engine in something else.

    2: Compilability

    For the companies that want to keep their code proprietary... there are projects that pretend this, but they just append the code to the interpreted. Trivially reversable.

    1. Re:What perl needs by tpwch · · Score: 1

      1. fork() works just fine, is extremly stable, and is faster than using threads on most platforms. I agree that perls ithreads implementation is a bit shaky, but most of the time fork() is simpler and faster anyway, so why bother with it? 2. What language is there than can't be decompiled? I can't think of one.

      --
      Posted by a Debian GNU/Linux user
    2. Re:What perl needs by alexchorny · · Score: 1
      1. fork - that how Perl won one of speed competitions for multicore.

      2. PAR has encryption support. Also look at Module-Crypt.

    3. Re:What perl needs by petermgreen · · Score: 1

      I have written a huge estimation application (web-based). The calculations are something like O(n^n) or worse... point is, processors aren't getting faster. We are however getting a lot more cores. The algorithm parallelizes very well, but perl does not do efficient multi-threading. So I will have to re-write the estimation engine in something else.
      OTOH I strongly suspect that rewriting it in a faster programming language by itself is likely to bring a more significant speedup than going multithreaded. According to http://shootout.alioth.debian.org/u64q/benchmark.php?test=all&lang=all&box=1 perl perl is 70 times slower than C. Few boxes have more than 8 cores.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    4. Re:What perl needs by fluffy99 · · Score: 1

      I've had lots of strange problems forking in windows. It certainly doesn't seem to work the same as under linux.

  45. Re:netcraft didn't confirm but Perl is dying by iggymanz · · Score: 1

    uh, your graph shows constant ~1% of all language *internet listings* of Perl for the last four years. Proving what, I'm not sure. And let me tell you how internet job listings work. One place has a real job, and then 30 other recruiting firms see that job and also run same listing with slight variabtion hoping to find person they can then present to the original company so they can get a cut. So the number of real actual Perl jobs on your graph is in the "statistical noise" percentage of perhaps 0.03% or so.

  46. Re:Perl has died in industry (mod away, kids) by uassholes · · Score: 2, Interesting
    My attitude comes from frustration. When I compile a C program and statically link it, it just works. Better yet (at least in a lot of cases) when I "compile" (in the Java sense) a Java program, it not only "just works", it does so on a great many platforms (even Windows since the courts enforced MS to comply with Sun's Java licensing agreement).

    But I gave up on Perl because CPAN never worked properly on Solaris (I know about the gcc version, don't get me started). So it seems after the Perl kids grew up, the next generation adopted Python. I'm sick and fucking tired of trying to figure out if a certain "program" writen in Python need to be run with Python 2.4, 2.5, 2.6, or what the fuck ever, but now there seems to be a new generation for which Python is your Dad's scripting language, so they're onto Ruby.

    And when the Ruby kids grow up, what's next? Can't we have some software that if it runs now, it will still run ten years from now, like Cobol, FormTran, or C?

    I'll bet you consider those to be antiquated don't you? And yet programs in those languages are being run all over the world to do serious stuff, and will be for a long time, and your OS may be written in one of them.

    My first computer in the 70's had an interactive BASIC interpreter that was great for playing around with programing. The scripting languages that have sprung up since them are acestors of that BASIC interpreter, and must be very educational for the younger generation, but IMHO are not suitable for production software.

  47. What do people use Perl for? by petrus4 · · Score: 1

    I've found I can do pretty much everything I need with shell. I've also tended to find that I can store and retrieve whatever data I'm working with in flatfiles with awk, as well. Some people might find that horribly primitive, but truthfully flat text is a lot easier for me to understand and work with than XML.

    I feel that awk has an excessively bad rap, to be honest. I know of some people who like it, but it doesn't seem to get used much. I find it very useful at times.

    What do people use Perl for?

    1. Re:What do people use Perl for? by dreamer-of-rules · · Score: 2, Insightful

      I use Perl for one-time jobs... Repairing badly-formatted 80GB data files. Splitting flat files into multiple output files. Testing uniqueness of various fields. Finding the line(s) in a 250GB file that is crashing the sqlload program, and fixing it, because you have two hours or we'll lose the project. (nevermind it's the client's data). Editing several files to purge or excise fields or characters before doing serious work with them. Most of these I do via the command line. I'll write actual Perl scripts to crawl throughout our network and gather statistics on files and projects, to test patch status, to download files, process them, and email the results.

      Quick! The boss is standing over you demanding that you convert a flat file into csv, add a header, prepend a unique id, and spit any lines with weird characters into a separate file. Here's the printout of the layout. You have ten minutes. There's a million lines in the file and they've got to build a marketing model before the client meeting in one hour.

      --
      Everyone is entitled to his own opinions, but not his own facts.
    2. Re:What do people use Perl for? by petrus4 · · Score: 1

      I acknowledge; this was a dumb comment. I know Perl can be used as a CGI scripting language, and for any number of other things besides.

      Let me clarify, however; what do people use Perl for, that they *wouldn't* write in another language?

    3. Re:What do people use Perl for? by petrus4 · · Score: 1

      Quick! The boss is standing over you demanding that you convert a flat file into csv, add a header, prepend a unique id, and spit any lines with weird characters into a separate file. Here's the printout of the layout. You have ten minutes. There's a million lines in the file and they've got to build a marketing model before the client meeting in one hour.

      Ah. When you mention weird characters there, you mean using perl compatible regular expressions, (among other things) yes?

    4. Re:What do people use Perl for? by dreamer-of-rules · · Score: 1

      In the example, it was simply non-printable characters. In other cases, repairing client's data files has required more.. creativity. Like handling non-escaped commas in a comma-delimited file.

      --
      Everyone is entitled to his own opinions, but not his own facts.
    5. Re:What do people use Perl for? by AniVisual · · Score: 2, Interesting

      Molecular biologists and bioinformaticians use Perl extensively for manipulating databases of long chains of DNA and proteins. Perl excels in this regard, due to its string manipulation prowess.

  48. Re:netcraft didn't confirm but Perl is dying by nick_urbanik · · Score: 1

    \the syntax is just to arcane.

    Perhaps the syntax of English is just a little too arcane as well?

  49. Add SQL to the list by turing_m · · Score: 1
    --
    If I have seen further it is by stealing the Intellectual Property of giants.
  50. Cool ass site! This rocks... by turing_m · · Score: 1

    I know I already replied to this. But if you click "relative" you get an idea of the growth in language jobs (though I suspect that the y axis needs to be logarithmic). On a whim I decided to include web frameworks too. e.g. Django, ruby on rails. SQL and C are still on top (followed by VBA) in the absolute, but in relative Ruby on Rails and Django appear to smoke everything else.
    absolute: http://www.indeed.com/jobtrends?q=c%2C+java%2C+perl%2C+php%2C+python%2C+ruby%2C+sql%2C+postgresql%2C+mysql%2C+django%2C+ruby+rails%2C+cobol%2C+assembler%2C+MATLAB%2C+VBA+visual+basic&l=
    relative: http://www.indeed.com/jobtrends?q=c%2C+java%2C+perl%2C+php%2C+python%2C+ruby%2C+sql%2C+postgresql%2C+mysql%2C+django%2C+ruby+rails%2C+cobol%2C+assembler%2C+MATLAB%2C+VBA+visual+basic&l=&relative=1

    I have no idea whether the growth in jobs is matched by the growth in programmer numbers in those areas. Also any new languages/frameworks/whatever are probably going to grow like crazy if they are any good. But even among web frameworks it seems that the growth of the top 3 is exceptional. Drupal, Ruby on Rails and Django are still top. (I added a bunch more from http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks). That's not to say that the most popular language/database/web framework/whatever are the best. e.g. I'd never willingly use mysql over postgresql, even though there are way more mysql jobs. Growth rate is the same however. Another factor is the payscale. If you were after money you'd pick a language that is both well paid and growing at a rapid rate. Intuitively, a more powerful but harder to use language should pay more because the supply is more limited.

    relative: http://www.indeed.com/jobtrends?q=django%2C+ruby+rails%2C+zend%2C+zope%2C+pylons%2C+symfony%2C+cakephp%2C+drupal%2C+fuse%2C+turbogears&l=&relative=1
    absolute: http://www.indeed.com/jobtrends?q=django%2C+ruby+rails%2C+zend%2C+zope%2C+pylons%2C+symfony%2C+cakephp%2C+drupal%2C+fuse%2C+turbogears&l=

    This site is pretty cool too.
    http://www.hotscripts.com/blog/determining-programming-language-popularity/

    --
    If I have seen further it is by stealing the Intellectual Property of giants.
  51. PHP ate its lunch ... by Anonymous Coward · · Score: 0

    Perl was once the de facto server-side scripting language of the web. It had a huge head start. Most of today's CPAN is momentum left over from that era. That PHP, quite horrible in itself, could actually displace Perl is a measure of the mess the language has become. Even that would have been easily fixable if Perl did not have such sclerotic leadership as to fritter an entire decade away on linguistic games with themselves.

    1. Re:PHP ate its lunch ... by chromatic · · Score: 1

      ... if Perl did not have such sclerotic leadership as to fritter an entire decade away on linguistic games with themselves.

      I trade most milestones in the Perl renaissance directly to Perl 6.

      (Sclerotic? If that's the word you intended, the metaphor is... difficult.)

  52. Re:netcraft didn't confirm but Perl is dying by OakDragon · · Score: 1
    Perhaps we could get the name of that with a handy function, like:

    get_real_name_of_this_language();

    Maybe?

  53. Real Programmers use butterfiles by midicase · · Score: 1

    Obligatory xkcd reference:
    http://xkcd.com/378/

  54. Re:Perl has died in industry (mod away, kids) by chthon · · Score: 1

    Sorry that you had problems with Perl, but I am now running Perl code since 9 years on an environment consisting of three different platforms, which are Solaris, Windows and cygwin (yes, also Windows, but there are differences between running Perl pure on Windows and in Cygwin). The libraries and programs I have written can be installed unmodified on any of these platforms and provide the same functionality. I never had any problems running Perl on Solaris, but the prerequisite is that a gcc is installed beforehand and that you have the possibility running it always when necessary, especially when installing C-based packages from CPAN.

    I did not even have a choice in the matter, my boss decided 9 years ago that I should do everything with Perl, because we inherited some Perl code from another site that was to maintain.

    The thing that helped me become a better (Perl) programmer was the discovery of How To Design Programs, and discovering that Perl has the same wonderful functional possibilities as Scheme and Lisp.

  55. Re:netcraft didn't confirm but Perl is dying by Anonymous Coward · · Score: 0

    Perl is just unmatched when it comes to text processing.

    I think GNU awk is just as good as perl for text processing, and faster. Perl is still good for the occasional nifty 1-liner, but otherwise there's no need for it anymore. Other languages have surpassed it.

  56. Re:netcraft didn't confirm but Perl is dying by DragonWriter · · Score: 1

    Nice to hear of the universe between your ears, where it's a fantasy island that you created yourself. Perl is the 5th most popular language on Github (and Ruby doesn't count because Engine Yard give Ruby guys free accounts).

    Github gives everyone free accounts for open source development. But Github popularity isn't a measure of much of anything about a language, its more useful to tell you which communities Github has gained popularity in than which languages are widely used.

  57. Re:netcraft didn't confirm but Perl is dying by rubycodez · · Score: 1

    wrong, Ruby mostly just hobby.

    The languages I use as part of my job include J2EE, Perl, PHP, C/C++, Python. One of the reaons I bitch so much about Perl is it was my first scripting language love, so awesome at the time compared to the NOS JCL, VMS DCL and Unix sell clunky scripting. sad to see Perl 6 in present state.

  58. This is why I don't learn Perl by jotaeleemeese · · Score: 1

    That somebody thinks the above is clear erases from my mind any doubts about opening any book with a camel on its front cover....

    --
    IANAL but write like a drunk one.
  59. That is standard behaviour in UNIXland. by jotaeleemeese · · Score: 1

    I am not saying it is sensible or clear, but it is not unique to Perl: :pinguino:~$ sh
    $ Book='Perl For Dummies'
    $ echo 'The title is $Book'
    The title is $Book
    $ echo "The title is $Book"
    The title is Perl For Dummies

    --
    IANAL but write like a drunk one.