Slashdot Mirror


perl6 and Parrot 0.5.2 Released

mAriuZ writes "Bob Rogers just released Parrot 0.5.2. This monthly release includes a couple of interesting new features. First, we've bundled Patrick Michaud's Rakudo (thats the implementation of Perl 6 on Parrot) such that you can type make perl6 on Unixy platforms and make perl6.exe on Windows and get a working standalone Perl 6 binary. This is experimental and we hope to iron out some installation and deployment issues by next months release, but it was important to demonstrate our progress. The second new feature is a toolkit for starting your own compiler. Max Mohun built a prototype several months ago, and we've added a stripped-down version for now that builds the skeleton of a compiler for you using the Parrot Compiler Tools. I mentioned the LOLCODE compiler in What the Perl 6 and Parrot Hackers Did on Their Christmas Vacation; this is how Simon and Company were able to get LOLCODE up and running so quickly."

229 comments

  1. LOLWUT by kcbanner · · Score: 5, Funny

    hai
    can has stdio?
    visible "frist p0st!!"
    kthxbye
    btw damn you lameness filter!

    --
    Obligatory blog plug: http://www.caseybanner.ca/
    1. Re:LOLWUT by Guy+Harris · · Score: 5, Informative

      Offtopic? That is an example of LOLCODE, and the article does note that there's an implementation of LOLCODE atop Parrot.

    2. Re:LOLWUT by kcbanner · · Score: 2, Informative

      My remaining Karma thanks you :)

      --
      Obligatory blog plug: http://www.caseybanner.ca/
    3. Re:LOLWUT by nitio · · Score: 4, Informative

      MOD BOTH PARENTS UP!

      Wow, the first is an example of LOLCODE and is modded Offtopic and the second mentions that and it's modded Troll. Seriously, WHAT.THE.FUCK?

      --
      http://stoploudness.org/
    4. Re:LOLWUT by hey! · · Score: 1

      The scary thing is that LOLCODE is better than some languages I've actually had to work in.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    5. Re:LOLWUT by Anonymous Coward · · Score: 0

      Yes indeed; perl comes to mind!

    6. Re:LOLWUT by Adam+Taro · · Score: 1

      :)

      That, my friend, was part of the original point when I came up with the thing.

    7. Re:LOLWUT by Anonymous Coward · · Score: 1, Insightful

      LOL* is just so dumb that I can't really blame the mods.

  2. Re:I'm sorry, but... by Anonymous Coward · · Score: 1, Insightful

    Yeah, or you could choose a factor that's not completely irrelevant when you're looking for the next language to learn.

  3. Parrot 0.5.2 by Anonymous Coward · · Score: 0

    Beautiful plumage...

  4. LOLCODE by Anonymous Coward · · Score: 0

    LOLWHAT?

    1. Re:LOLCODE by ajs318 · · Score: 1

      It's a programming language for cats, based on "kitty pidgin" (no, not the one your cat dragged in and left festering under the spare bed).

      If you haven't seen any of those daft kitty pictures with captions, like a cat watching a washing machine with "THIS TELLY R BORING, WHERE IZ REMOTE?" you probably won't get it.

      --
      Je fume. Tu fumes. Nous fûmes!
    2. Re:LOLCODE by fuzzix · · Score: 1

      If you haven't seen any of those daft kitty pictures with captions, like a cat watching a washing machine with "THIS TELLY R BORING, WHERE IZ REMOTE?" you probably won't get it.
      I have seen them and I STILL don't get it... perhaps you could enlighten me.
  5. Merry Christmas! by 0xC2 · · Score: 2, Funny

    Eleven months early!

    --
    Be heard || Be herd
    1. Re:Merry Christmas! by Anonymous Coward · · Score: 1, Interesting

      I'm very happy to see something productive out of the Parrot community. They've promised some great things, and we've been waiting a long time to use their offerings. Some people in the community (see article below) have started to doubt the Parrot project's usefulness, but maybe this cool Perl6 development will make them re-think their stance.

      Will Parrot ever truly deliver? (http://pinderkent.blogsavy.com/archives/124)

      Earlier today I was reading an article about Parrot. Parrot is, as stated on the projects Web site, a virtual machine designed to efficiently compile and execute bytecode for dynamic languages. Parrot currently hosts a variety of language implementations in various stages of completion, including Tcl, Javascript, Ruby, Lua, Scheme, PHP, Python, Perl 6, APL, and a .NET bytecode translator.

      So Parrot does sound like an interesting piece of technology. Its understandable how a common runtime for scripting languages could prove beneficial. But will it ever be a platform suitable for serious, production usage? I have my doubts.

      Parrot has been under active development for quite some time now. The initial 0.0.1 release was made on September 10, 2001. During 2007, weve seen a release every month or so. So a lot of effort has been put into Parrot over the past six years. It has surpassed one of the major stumbling blocks with many Open Source projects, in that it has managed to build at least some development momentum. Unfortunately for its supporters, Parrot has never really seemed to catch on. I think there are a number of reasons for this.

      Stability is probably the first problem. I dont mean stability in terms of the runtime crashing, or anything of that sort. Im talking about concept stability. There has always seemed to be a relatively large amount of change between releases. While this is good, in that there are improvements being made and new ideas being implemented, this causes problems for users who want to build reliably upon Parrot. Individuals and businesses often do not, or cannot, invest the time and effort to track a continually-moving target like Parrot.

      The language implementations for Parrot, while many in number, have been of limited use. Looking at the status messages of some of the most promising and practical language implementations shows why this might be the case. Such messages include:

      • Incomplete - but all examples and test cases are working. (Amber for Parrot)
      • Most of the samples work. (BASIC/compiler)
      • Has been broken for a long time. (BASIC/interpreter)
      • Parser is pretty complete. Generates PIR for basic Ruby programs (Cardinal, Ruby CVS Head 1.9 implementation)
      • Functioning, all samples working, lacks IO routines (Cola)
      • Working for some simple forms. Due to some broken features, most of the bootstrapping code has been commented out. (Common Lisp)
      • Functioning for handcrafted test cases. Loading frozen state is currently broken. Far from complete. (Parrot m4)
      • This project has been abandoned. Any takers? (Pint, an experimental PHP implementation)
      • Passes nearly 25% of tcls (lightly converted) test suite, using a Test::More like harness. (Tcl)

      So while there are many interesting language implementation projects for smaller or more obscure languages that have reached further stages of completion, the ones that were most likely to be of practical use seem to be lacking. Now, this is understandable. Maintaining a suitably complete Ruby, Python, Perl or Tcl implementati

    2. Re:Merry Christmas! by geminidomino · · Score: 1

      The initial 0.0.1 release was made on September 10, 2001. That proves it! Parrot causes terrorist attacks on the world trade center!
    3. Re:Merry Christmas! by chromatic · · Score: 1

      Languages like Python, Perl and Ruby have large user communities, plus numerous business and academic supporters.

      Who are the business and academic backers of Perl? You have ActiveState and maybe O'Reilly.

    4. Re:Merry Christmas! by Anonymous Coward · · Score: 0

      I know at least three of the companies that I have worked for in the past have contributed Perl modules they'd written to the open source community. Just because a company doesn't offer their own Perl implementation, it doesn't mean that they don't support the Perl community.

  6. Re:I'm sorry, but... by Anonymous Coward · · Score: 0

    what about the fact that in order to use python you have to taint yourself with the language created by Knuth?

  7. Re:I'm sorry, but... by Chandon+Seldon · · Score: 1, Insightful

    Nice troll. As a free-software supporting atheist, I can't think of a much more obnoxious mockery of those ideals than your post.

    --
    -- The act of censorship is always worse than whatever is being censored. Always.
  8. Perl 5 to Perl 6 by cynicsreport · · Score: 5, Interesting

    In the time it took to develop Perl 6, other programming languages have been conceived, implemented, used and abandoned.
    While I am relieved that Perl 6 is finally showing signs of life, I have concerns:
    1. Can Perl 6 take the place of Perl 5?
    Perl 5 is integral to Unix/Linux systems; it is pretty much taken for granted. To switch to Perl 6 seems like a monumental task. It seems more likely that those wishing to use Perl 6 will have it installed along with Perl 5 (not instead of).
    2. Did it take too long?
    Perl 6 received a fair amount of hype when the project began. With no realistic timetable publicly announced, it seems that people forgot or gave up on it. In fact, in that time Python has become very popular; I wonder if it has taken some of the 'market share' that would have otherwise gone to Perl 6.
    3. Is it any good?
    Perl 6 was supposed to be the "community's" rewrite of Perl 5. The word 'community', when it comes to programming language design, is a bit concerning.... It almost sounds like a euphemism for 'committee'. And that makes me shudder. I once heard the expression "A camel is a horse designed by committee." And I can think of a few programming languages that go along with that saying (No offense to camels).

    Either way, I will download it. I will use it. I will see if it's any good. And, despite all of the issues, I am glad it's finally here!

    --
    - Demosthenes
    cynicsreport.com
    1. Re:Perl 5 to Perl 6 by synthesizerpatel · · Score: 5, Interesting

      1. No. Nobody will care about Perl 6, plus, it's not integral to Linux/Unix. The reason Unix is popular is that you have options. Perl works if you like it, but you don't have to use it or be aware of it.

      2. It took far too long. They had books out about Perl6 after the announcement, consisting of reprints of whitepapers and proposals.. Years later, still no perl 6 for real.

      3. Nobody will care how awesome Perl 6 is. The audience of Perl 6/5 doesn't care about single binding vs multiple binding objects -- they won't even get out of bed to have an argument about strongly typed languages vs. weakly typed languages. They just like easy programming -- the metric of Perl 6's success is how much it caters to lazy people. If you want glue, use perl, if you want cement you use something stronger.

      (I was a Perl guy for 15 years, used to love it, now Perl and Ruby both look like line noise that's been encrypted -- compared to my new girlfriend, Python.)

    2. Re:Perl 5 to Perl 6 by zappepcs · · Score: 3, Insightful

      Actually, evolution developed the camel and the horse for different environments, but that is not really the issue.

      PERL6, like those before it, is just a tool. It will either work or not. Some don't like PERL because it can be messy and perhaps unstructured. I submit to you that some coders can make a mess of any language. PERL has its advantages, and like everything else, its disadvantages.

      I too will use PERL6, no matter what name it is given. I find PERL is quite useful, and I presume that many others do also as it still seems to be relevant to all but the prophets of the latest Web2.0 gizzmo language thingies.

      In any case, a hammer is a hammer, and when you have to drive some nails... well, damnit, use a hammer.

    3. Re:Perl 5 to Perl 6 by xk0der · · Score: 1

      You certainly have made valid observations and comments.

      Perhaps, the "radical" changes that have been brought into Perl 6 make it almost a new language. I don't know if this analogy will fit in here, but it is quite similar to what we had with VB6 and VB.NET . Whenever there is a radical change in a programming language, eyebrows are bound to raise and apprehension would definitely be the first emotion. And adding to it the fact that it took such long for Perl 6 to materialize it doesn't do good to the language.

      I haven't gone through the entire new feature list, but I read somewhere that they do have a Perl 5 compatibility mode. So I guess we can still run perl5 scripts using the perl5 interpreter.

      I'm yet to download Perl6, so will come-back when I'm done playing with it!

      As a final word, I hope (and pray) that they have not twisted Perl so much that it isn't Perl anymore.

      --
      Therez light! : aHR0cDovL3hrMGRlci53b3JkcHJlc3MuY29t
    4. Re:Perl 5 to Perl 6 by Killer+Eye · · Score: 4, Informative

      Switching may not be that bad, since they built in an incremental mechanism (the same mechanism that lets you put code from ANY two supported languages into the same source file). You could take your 99%-Perl-5 source and add a Perl 6 segment to it, and over time make it fully Perl 6.

      --
      "Microsoft killed my company, I hold a personal grudge. I don't use Microsoft products and neither should you."-JWZ
    5. Re:Perl 5 to Perl 6 by Hucko · · Score: 1

      so evolution is a committee composed of anthropomorphised Laws of Nature?

      --
      Semi-automatic amateur armchair Australian philosopher; conjecture ready at any moment...
    6. Re:Perl 5 to Perl 6 by andy@petdance.com · · Score: 1

      How long should it have taken? Is there some standard for how long a new language and VM are supposed to take to implement?

    7. Re:Perl 5 to Perl 6 by Anonymous Coward · · Score: 2, Insightful

      Six years later and it is still in the experimental stage.

      In those six years, my former company built and twice re-engineered a forex trading platform written in Java. We went from four machines to over hundred. This is on a shoestring budget with less than twenty engineers (developers and QA). We developed integration components to FIX, SWIFT, and custom projects to banks.

      How many VMs are there to use as reference? The list is long. This is not rocket science. Perl6 is a joke in the same vain as Duke Nukem Forever. Perl was fine up to version 4. It did its job well, as a textual parser. Beyond that, it took on too much and now is sagging under its own weight.

    8. Re:Perl 5 to Perl 6 by synthesizerpatel · · Score: 2, Insightful

      A good rule of thumb for your programming language rewrite is, get it done before you lose programmers who jump ship for: a) something 'cooler' b) something better There are lots of things out there now that have one or both of those qualities. Perl just has awesome advocacy and marketing at this point probably only because it's the tradition to treat Perl with respect as it made unix programming easy for newbie Linux people. Times have changed. There are other better options. It took too long.

    9. Re:Perl 5 to Perl 6 by chromatic · · Score: 5, Funny

      I too will use PERL6, no matter what name it is given.

      That's good; that name will likely be "Perl 6".

    10. Re:Perl 5 to Perl 6 by chromatic · · Score: 4, Informative

      This is on a shoestring budget with less than twenty engineers (developers and QA).

      A shoestring budget with one full-time developer is still more than Perl 6 and Parrot have had.

    11. Re:Perl 5 to Perl 6 by IkeTo · · Score: 5, Insightful

      > 2. Did it take too long?

      > Perl 6 received a fair amount of hype when the project began. With no realistic timetable
      > publicly announced, it seems that people forgot or gave up on it. In fact, in that time
      > Python has become very popular; I wonder if it has taken some of the 'market share' that
      > would have otherwise gone to Perl 6.

      I tend to think Perl 6 as a completely new language, rather than a new version of an old language. If you have even the concatenation operation changed from "." to "_", and if array indexing that you had written as "$arr[$i]$" now must look like "@arr[$i]" instead, and if you'd lose RAII on the way because garbage collection is now no longer at predictable time, it mean all programs will have to be significantly modified or at least converted. This is not exactly what I'd expect from a new version.

      As a new language, it emerge probably slower than what most of us hope, but is probably not as slow as most of us perceived. After all, Perl 6 is a very ambitious language that have all features of Perl 5 and quite a bit more, and it has a completely new low-level engine as well. That slowness is probably due to the lack of any people dedicated to its implementation until very recently.

      By the way, Python is not new. The first version of Python is released in approximately the same time as the first version of Perl. Python is first conceived in the 80's, first implementation started being written late 1989, completed 1991, and did not gain general acceptance until 2000. FYI, Perl 6 is conceived in 2000, Pugs starts to be implemented in early 2005, although it is still quite rudimentary.

    12. Re:Perl 5 to Perl 6 by WWWWolf · · Score: 2, Insightful

      In fact, in that time Python has become very popular; I wonder if it has taken some of the 'market share' that would have otherwise gone to Perl 6.

      Yes, in meantime, Python has gained ground - as has Ruby.

      But I think there's one thing that's easy to forget - Perl6 has also been losing ground to Perl5. People need to get their jobs done; if you need Yet Another Hack Built Around An Awesome CPAN Module to keep stuff working, you really have no choice but to write it in Perl5. People have jobs to do.

      Before the P6 hype, I used to write stuff in Perl, after hype, I was like "Ooh, it will really rule one day," and now I also write a lot of stuff in Ruby, which has all of the stuff that Perl really needs, such as a sane OO syntax. I really hope Perl6 will be a success and I look forward to writing stuff in it. When it's released. I just have to rely on the tools that we have at hand...

    13. Re:Perl 5 to Perl 6 by Anonymous Coward · · Score: 0

      They did WHAT to the concatenation operator ???

      You know, new versions are one thing, and I'm sure that perhaps 1 developer in 1000 might have the need for Multi-Whatevered-Objects and all the other shiny new bits of Perl 6.

      But WHY must they always bugger about with the fundamental underlying basics of the language ?

      AFAIK, concatenation has ALWAYS used the "." from the damn of perl ... now it's going to use "_".

      So I guess we'll just have to rewrite the whole damn lot eh ?

      What motivation can anyone have for upgrading to this new version, when the first thing they'll have to do is go back through all their old scripts and change out every "." to an "_" ?

      And don't tell me about "Perl 5 compatibility mode" ... if you have to set this flag to tell Perl 6 to behave like Perl 5 and treat "." as it was always treated ... then why the fuck did they change it to an "_" in the first place ?

      Bad move Larry, I'll be sticking with 5.005 which has served me well for 7 years.

    14. Re:Perl 5 to Perl 6 by Anonymous Coward · · Score: 2, Insightful

      PHP demonstrated that language users don't really care whether a language was "planned" or not.

      Perl was planned by a *linguist*. It may look like noise, but there is a method to the madness, overall, it is well thought out.

      If the amount of time is any indication, I'd expect perl6 to be far more planned out and well reasoned than most other languages.

      Think about this:

          if(! $bool){ ... }

          unless($bool) { ... }

      The unless actually makes it easier to read, it is more "natural" to humans.

      While other languages might have (the "no opening braces for one line rule")

          if(! $did_it_already)
              do_something()

      Perl has this option:

          do_something() unless($did_it_already);

      I think perl is actually more readable in these cases, it's also more fun.

      So many other languages are written with a strictly technical bend, perl has always taken human language itself as a part of its design. Not to mention, it is a *creative* language.

      I fear if people won't use it, it is mainly because everyone thinks everyone else uses PHP. (I admit, *I* use PHP because that is what everyone else is using)

      It will be interesting to see if people care about the linguistic planning.

    15. Re:Perl 5 to Perl 6 by ajs · · Score: 1

      In the time it took to develop Perl 6, other programming languages have been conceived, implemented, used and abandoned. That's true, but I don't think anything as ambitious as Perl 6 has made it this far. Haskell is really the only language that I know of that's been even nearly as ambitious in recent memory and then you have to go back to the likes of CommonLISP to find another. There are HARD problems to solve for Perl 6, and you can't just write a simple parser and be done. This isn't Perl 5 or Python or Ruby. This is real change in programming language design. If you disagree, sit down and try to take any given modern scripting language and make it code-data reversible. Then add LISP macros and allow any language feature to be written IN the language. Show your work ;-)

      While I am relieved that Perl 6 is finally showing signs of life, I have concerns:

      1. Can Perl 6 take the place of Perl 5? By definition, yes (being backward compatible in the sense of being able to run Perl 5 code). In practical terms, people will keep a Perl 5 binary around for a long time to come, I'm sure.

      2. Did it take too long? Moot question. If it's good, we'll use it.

      3. Is it any good? It's every good... if you consider that good, then it's your good too.

      Perl 6 is, to me, the most important language development since the CommonLISP standard was released, and in some ways more important due to Perl's existing audience size.

    16. Re:Perl 5 to Perl 6 by Thrip · · Score: 1

      I submit to you that some coders can make a mess of any language. True, but I submit to you that precious few programmers can make a not-a-mess out of perl.
      --
      I'm awake! The answer is BONK!
    17. Re:Perl 5 to Perl 6 by Anonymous Coward · · Score: 0

      You are telling me that in six years, they went from a functional specification to alpha with less than one person working on everything? Perl6 has tens of people working on it. You could take the same measure of time and apply it to the another open source project that does not have major corporate backing. FreeBSD went from from 4.4 to 6.3, undergoing two major re-engineering efforts.

    18. Re:Perl 5 to Perl 6 by Coryoth · · Score: 1

      I submit to you that some coders can make a mess of any language. Well yes, and some coders can write very clear easy to understand code in perl. On the other hand, there's really no reason to make it too easy for coders to make a mess, just because there are some who will make a mess no matter what you do. A bad coder can make a mess in any language, but for a good coder to make a mess, that takes perl (or, let's be honest, PHP).
    19. Re:Perl 5 to Perl 6 by ajs · · Score: 3, Interesting

      Nobody will care how awesome Perl 6 is. The audience of Perl 6/5 doesn't care about single binding vs multiple binding objects -- they won't even get out of bed to have an argument about strongly typed languages vs. weakly typed languages. They just like easy programming -- the metric of Perl 6's success is how much it caters to lazy people. If you want glue, use perl, if you want cement you use something stronger. I care how awesome Perl 6 is. I care about all of the language design points you raise. I am a current Perl 5 user and will be a Perl 6 user. I'm a minority, and I know it.

      However, it's also true that Perl 6 has been designed to cater to both crowds, and that's one of the myriad reasons it took so long.

      while =STDIN {
        say;
      }
      Is just as short and sweet as it always was in Perl 5, but if you want to get under that hood, you can.

      (I was a Perl guy for 15 years, used to love it, now Perl and Ruby both look like line noise that's been encrypted -- compared to my new girlfriend, Python.) Frankly, I think Python is a great little language. It filled the gap between Perl and Java very, very nicely (though Groovy also does that now). Perl 6 won't replace Python, but I think it will become the way people write medium-to-large systems in certain niches, replacing some C++, Java, Python and Perl applications. PHP is probably safe where it is as a rapid Web prototyping system. Ruby will likely evaporate (being largely absorbed into the feature-set of Perl 6) but there's a large Rails community that will take some time to convert even if Rails is directly portable, and it probably will be at some point.

      Perl 5 is a toy language (it's arguable that CPAN is Perl 5's most valuable feature, and that without it, Perl would not have a community today). It's a great little toy, and powerful in its own right, but it's a toy. Line noise? Eh, perhaps, but I started as a C programmer, and thus was trained early in how to write code in an unmaintainable syntax in a maintainable way. The largest problem is that Perl is far easier to be effective in than C, and that breeds long-standing unmaintainable code on its own. That problem is, unfortunately, the curse of all easy languages to use (PHP and Python suffer equally there, though Python has been somewhat stricter on not allowing the bad code to become community code). Perl 6, on the other hand is not a toy, and I'll use it for very different reasons.

    20. Re:Perl 5 to Perl 6 by zappepcs · · Score: 1

      That might be true, and I like to think of PERL is to coding like LEGO is to model building. Sometimes it's nice to have a pretty and efficient function to hand (PERL Module) and other times it's just a case of build your own. With LEGO you don't have to build the tires, but the car is going to look home made.

    21. Re:Perl 5 to Perl 6 by Chelloveck · · Score: 4, Funny

      (I was a Perl guy for 15 years, used to love it, now Perl and Ruby both look like line noise that's been encrypted -- compared to my new girlfriend, Python.)

      I've been a fan of Perl ever since the 3.x era. A couple years ago I got a job at a place where the scripting language of choice is Python. My take on it is that Python is that cute, quirky goth chick you met at the bar. She's fun for a while, but once you get to know her you realize that she's got some pretty deep emotional issues that drive you absolutely nuts. And she's really, really obsessive about her appearance.

      No, I'm more than happy to stick with Perl. She may be a little older and not quite as attractive, but she has a wonderful personality. Plus, there's more than one way to do her.

      --
      Chelloveck
      I give up on debugging. From now on, SIGSEGV is a feature.
    22. Re:Perl 5 to Perl 6 by Anonymous Coward · · Score: 0

      FYI: It's not spelled PERL. The language is Perl, the program itself is perl. Save yourself a bit of wear and tear on your shift key.

    23. Re:Perl 5 to Perl 6 by Anonymous Coward · · Score: 0

      perl6 - the official systems language of the Hurd!

    24. Re:Perl 5 to Perl 6 by MoeDrippins · · Score: 1

      > now ... Ruby both look like line noise that's been encrypted -- compared to my new girlfriend, Python.

      Then you are doing something horribly, horribly wrong.

      --
      Before you design for reuse, make sure to design it for use.
    25. Re:Perl 5 to Perl 6 by hummassa · · Score: 1

      1. Actually, I never used a pro installation of any unix-like OS that didn't have perl (5.001 at least) installed.

      2. No it didn't. Actually, yes, it did... until Audrey Tang came with Pugs, revitalized the whole discussion, and now it's really going (actually, this announcement is telling something like "yes! it's moving! and not just in Haskell anymore!")

      3. Yes and no. Actually, the idea of perl6 is: if you want glue, use perl6 (more Huffman-encoded than ever [things you do more often are smaller]) and if you want cement, also you _can_ (but nobody forces you to) use perl6.

      4. About Python: I actually have more difficulty reading the verboseness of some python system than reading the terseness of some perl programs. I find that, to me (and I don't force anyone to agree), smaller == easier to understand as a whole.

      --
      It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
    26. Re:Perl 5 to Perl 6 by VGPowerlord · · Score: 1

      I hate to break it to you, but Perl 6 is one of the "latest Web2.0 gizzmo language thingies."

      It's Perl 5 trying on Ruby's clothes.

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    27. Re:Perl 5 to Perl 6 by VGPowerlord · · Score: 1

      Actually, somewhere along the line, concatenation changed again, to "~"

      So, now, variable binding with RegExs are done with "~~" instead of "=~".

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    28. Re:Perl 5 to Perl 6 by VGPowerlord · · Score: 1

      You think that's bad, using "->" will throw an error in Perl 6, reminding you to use ".". "->" has no other purpose in Perl6 than to throw that error...

      Oh, and I mentioned this in response to the grandparent, but the concatention operator changed again during Perl6's development, this time to "~".

      I agree with your sentiments, though. Since Perl6 is like learning a whole new language, why not just learn something else instead?

      P.S. I like Perl 5.6 or 5.8 myself. 5.6 added the "our" operator to use instead of "use vars". 5.8 added utf8 support to perl's internals. btw, Perl changed numbering schemes and went from 5_005 to 5.6 (which is really 5_006) in its documentation.

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    29. Re:Perl 5 to Perl 6 by Wdomburg · · Score: 1

      That's the main reason I don't see Perl6 being particularly relevant. Perl may be ugly but it's everywhere. You'd be hard pressed to find a system administrator who never wrote in it. You'd be hard pressed to come up with a file format or API without at least one CPAN module for it.

      With the changes to Perl6 being so drastic, that advantage evaporates and it becomes Yet Another Language. Already have several of those I like far more than Perl. :)

    30. Re:Perl 5 to Perl 6 by IkeTo · · Score: 1

      > What motivation can anyone have for upgrading to this new version

      See their FAQ at http://dev.perl.org/perl6/faq.html to see the feature list of the Perl 6 language. Myself is very impressed, and probably will have no problem finding motivation if the language is really there.

      > when the first thing they'll have to do is go back through all their old scripts and change out every "." to an "_" ?

      My understanding about the plan is that you don't have to (most of the time). For code that is still actively maintained, a converter will turn it from using the v5 syntax to using v6 syntax, and you will then catch up the imperfection manually which is hopefully not too much to deal with. You will have to retrain your fingers to type "_" when you would now type ".", though. For code that is no longer maintained, the code will run unchanged, which means they will not be able to use any of the new features of the language, but at the same time this doesn't matter so much (it is not maintained, right?). Furthermore, it probably will be able to detect whether a library is written in Perl 5 or Perl 6, since Perl 6 do not use the "package" keyword that appears in essentially every Perl 5 library (it uses "module" and "class" instead).

      Under the new architecture of Perl 6, its runtime (called Parrot) will be able to handle not just Perl 6, but also Perl 5, as well as a whole suite of other languages like BASIC, C, Lisp, Lua, M4, Python, Ruby, Scheme, Tcl, etc. Each of them, like Perl 6, will be interpreted by a separate interpreter into some intermediate representation (PIR) or into the Perl assembly language (PASM) before getting JIT compiled into machine code. PIR and PASM are Perl-aware but not Perl-specific. In other words, the Perl 5 under Perl 6 is not really a "compatibility mode", but instead a "new implementation" of the Perl 5 syntax (as well as other language syntax) targeting Parrot. And once in PASM or PIR, the code written in all these languages looks the same, so it is possible to write Perl 6 that create objects from classes written in Python, which then call functions written in Scheme, etc., which is also a rather exciting promise for me.

      > why the fuck did they change it to an "_" in the first place ?

      I think the idea is that it want to be in line with other recent languages, all using "." (rather than something like "->") as separator between object identifier and method name. Which is quite reasonable given that the language is on design not backward compatible and should, as I've said, be treated as a completely new language rather than a new version. There are a lot of habits that you will have to break anyway.

      > I'll be sticking with 5.005 which has served me well for 7 years.

      For me it didn't. There are many useful stuffs in CPAN that will not work at all under 5.005. Upgrade to 5.10 is not that bad, why not make a try?

    31. Re:Perl 5 to Perl 6 by Anonymous Coward · · Score: 0

      I agree with your sentiments, though. Since Perl6 is like learning a whole new language, why not just learn something else instead?
      Because learning new Perl is more fun than learning any other new language?
    32. Re:Perl 5 to Perl 6 by Anonymous Coward · · Score: 0

      "->" has no other purpose in Perl6 than to throw that error...
      Wrong.

      Since Perl6 is like learning a whole new language, why not just learn something else instead?
      If you're going to be learning a new language anyway, why not just learn Perl6?
    33. Re:Perl 5 to Perl 6 by Hercynium · · Score: 1

      All the more reason for the design of Perl 6... Dialects!

      Now we can have simplified, easy-to-read code that's real Perl, but looks JUST LIKE COBOL /Pet peeve - PERL JAVA RUBY PHP... all OBNOXIOUS! /yes, I know PHP is OK - but it's not the capitalization of the name that annoys me with that language ;)

      --
      I'm done with sigs. Sigs are lame.
    34. Re:Perl 5 to Perl 6 by IkeTo · · Score: 1

      Oops... I were to write ~ instead, but suddenly I think I might recall wrong so I check the Apocalypse at http://dev.perl.org/perl6/doc/design/apo/A03.html. It turned out that it is dangerous to skim an entry there without reading it carefully to find the "[Update]" line.

    35. Re:Perl 5 to Perl 6 by chromatic · · Score: 1

      They did WHAT to the concatenation operator ???

      Changed it to a character that's free in other grammatical constructs such that all stringy operations use the same character. Consistency is an important goal.

      Bad move Larry, I'll be sticking with 5.005 which has served me well for 7 years.

      Passive-aggressive threats much?

    36. Re:Perl 5 to Perl 6 by VGPowerlord · · Score: 1
      do_something() unless($did_it_already);
      obfuscates the instruction order. It can also be problematic if you're working in a text editor on a heavily indented set of instructions and it looks like this:

      $default = DEFAUL_ORD...
      where ... is where the text editor scrolls the text off the screen. If I'm skimming a file, I'm probably not going to scroll to the right because I'll assume DEFAULT_ORD is DEFAULT_ORDER, defined near the top of the file like so:

      use constant DEFAULT_ORDER => 'name ASC';
      Except that... what if the line is actually

      $default = DEFAULT_ORDER unless ($use_default = 'false');
      (Yes, that = typo is intentional).

      Oops, I just created a condition where $default is never set to DEFAULT_ORDER.

      Yes, this example is contrived, as no one in there right mind would use if ($use_default == 'true') and unless ($use_default == 'false') instead of just if ($use_default) and unless ($use_default), but I believe it does demonstrates my point.
      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    37. Re:Perl 5 to Perl 6 by synthesizerpatel · · Score: 0

      I fought against Python too when I was deeply Perl oriented. I had a boss who liked Python and I wouldn't have any of it, because I already knew Perl and was a 7.5 out of 10 for skillset (That's an honest 7.5 out of 10, not a "resume" 7.5 out of 10..)

      I'm too old to give a crap about the religious wars of operating systems and programming languages, but I would be interested in what your gripes are. I know that one size doesn't fit all, there's 20 different types of 'cola' much less flavors of soda that aren't cola, so I don't expect to change someone's personal preference -- but speaking from my own personal experience I really enjoy programming Python.

      Here's a simple example, regular expression group matching. I thought for the longest time that Perl was king.. Take something like the following that you see in all sorts of perl code:

      foreach $line (STDIN) { # -- greaterthan/lessthan on STDIN

                      if ((($num_users, $load_now, $load_five, $load_fifteen) = ($line =~ (/.*(\d+) users, load averages: (\d+\.\d+) (\d+\.\d+) (\d+\.\d+)/)))) {
                                      printf("$num_users are logged in\n");
                      }

      }

      versus:

      import re, sys

      uptimeRegex= re.compile(r'.*(\d+) users, load averages: (\d+\.\d+) (\d+\.\d+) (\d+\.\d+)')

      for line in sys.stdin.readlines():
                      m = uptimeRegex.match(line)
                      if m:
                                      num_users = m.group(1)
                                      print num_users, 'users'

      I apologize for the apples and oranges of this comparison, it was the first one I could come up with off the top of my head where I never imagined Python would be better, but I think overall it's a bit clearer whats going on and why. If Perl's your girl, that's cool. :D

    38. Re:Perl 5 to Perl 6 by chromatic · · Score: 1

      [Perl 6] has tens of people working on it.

      Sweetie, I'm one of those "tens of people". No one has been working on Perl 6 or Parrot full time since 2003 or 2004. There have been no full-time developers working on Perl 6 or Parrot for years.

      If you want to compare the schedule and progress of either project to another project, one with actual funding and resources, that's fine -- but scale down the resources and funding of that project to match the resources and funding of Perl 6 or Parrot before you draw any conclusions.

    39. Re:Perl 5 to Perl 6 by chromatic · · Score: 1

      [Perl 6 is] Perl 5 trying on Ruby's clothes.

      Wow. Don't know much about Perl 6 or Ruby, do you? See The Long Perl 6 Super-Feature List for enlightenment.

    40. Re:Perl 5 to Perl 6 by Anonymous Coward · · Score: 0

      The FreeBSD team does not have any full time people either, yet they somehow managed to get things out the door.

      Perl6 is a cluster fuck and you have one person to blame, Larry Wall. Too bad you cannot fire him. Perl6 only matters to hardcore Perl people, most everybody else (including myself) has moved on.

    41. Re:Perl 5 to Perl 6 by synthesizerpatel · · Score: 1

      That seems pretty unlikely. But, anything is possible!

    42. Re:Perl 5 to Perl 6 by chromatic · · Score: 1

      The FreeBSD team does not have any full time people either, yet they somehow managed to get things out the door.

      I'm not privy to the details of FreeBSD funding, but the FreeBSD Donations page shows that the FreeBSD Foundation set a funding goal of $250,000 for 2007. That yearly goal is higher than all of the money put into Perl 6 over the past eight years, and the FreeBSD Foundation raised over $400k in 2007. That's not counting funded development work from companies such as Yahoo, NetApp, and PC-BSD.

      At this point Parrot relies almost entirely on unfunded volunteer work. So does Perl 6. Criticize the schedule all you want, but do it fairly.

    43. Re:Perl 5 to Perl 6 by Anonymous Coward · · Score: 0

      a heavily indented set of instructions
      Don't do that then.

      and it looks like this:

      $default = DEFAUL_ORD...
      Except that... what if the line is actually

      $default = DEFAULT_ORDER unless ($use_default = 'false');
      In Python:

      self.set_default(DEFAULT_ORD...
      Except that... what if the line is actually

      self.set_default(DEFAULT_ORDER, use_defalt = self.use_default)
      (assuming that set_default uses a ** parameter so there's no error)?
    44. Re:Perl 5 to Perl 6 by Anonymous Coward · · Score: 1, Informative

      foreach my $line (<STDIN>) {
          if ($line =~ /.*(\d+) users, load averages: (\d+\.\d+) (\d+\.\d+) (\d+\.\d+)/) {
              print("$1 are logged in\n");
          }
      }
      PS WTF is with the insane number of parentheses in your original Perl code? If I were feeling cynical I'd say you deliberately wrote it poorly just to make Perl look bad....
    45. Re:Perl 5 to Perl 6 by Anonymous Coward · · Score: 0

      Perl changed numbering schemes and went from 5_005 to 5.6 (which is really 5_006) in its documentation.

      Err... using which of those as the concatenation operator? "." or "_"?

    46. Re:Perl 5 to Perl 6 by Haeleth · · Score: 1

      I apologize for the apples and oranges of this comparison, it was the first one I could come up with off the top of my head where I never imagined Python would be better, but I think overall it's a bit clearer whats going on and why.
      That's because, to put it bluntly, the Perl version sucks. :) It probably is representative of a lot of really bad Perl code out there, but I bet if Python was anything like as widespread as Perl then there'd be plenty of Python out there that would make Guido gouge his own eyes out.

      Specific problems: why aren't you using strict? Why all the parens? Why are you using an eager "for" rather than a lazy "while" to scan a file? Why are you starting the regex with a pointless .*? Why are you cramming everything into one line that's far too long? Why are you using printf without a format string? About the only good thing you're doing is assigning the lines to a variable instead of using $_.

      The bare minimum to pass code review at any competent Perl shop would be something like

      while (my $line = <STDIN>) {
          my ($num_users, $load_now, $load_five, $load_fifteen) =
              $line =~ m/(\d+) users, load averages: ([\d.]+) ([\d.]+) ([\d.]+)/;
          if (defined $num_users) {
              print "$num_users users are logged in\n";
          }
      }
      and many would demand you split out the regex into a qr//, similar to what you did in the Python version, at which point you would also want to use the /x modifier and add some comments to document what each group captures (or use named captures, if 5.10 is available).

      Yeah, badly written Perl is arguably less readable than badly-written any-other-major-language, but anyone who starts any project in any language without adequate coding standards is asking for trouble. And Perl has some fairly good coding standards enforcement these days in the form of Perl::Critic.

      Incidentally, a question for you: if you're a Python advocate, why the heck aren't you using named captures? They make regex matching vastly more readable and less fragile, and I believe Python has actually had them for longer than Perl has!

      (Not a Perl fan or a Python fan, by the way; I tolerate Perl for some things where it's the only language available to me, but give me a nice static type system any day.)
    47. Re:Perl 5 to Perl 6 by kryten · · Score: 1
      Or if you want to write non-crap perl:

      foreach my $line (STDIN) {
          if ($line =~ /.*(\d+) users, load averages/ ) {
              my $num_users = $1;
              print "$num_users are logged in\n";
          }
      }
      What is the difference?
    48. Re:Perl 5 to Perl 6 by ajs · · Score: 1

      Interesting that this was modded "flamebait". I think reasoned, well-informed language discussions are too few on Slashdot. We shouldn't be afraid to say Python and Perl or C++ and Groovy in the same paragraph. We shouldn't feel that to do so is to invoke argument. Everything on Slashdot invokes argument, but some good discussion can come of it as well.

      Perhaps the folks who modded my post as flamebait were referring to the fact that I called Perl a "toy". In this respect (keeping in mind I've been a Perl programmer since 1991), I mean that it lacks certain features that one expects of a modern language (formal parameters being the most glaring), and the code base is such that a rewrite wasn't just a good idea, it was practically necessary. Now, I love Perl, but I love it like a brother that I know will never be able to take over the family business. I'm realistic about what Perl is and what it's not.

      Python is a decently full-featured language. I find it a touch claustrophobia-inducing due to the aggressive enforcement of "the right way" to solve certain problems, but it also happens to be darned good at what it does. As a social experiment alone, I consider Python to be a success, and at this point its success in the realm of software development speaks for itself. For these reasons, I don't see Python losing a tremendous amount of market share to Perl 6... I do see its market share shrinking, but that's more a result of Groovy than anything else.

      Ruby ... well, sadly Ruby was a great idea, but was easily absorbed. Beyond its meta-object model (brilliant integration of such into a modern "scripting" language though it may be), it doesn't really offer very much. This is why I say that it's kind of doomed. It just doesn't have a niche that's unique enough. If Perl 6 is successful, then Ruby becomes rather redundant.

      Groovy is a great idea for making Java more easily applied to small problems and rapid prototyping, but it fundamentally struggles against the bounds of Java, and for that reason, I don't see it gaining entrance to much of the world that Perl, Python and Ruby occupy.

      PHP has, and I'm sorry to be so blunt here, never impressed me. It attempted to be Perl-like, but threw away too much of what made Perl powerful in the first place, and didn't actually resolve any of the shortcomings of Perl. It also encourages the worst kind of mingling of content and code in Web-based applications. I have a fair amount of respect for people who manage to write large systems in it, and I use MediaWiki on my Web site, but I just don't care for the language. That said, I still don't see it going anywhere any time soon. There's something seductive about being able to write code "as a Web page" that will keep people using it for quite some time, even when using a templating system in some other language might be the better solution.

      Well, I've rambled on, and I have to go to work. I hope people understand where I was coming from. I'm not attempting to taunt the trolls, I'm actually interested in having the conversation about where the programming world will be in several years. Perl 6 looms, but it's loomed for a long time. If it's ever solid, I'm very interested in what people think that will mean for the landscape.

    49. Re:Perl 5 to Perl 6 by MadAhab · · Score: 1

      Your optimism regarding other languages suggests inexperience. The majority of coders write total shit in all languages.

      --
      Expanding a vast wasteland since 1996.
    50. Re:Perl 5 to Perl 6 by Argon · · Score: 1

      Same here (about the used to be the perl guy part, but not about ruby). I was a perl guy for about 10 years before switching to python. It's not perl 6 that turned me towards python. Strangely, it was perl 5. I loved perl 4, I still think Perl 4 edition of Programming Perl is one of the best programming books I've read. I was a big, big perl fan. I used to be subscribed to the perl-dev list and the perl5-porters list (have I got the list names right?). I used to read what Tim Christiansen wrote like religion. I used to download and follow cpan modules like crazy and keep them updated with the cpan module every day.

      But then at some point of time, I was getting unhappy with Perl 5. Perl 5 sprouted branches in random directions. May be it was it's clunky OO, may be it was the pain it took to a make a simple module (especially an OO interface), maybe it's the huge size of Programming Perl 5 book (and the fact that they removed the introductory chapter on the language), I don't really know. Python's original whitespace significant syntax gagged me first (my first programming language was "start at 7th column" fortran) but once I got past that, python was executable pseudo code for me. But this post is not about python.

      For some one who likes the terseness of perl, especially the syntactic sugar, ruby seems to be the new perl. I've looked at ruby and except for it's performance issues (which is being addressed by Ruby 1.9), I think I might have switched from perl to ruby if I had come across it earlier. Now that I am used to python, I don't think ruby gives me enough of an incentive to switch back to my perl roots.

    51. Re:Perl 5 to Perl 6 by Thrip · · Score: 1

      Your 120-character post suggests you were born on the 18th of March. No? Well, your random guess was dead wrong, too, but nice try. Languages do differ in readability, even if you adjust for fluency (otherwise, intercal couldn't exist). A language with a philosophy of encouraging lots of different solutions to even trivial problems and a "smart" interpreter that can figure out what you meant, even if you don't express it well, is a recipe for gobbledygook. Even the one great programmer I know who likes perl calls it a "write only" language.

      --
      I'm awake! The answer is BONK!
  9. Re:All things being equal... by Anonymous Coward · · Score: 1, Insightful

    because we aspire to be better than those we disagree with

  10. Re:I'm sorry, but... by Blackheim · · Score: 0

    what about the fact that in order to use python you have to taint yourself with the language created by Knuth? So you dont have this as a bumper sticker?
  11. Re:BFD? by Anonymous Coward · · Score: 0

    Said the person posting to a Slash based website.

  12. Re:I'm sorry, but... by Anonymous Coward · · Score: 1, Funny

    That's why I only use nil, though I switch to SARTRE or Whitespace in my more philosophical moods. Anyway, you're missing out, I heard there's a bunch of code in the Bible or something.

  13. Perl6 has *not* been released by 5E-0W2 · · Score: 5, Informative

    This is not the release of Perl 6, this is merely another release on the branch that will one day become the perl6 release. The interesting change is that you can now build a proper binary version of perl.

  14. Re:All things being equal... by heinousjay · · Score: 1

    Thanks for the mild chuckle

    --
    Slashdot - where whining about luck is the new way to make the world you want.
  15. About Parrot .. by systems · · Score: 2, Interesting

    Does Parrot work like the .Net framework in the sense that libraries say writen in Perl can be used in Python or Tcl! (note that Tcl is a completly different paradigm than Perl or Python)

    I do know that for .Net to achieve this it forces languages to implement certain set of features, and that the libraries to be shareable to be written using a subset of the CLI or CLR. Are there any Parrot plans for something similar, the idea of a single Libarary archive for all the free languages out there sounds amazing. Groovy is doing something exactly this with Java.
    Anyway, I read the faq and this seems unlikely to be planned for, but maybe someone else knows better!

    1. Re:About Parrot .. by Anonymous Coward · · Score: 5, Informative

      Yeah, the idea is that you can write Python code that has access to all of CPAN, for instance. In fact, the whole Parrot theme came from an April Fool's joke referencing the Monty Python skit, saying that Perl and Python would converge into a language called Parrot. Thus, Perl and Python are Parrot's two canonical languages.

      Of course, you can also write a CGI script in Perl that can import some PHP library, for another example.

      This is much like Microsoft's DLR (Dynamic Language Runtime), which intends to make the world of .Net libraries available to dynamic languages, with Python, Ruby, and JavaScript as its headliners.

      dom

    2. Re:About Parrot .. by egarland · · Score: 4, Informative

      Yes.. but.. (from what I understand) unlike .net and java, you will be able to compile binary versions of your applications for distribution that don't rely on a giant, bloated, pre-installed runtime *and* they aren't compiled to bytecode at program launch. Also, the register based parrot engine underneath is supposed to be much faster than the purely stack based .net and java VMs.

      Binaries that launch and run at the speed of C with the ability to write in a high level language? Sounds like the future of programming to me.

      The big question I have is will multiple programs be able to share memory to store a commonly used library like C can. One of the things I think causes big inefficiencies in modern languages is the way they don't share memory well. If I have a C library that has, say, 5 megs of pure code in it and I'm running 10 copies of a program that uses it, all 10 can use the same 5 meg copy with only parts that are written to localized to the application. With high level languages, I need to use 50 megs of memory for each. Can Parrot share like C does and have all copies of the program reference the one copy stored in memory? Java and .net can't use this since their libraries aren't implemented on a level where that is possible. Parrot probably could but I'm not sure if it does. Does anyone know the answer to that?

      --
      set softtabstop=4 shiftwidth=4 expandtab nocp worlddomination
    3. Re:About Parrot .. by chromatic · · Score: 2, Insightful

      Parrot probably could but I'm not sure if it does. Does anyone know the answer to that?

      That's definitely a goal. I think we'll need to make at least one change to the garbage collector such that we don't trigger copy-on-write for shared memory pages of internal data structures and dirty pages unnecessarily, but I think it's possible to fix that without too much trouble.

    4. Re:About Parrot .. by Jugalator · · Score: 2, Interesting

      Yes.. but.. (from what I understand) unlike .net and java, you will be able to compile binary versions of your applications for distribution Well, Parrot is actually much like the .NET VM. One reason Parrot was invented according to their own FAQ was because at the time, the .NET VM hadn't been released. Indeed, the .NET CLR now supports dynamically typed languages by making use of the Dynamic Language Runtime, like IronPython and IronRuby already use.

      Compare the Parrot PIR and PASM intermediate languages to the .NET IL language. Basically, Parrot does a similar thing as the .NET Dynamic Language Runtime running on top of the Common Language Runtime (and yes, Parrot will support multiple languages like .NET too).

      At the time when Parrot was started, there was basically only Java widespread for dynamic language support, but the Java VM did not support dynamic languages well.

      So I'm not sure this is the revolution you're looking for. Here you have some example usages: http://www.parrotcode.org/examples/ There's nothing special about natively run code here in the sense you seem to be talking about. The point of the Parrot project is rather about uniting many languages behind a single bytecode that their interpreter can "compile" to a form that can be run by it, much like the concept of .NET. One can also check this out: Is it too late for Parrot VM? which pretty much repeat what I said.
      --
      Beware: In C++, your friends can see your privates!
    5. Re:About Parrot .. by cxreg · · Score: 1

      The big question I have is will multiple programs be able to share memory to store a commonly used library like C can. One of the things I think causes big inefficiencies in modern languages is the way they don't share memory well. If I have a C library that has, say, 5 megs of pure code in it and I'm running 10 copies of a program that uses it, all 10 can use the same 5 meg copy with only parts that are written to localized to the application. With high level languages, I need to use 50 megs of memory for each. Can Parrot share like C does and have all copies of the program reference the one copy stored in memory? Java and .net can't use this since their libraries aren't implemented on a level where that is possible. Parrot probably could but I'm not sure if it does. Does anyone know the answer to that?

      There is nothing magic about what C or C++ does when it utilizes shared memory for dynamically linked libraries. Your assertion that Java or C# cannot do this strikes me as incorrect, although I'm not sure if any VMs actually make use of such a thing or not.

      The way it basically works is, at least on *nix, the library (eg a libfoo.so.0 file) is loaded by the runtime linker (or the program using something like dlopen) which typically loads this file using the system (read: kernel) call mmap(). One of the key features that mmap provides is that the pages can be shared if two processes load the same file. Since this is (in this case) read-only memory, the pages should never be un-shared and you continue to benefit as long as processes continue to mmap the same file (which is how you are able to upgrade shared libraries -- the old inode is still there, and a new file replaces the old name in name, and new processes will load the new version, leaving old processes happy with the old one).

      Parrot might be able to give you what you are looking for if it saves compiled bytecode, or something like that, to disk and then mmap() it back into memory to actually execute it. That could certainly be an interesting optimization, although you'd have to be clear if you want to recompile libraries when you compile a program. I'm not sure how the semantics of this would work. Maybe it could work using a mtime-based compile-as-needed mechanism.

    6. Re:About Parrot .. by Anonymous Coward · · Score: 0

      I think we'll need to make at least one change to the garbage collector such that we don't trigger copy-on-write for shared memory pages of internal data structures and dirty pages unnecessarily, but I think it's possible to fix that without too much trouble.

      Well hurry up young man, the world is waiting....
      That should take about five minutes to do right? :-)

    7. Re:About Parrot .. by mr_mischief · · Score: 1

      Parrot's one target for multiple languages, but it's also only one target of Perl 6. Goals include that Perl code will be able to be targeted to either a JIT native compiler or a traditional object code compiler as well as targeting Parrot.

    8. Re:About Parrot .. by Anonymous Coward · · Score: 0

      Microsoft DLR at the very least has a working language implementation more serious than LOLCODE. IronPython is mature enough and IronRuby is following up.

    9. Re:About Parrot .. by Wiseman1024 · · Score: 1

      I hate to have to say this because I know what would Commander Ackbar say of .NET (unlike some gullible fools), but Microsoft has a better choice of languages for .NET DLR than the community has for Parrot, not to mention .NET DLR actually works. Even some gullible fools are trying hard to make IronPython work on Linux, Santa knows why.

      --
      I was about to say 13256278887989457651018865901401704640, but it appears this number is private property.
    10. Re:About Parrot .. by Hatta · · Score: 1

      Binaries that launch and run at the speed of C with the ability to write in a high level language? Sounds like the future of programming to me.

      C is a high level language, so that sounds like the present and past of programming too.

      --
      Give me Classic Slashdot or give me death!
    11. Re:About Parrot .. by egarland · · Score: 1

      .net programs require the .net framework to be installed to be used. Its my understanding that one of parrot's goals is to be able to create standalone OS binaries that don't need a giant environment be installed to run. This may seem like a small issue, temporary and easy to fix, but its not.

      Say, for example, .net 4.2 includes this great new feature that will make your little tool that you want to run on the 4000 machines you administrate that much better but they all have 3.5 installed. Unfortunately.. 4.2 has a bug that breaks an important application everyone uses. Even more unfortunately, you don't figure that out until you install it on those 4000 machines so you can run your utility. You're fired.

      The issue I brought up about shared memory for shared libraries is another .net limitation which many people dismiss as unimportant but deeply limits the utility of the languages in creating code in wide-spread use on a machine. A library that is used by every application on the system (networking library, registry type library, etc) that is created in a way that its memory is unsharable is extremely inefficient in comparison to one that is sharable. With java (and I believe .net) a fundamental design principal is that each process's memory is completely isolated from all other processes (for the components written in .net and java). This leads to deep inefficiencies in memory use but more importantly in cache use and probably accounts for some of the "molasses" feeling of those environments.

      --
      set softtabstop=4 shiftwidth=4 expandtab nocp worlddomination
    12. Re:About Parrot .. by egarland · · Score: 1

      Parrot might be able to give you what you are looking for if it saves compiled bytecode, or something like that, to disk and then mmap() it back into memory to actually execute it.
      You are assuming that parrot isn't creating a libfoo.so.0 file. Parrot is designed to be able to compile programs the old-fashioned way (once, not on the fly, saved to a file) as well as on the fly.
      --
      set softtabstop=4 shiftwidth=4 expandtab nocp worlddomination
    13. Re:About Parrot .. by Anonymous Coward · · Score: 0

      Also, the register based parrot engine underneath is supposed to be much faster than the purely stack based .net and java VMs. Lua is arguably one of the fastest dynamic scripting languages. It is very small and lightweight with a very tight core. It wasn't long ago that it was switched from a stack based VM to register based and the performance difference wasn't that great at all. The benchmarks I have seen on Parrot seem to support this.

      Also, Parrot is considerably slower than the Lua VM despite being much larger. The Lua compiler, VM, and runtime environment is WAY smaller than just the Parrot VM alone.
    14. Re:About Parrot .. by egarland · · Score: 2, Insightful

      C might be "high level" by some definition of the word but where I come from C is a low level language one step up from assembly. Calling C a high level language with Java, C# and Ruby around is like calling a 4 story building tall when theres a 400 story skyscraper next to it.

      --
      set softtabstop=4 shiftwidth=4 expandtab nocp worlddomination
    15. Re:About Parrot .. by chromatic · · Score: 1

      That should take about five minutes to do right? :-)

      If it weren't for trying to get symbol exports working properly on Mac OS X and static builds happy on Solaris with Sun Studio, maybe! (Don't even ask about the joys of MSVC's support of C99.)

    16. Re:About Parrot .. by chromatic · · Score: 1

      Parrot is considerably slower than the Lua VM despite being much larger.

      The Parrot used for those benchmarks was also a development version never released as a stable 1.0 version for production, and we haven't done much optimization on it (or the Lua language written on it). Of course it's slower.

    17. Re:About Parrot .. by Hatta · · Score: 1

      Yes, high level language means it's one step higher than assembly (the low level language). Java, etc, are "very high level languages".

      --
      Give me Classic Slashdot or give me death!
    18. Re:About Parrot .. by ameoba · · Score: 1

      There's a problem when you describe a continuously evolving thing in terms of absolutes - just like how 'Modernism' describes what was going on from the 1880s to 1920.

      --
      my sig's at the bottom of the page.
    19. Re:About Parrot .. by Anonymous Coward · · Score: 0

      How do you know what benchmarks I am talking about?

      Lua language written on what? What are you talking about? Running Lua on Parrot or something? I was talking about the Lua VM and the Parrot VM running their own native stuff.

      Years ago before Ruby was popular there was a lot of talk about not optimizing because that wasn't important at the time and "could be done later." Now here we are 13 years later and Ruby is still slow as shit. Sorry but you can't save optimization for later, it rarely works out. The whole idea that optimizing later has benefits is a myth perpetuated by the inexperienced and/or Ivory Tower types.

    20. Re:About Parrot .. by chromatic · · Score: 1

      How do you know what benchmarks I am talking about?

      I assumed you meant the Lua on Parrot versus Lua on the Lua VM benchmarks. My mistake.

      Sorry but you can't save optimization for later, it rarely works out.

      That's an... interesting perspective. By what magic fairy dust are you able to profile code you haven't written yet?

    21. Re:About Parrot .. by F1re · · Score: 1

      Um, your 3.5 app still uses the 3.5 libraries and and 4.2 app uses the 4.2 libraries? Side by side is a wonderful thing...

      --
      ...there is no sig...
    22. Re:About Parrot .. by cgaertner · · Score: 1

      There is nothing magic about what C or C++ does when it utilizes shared memory for dynamically linked libraries. Your assertion that Java or C# cannot do this strikes me as incorrect, although I'm not sure if any VMs actually make use of such a thing or not. Googl says IBM has been doing something like this at least since 2004. Sun's VM supports class data sharing since version 1.5: http://java.sun.com/j2se/1.5.0/docs/guide/vm/class-data-sharing.html
  16. Re:BFD? by adamkennedy · · Score: 5, Insightful

    This is probably just flame bait, but here's your answer.

    Python is overly simplistic, making it difficult to do certain types of interesting programming.

    This is by design, Python is meant to be dumbed down (in the sense that Java is) and have a clean small footprint.

    Ruby is slow, even by scripting language standards (in the main implementation, anyways).

    This is by design (well ok, not really), but Ruby needs to support all those gorgeous abstraction layers somehow.

    Both of them aren't that amazing when it comes to Unicode (like Perl or Java), don't have built in security-hardened modes (like Perl's tainting or PHP's weird data firewall thingy, etc), aren't as portable as they might be (like EBCDIC, VMS, S390 and other places that aren't Unix or Windows) and their package repositories lack sophistication and the ability to properly nest dependencies in a cross-platform way (like Perl, Fortran, R and Erlang).

    So by all means, if you have simple programming needs on lowest-common-denominator environments doing ordinary things and you don't stretch far beyond the core libraries, by all means go with a language that fits your brain the best, be it Perl, Python, Ruby, Brainfuck, whatever.

    If you want to integrate with C code inside the rendering pipeline of a movie render farm while having code so boring anyone can maintain it, use Python.

    I'm still not sure of anywhere that Ruby is a standout success... Rails has jumped the shark and is in decline, and I'm not aware of any major use cases...

    Perl is still a brilliant language to get the simple things done really really fast but tieing together half a dozen CPAN modules, while still having the ability to scale your code base up a hell of a long way, and the knowledge that it's fairly easy to write highly portable code.

  17. Re:BFD? by brasspen · · Score: 1

    I think you're saying it's ironic I'd have that attitude on a web site that is run on Perl. Correct? That just proves my point. Slashdot was created in 1997. This is legacy code. If it were built today it would not be with Perl. Look at Digg. I want somebody to tell me why they think Perl is relevant for new projects today.

  18. Re:BFD? by brasspen · · Score: 1

    Thank you very much. That's what I wanted to read. I agree with you on RoR. I think it's not quite as billed. My problem with Perl is reading it. I can't stand it. Really. I'm learning Smalltalk and I can't go to Perl after that. For now it's just shell scripts/sed/awk. Cheers.

  19. Re:BFD? by stuporglue · · Score: 2, Insightful

    I use Test::More and other Perl test automation tools extensively at work. I recently wanted to make a web front end for the testing reports. I already had test results parsers written as Perl modules for the command line test analyzers, so I just used Perl to make the test report pages with CGI.

    It's not always the right choice, but it can still be very useful.

    --
    https://www.facebook.com/digitizeicm -- Show your support for the digitization of the Iron County Miner newspaper archiv
  20. Re:I'm sorry, but... by Anonymous Coward · · Score: 0

    Nice troll. As a free-software supporting atheist, I can't think of a much more obnoxious mockery of those ideals than your post.


    You are the obnoxious one. The world does not revolve around you. No one cares that you follow the cult of Stallman. I use Linux also (Oh no, I didn't say "GNU/Linux!"), but I don't try to force others to. Like it or not, .NET exists and people may actually speak about it here.



    Since you're so into the FOSS movement, why don't you stop contradicting that "freedom" by insulting people who talk about other platforms?



  21. Re:BFD? by dave1791 · · Score: 4, Insightful

    "...while having code so boring anyone can maintain it..."

    I hope that I understand that wrong and that you don't consider unintelligible, unmaintainable, code 'interesting' in a good sense.

    Because my mama taught me to comb my hair, keep my fingernails clean and write code that other humans can understand without wanting to couge their eyes out with a fork.

  22. Re:BFD? by DAldredge · · Score: 2, Interesting

    This isn't reddit - some of use have jobs and use Perl to make those jobs easier. We can't afford the language of the month fads that pervade that other site.

  23. Re:BFD? by furry_marmot · · Score: 4, Informative

    Uh...Slashdot just rewrote its interface and much of its code base a few months ago. Not exactly legacy.

  24. Re:BFD? by Anonymous Coward · · Score: 0

    Whooh, Slashdot switches to CSS. That really counts as an overhaul!

  25. Not Quite Finished Yet, But... by ImustDIE · · Score: 0, Redundant

    This post is a little misleading. Perl 6 is not done, this isn't a 'Perl 6 release'. It's just another Parrot release, with the neat feature that you can finally run a perl 6 binary instead of going through the parrot one. This, by itself, is nothing major. The main reason for this post is to publicize the great amount of progress Perl 6 and Parrot have made, particularly within the last few months. And by publicizing that, to hopefully get more people involved. If you're interested in running Perl 6 now, check out www.pugscode.org -- Audrey's compiler is still further along than the official 'Rakudo' one (although it shouldn't be for too much longer ;-). However, this is still great news to Perl fans. I'm not a contributor, but I do subscribe to the parrot mailing list; the fact that the real Perl 6 interpreter (although incomplete) is finally underway and making great progress, and the momentum that comes with that, is exciting. Even if you're not a Perl fan, the Parrot bits should still be quite interesting to anyone that enjoys language implementation. The PCT (Parrot Compiler Toolkit) is maturing nicely and many languages have working interpreters/compilers (to various levels of completion) using it. The amazing thing about it is the sheer speed that you can get a working language together. Rakudo is built on top of NQP (not-quite-perl6) -- a subset of perl 6 built in a matter of (a very few) weeks. And it's important to keep in mind that while Perl 6 is the star of the show for Parrot, Parrot is being designed to fit all dynamic languages; so don't be scared off because you think Parrot is too Perlish. I regularly see posts on the mailing list helping to make Parrot friendlier for other languages (particularly TCL) as people develop using parrot. For open source fans, I think Parrot is our best bet for a VM to give .NET a fight (although feel free to reply with other suggestions, I don't keep up with too many others ;-).

  26. Not Quite Finished Yet, But... (formatted) by ImustDIE · · Score: 5, Informative

    Very sorry for double posting, but I checked the wrong formatting box on the previous post.

    This post is a little misleading. Perl 6 is not done, this isn't a 'Perl 6 release'. It's just another Parrot release, with the neat feature that you can finally run a perl 6 binary instead of going through the parrot one. This, by itself, is nothing major. The main reason for this post is to publicize the great amount of progress Perl 6 and Parrot have made, particularly within the last few months. And by publicizing that, to hopefully get more people involved.

    If you're interested in running Perl 6 now, check out www.pugscode.org -- Audrey's compiler is still further along than the official 'Rakudo' one (although it shouldn't be for too much longer ;-). However, this is still great news to Perl fans. I'm not a contributor, but I do subscribe to the parrot mailing list; the fact that the real Perl 6 interpreter (although incomplete) is finally underway and making great progress, and the momentum that comes with that, is exciting.

    Even if you're not a Perl fan, the Parrot bits should still be quite interesting to anyone that enjoys language implementation. The PCT (Parrot Compiler Toolkit) is maturing nicely and many languages have working interpreters/compilers (to various levels of completion) using it. The amazing thing about it is the sheer speed that you can get a working language together. Rakudo is built on top of NQP (not-quite-perl6) -- a subset of perl 6 built in a matter of (a very few) weeks. And it's important to keep in mind that while Perl 6 is the star of the show for Parrot, Parrot is being designed to fit all dynamic languages; so don't be scared off because you think Parrot is too Perlish. I regularly see posts on the mailing list helping to make Parrot friendlier for other languages (particularly TCL) as people develop using parrot.

    For open source fans, I think Parrot is our best bet for a VM to give .NET a fight (although feel free to reply with other suggestions, I don't keep up with too many others ;-).

    1. Re:Not Quite Finished Yet, But... (formatted) by dkf · · Score: 1

      I regularly see posts on the mailing list helping to make Parrot friendlier for other languages (particularly TCL) as people develop using parrot. Interesting, especially as I don't follow ParTcl (Tcl on Parrot) closely. Care to point us to any performance figures? A comparison of the speed of Perl5 with this release of Perl6-on-Parrot would also be interesting, since Perl5 is a reasonably well-known quantity.

      And before anyone else points this out, yes, I do know that all benchmarks are misleading. Those of us who are language developers are allowed to use them despite their flaws.
      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    2. Re:Not Quite Finished Yet, But... (formatted) by ImustDIE · · Score: 1

      I don't know of any recent benchmarks comparing Rakudo to Perl 5, but I think there are some Parrot benchmarks on the language shootout pages. They are fairly impressive IIRC, but also keep in mind that the version of Parrot used to make those benchmarks is fairly ancient (over a year old I think), so it's probably gotten even better.

      It's also important to keep in mind that Parrot opens up new possibilities for perl code. Instead of just interpreting and running it every time as you do now, you can compile the code down to parrot bytecode and run that directly, instead of re-interpreting it completely every execution. Parrot also has JIT which should speed things up even more.

    3. Re:Not Quite Finished Yet, But... (formatted) by DragonWriter · · Score: 1

      For open source fans, I think Parrot is our best bet for a VM to give .NET a fight (although feel free to reply with other suggestions, I don't keep up with too many others ;-).


      I can understand not following all the myriad VM options out there, but overlooking Java is a bit surprising. Already supports quite a lot of languages, already widely installed, supports calls into and out of dynamic languages to other code on the VM.
    4. Re:Not Quite Finished Yet, But... (formatted) by CTachyon · · Score: 1

      Java's VM is not very friendly to Perl and similar languages. Java has a strict belief in strong typing that extends to compiled bytecode. Closures are possible to emulate, but hackish. And you can completely forget multiple inheritance, "duck" typing ("IS A" versus "CAN" or "DOES"), mixins, almost all metaprogramming, runtime re-blessing of object classes, runtime modification of inheritance hierarchies (useful on rare occasions), or tons of other bits from Perl, Python, Ruby, and all the other "cool" kids.

      It actually surprises me every time I hear about someone hacking a new language to compile down to Java bytecode. After all, Java VM bytecode is so intimately tied to Java that it's rather straightforward to decompile it from bytecode to Java source and get good results.

      In short, whoever hacked up the latest Foo-to-bytecode compiler has also written a Foo-to-Java source converter for free. That right there tells you a lot about (a) how similar Foo is to Java, or else (b) how much work the hacker put into transforming Foo into equivalent Java code.

      --
      Range Voting: preference intensity matters
    5. Re:Not Quite Finished Yet, But... (formatted) by DragonWriter · · Score: 1

      Java's VM is not very friendly to Perl and similar languages. Java has a strict belief in strong typing that extends to compiled bytecode. Closures are possible to emulate, but hackish. And you can completely forget multiple inheritance, "duck" typing [wikipedia.org] ("IS A" versus "CAN" or "DOES"), mixins, almost all metaprogramming, runtime re-blessing of object classes, runtime modification of inheritance hierarchies (useful on rare occasions), or tons of other bits from Perl, Python, Ruby, and all the other "cool" kids.


      And yet, implementations of plenty of dynamic languages (Groovy, Python, Ruby, Scheme, etc.) exist on the JVM, often with comparable (or better) performance on similar hardware to the dominant native implementations, where non-JVM implementations exist.

      It actually surprises me every time I hear about someone hacking a new language to compile down to Java bytecode. After all, Java VM bytecode is so intimately tied to Java that it's rather straightforward to decompile it from bytecode to Java source and get good results.

      In short, whoever hacked up the latest Foo-to-bytecode compiler has also written a Foo-to-Java source converter for free.


      I'm not sure why this is makes making a JVM compiler so surprising; making a Foo-to-C (because C compilers are ubiquitous pretty much everywhere) source converter as a way of building a compiler for new language Foo is hardly unheard of; Java taking that role on the JVM doesn't seem all that surprising to me.

    6. Re:Not Quite Finished Yet, But... (formatted) by chromatic · · Score: 1

      And yet, implementations of plenty of dynamic languages (Groovy, Python, Ruby, Scheme, etc.) exist on the JVM, often with comparable (or better) performance on similar hardware to the dominant native implementations, where non-JVM implementations exist.

      To accomplish that, sometimes you have to throw out some of the dynamicism of the language (ObjectSpace in JRuby, for example). Other times, you do take advantage of all of the compiler and optimization work poured into the JVM... at least on those platforms where it runs. (Perl 5 is more portable than the JVM.)

      Of course, as the JVM lacks an invoke-dynamic opcode, you have to emulate it at a level higher than JVM opcodes. That is to say, every language that needs an invoke-dynamic opcode (every language with late binding) has to reinvent the same thing, and optimizing one doesn't optimize the others. The same goes for plenty of other nice features found in dynamic languages such as lexical scoping, closures, first-class functions, multiple dispatch, run-time class generation, method missing, etc.

      The fact that certain benchmarks run faster on the JVM implementations than the native implementations is a demonstration that the JVM has nice optimizations, not that it's an easy or full-featured platform on which to build a dynamic language. (C's not a very nice platform on which to build a dynamic language either, but it's possible there too.)

  27. *rubs hands together* by bgibby9 · · Score: 1

    man...this is gonna be awesome! Kudos to everyone who's contributing to making my preferred language so much better! Live long and Perl on!

    --
    http://www.gibby.net.au
  28. Re:PERL 6 AS SHITTY AS PERL 5 by Anonymous Coward · · Score: 0

    "are you talking to yourself?"

    "I know you are, but so are you :P"

    Ahhh, put that in your sig and smoke it!!!

  29. Not "Community". More like Larry's Magnum Opus. by Anonymous Coward · · Score: 5, Interesting

    The supposed "community" rewrite started with a bunch of actual community requests, which Larry Wall then waded through increasingly slowly, pretty much taking the little bits he liked, then proceeded to add on a huge set of requirements that he cared about personally (and to be fair, probably the core Perl devs too). Things like extending regex into a full grammar that could parse Perl and be used to extend the language. And linguistic and abstract gumbo like how regular control flow (returning for a fucntion) was some specialization of the exception mechanism.

    Dont get me wrong, I loved reading the Apocalypses. I thought, "wow, Larry really has a deep vision of where he wants things to go". I thought is was pretty neat and hoped to play with it. But in my mind I was thinking that Perl 6 would keep to the general strengths of Perl, in that it was FAST to get done what you wanted.

    That was YEARS ago. I'm abstractly interested but have no desire to use Perl anymore. The "community" rewrite was sprinkled with requests that addressed what people were actually trying to do (certainly NOT trying to parse Perl, NOT taking 6 years, and NOT trying to get a VM running), they were a hodgepodge but every submission was pretty much focused on a narrow problem and in themselves would be achievable in less than 6 years. Instead it's become Larry's Odyssey. I also no longer harbor any expectation that Perl 6 will be FAST (to learn incrementally, to develop a quick solution, or to execute). Great if it does, I just don't believe or care.

    I wish Perl 6 had been the 'shortsighted' approval of perhaps a quarter or a third of the RFCs, rolled out within a year or two. Maybe Perl 7 could have continued this stupid trajectory it's on to irrelevance. More importantly, the volunteer development and donations would be much higher because people would actually CARE about the progress and the features.

    This wasn't what it should have been. It is like this because Perl 6 was overrun by Larry's priorities instead of the community's.

    1. Re:Not "Community". More like Larry's Magnum Opus. by mr_mischief · · Score: 4, Interesting

      If you're looking for incremental improvements, you might take a look at Perl 5. In 2001 there was 5.6.1 and now there's 5.8.10 with many improvements.

      Want a few examples of improvements? The regex parser recently went from mostly recursive to mostly iterative. it also has many new features and has other efficiency gains. Unicode handling exists and continues to get better. Several things take less memory than previously. Lexically-scoped pragmas can now be implemented in pure Perl without resorting to C. A simpler and clearer way to handle static lexical variables has been introduced. Perl's default variable can now be lexically scoped. Many new language features have been introduced. Perl has a switch statement in the core now. There's a new defined-or operator. The user-defined sorting subs can now be recursive if you need them to be. Compress::Zlib, Archive::Tar, and Archive::Extract are among some exciting new core modules.

      Most of what I just mentioned were changes between 5.8.8 and 5.10.0, so there's quite a bit more between 5.6.1 and the current Perl landscape. There were also a lot of changes to Perl 5 back in the 2001 to 2002 time frame, and have been all along since.

      Some changes between 5.6.1 and 5.8.0 included changing to a stable algorithm for sort(), changing the default IO layer from the system stdio to the PerlIO system for more predictable cross-platform behavior, safe signal handling, the UTF8 encoding being changed from lexically scoped with the program to being associated with a file handle, and a much better threading model.

      Important changes during the 5.8.x series include extra randomness in the order of hash keys, Config.pm being shrunk by about 90%, better handling of UTF-16 encoding, the elimination of some temporary lists during certain operations, and smarter malloc() handling.

      Perl 5 isn't exactly sitting still, and it hasn't been. Perl 6 is, IMHO, not so much a simple upgrade of Perl as a new language in the family of Perl-like languages. Perl 6 will be to Perl 5 much what Perl 5 was to Perl 4. People will notice some syntax changes, but many people will program in it like they were using the previous version with a tweaked syntax. Others will take advantage of all the new features. Eventually most Perl programmers will find a portion of the language that suits their tasks most readily and will become most comfortable with that. Perl 5 isn't going away for a long time, so people who really can't stand the idea of a new Perl will be able to do a lot of Perl 5 work.

      Yeah, there are other languages that will wax and wane. Ruby looks interesting, and a lot of people seem to like it. I have a general distaste for personally using languages with so much significant whitespace as Python, but lots of people really like it and there's really good software being written in it. I can't fault a language or its designer for my having other preferences. JavaScript is pretty handy, and it's getting better tools and implementations all the time and a new standard soonish. I've picked up HaXe recently, and it's an interesting alternative to ActionScript and JavaScript. I am considering learning D. Java's really popular. Yet many people still program in Perl, C++, C, Ada, Pascal derivatives, Basic, Fortran, and even COBOL. People said Basic was dead, but Visual Basic is still around.

      Like Perl, though, what we call Basic these days doesn't much resemble Basic from 20 years ago. Visual Basic doesn't even look like older versions of itself, let alone QuickBasic or the even older and even more severely limited GWBasic or Dartmouth Basic. If Perl 6 is a few years separated and a bit different, it doesn't mean it's not Perl or that it was a waste to create it. The only way it would be a waste is if nobody used it.

    2. Re:Not "Community". More like Larry's Magnum Opus. by mr_mischief · · Score: 2, Informative

      Crap... that first line should read '5.10.0' where it says '5.8.10'.

      s/8\.10/10.0/;

    3. Re:Not "Community". More like Larry's Magnum Opus. by smittyoneeach · · Score: 1

      I wish Perl 6 had been the 'shortsighted' approval of perhaps a quarter or a third of the RFCs, rolled out within a year or two. Maybe Perl 7 could have continued this stupid trajectory it's on to irrelevance. More importantly, the volunteer development and donations would be much higher because people would actually CARE about the progress and the features.
      We're awash in projects that took a more pragmatic, tactical approach.
      Larry, while falling short of a Stallman-esque non-approach to getting a release out, has certainly let the project wander along towards a greater conceptual maturity than most projects achieve.
      The whole Pugs effort seems to have saved the day. What an odd couple, Haskell and Perl. Dogs and cats living together.
      I'll admit to having blown off Perl5 and studied Python while waiting for Perl6 to arrive.
      --
      Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
    4. Re:Not "Community". More like Larry's Magnum Opus. by VGPowerlord · · Score: 1

      The problem I have with Perl 6 is that they plan on changing core operators. A lot of Perl 4 code will run on Perl 5. Perl 5 code will run on Perl 6... in compatibility mode.

      The catch is this: Perl 6 code can't be mixed with Perl 5 code. There are differences even in basic syntax and operators.

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    5. Re:Not "Community". More like Larry's Magnum Opus. by epine · · Score: 1

      I just need to remind a few people that in the past both Postgres and Mozilla were written off for dead in the minds of many. Postgres was lacking one critical performance feature (something to do with row locking), and went dark for a quite during the pursuit of this feature while the developers struggled to wrap their heads around the code base.

      Netscape source code was released into open source in early 1998. The project was renamed Firefox in early 2004, around the time that Firefox was gaining credibility as a good general purpose alternative to IE. Hmmm. Not a lot happened in six years.

      I wish Perl 6 had been the 'shortsighted' approval of perhaps a quarter or a third of the RFCs, rolled out within a year or two. Maybe Perl 7 could have continued this stupid trajectory it's on to irrelevance. More importantly, the volunteer development and donations would be much higher because people would actually CARE about the progress and the features. I wish Phoenix had been the 'shortsighted' rewrite without Gecko and XUL and associated burden. Maybe Firefox could have continued this stupid trajectory toward skins and plug-ins. More importantly, the volunteer development and donations would be much higher because people would actually CARE about the progress and the features.

      In sounds stupid, but I can still recall bitter posts about the lack of progress at Mozilla very much in the same spirit.

      The weird thing about the software industry is that no one ever gets credit for achieving a strategic victory, unless the project did not previously exist. Could Firefox have achieved what it did as a long string of small tactical victories? Or does there come a point where you have to take a long hiatus and set down a deep foundation?

      For Perl 6, I regard this as a serious question not yet answerable.
    6. Re:Not "Community". More like Larry's Magnum Opus. by proselyte_heretic · · Score: 1

      Ruby is not nearly as whitespace picky as python, part of the reason I decided to learn it instead of python. Semicolons can be used to end lines, and indent is irrelevent. The only limitation i have come across is having arbitrary line breaks in procs and hashes (I was trying to combine them in a literal construction and keep the result readable)

    7. Re:Not "Community". More like Larry's Magnum Opus. by Anonymous Coward · · Score: 0

      I'm the GP.

      Take a look at your history - Mozilla didn't just renamed itself Firefox, there were some determined people who saw that Mozilla was wandering aimlessly, and they pulled themselves apart from that trajectory and focused on something very specific.

      Now maybe that's what is happening in TFA. Or maybe this Haskell thing you mention is the focused initiative that gets things back on track. Maybe Perl just doesn't have enough dev resources for the track it's on.

      My main point is that it's NOT a community rewrite, it's a benevolent dictatorship. People have disengaged. That doesn't mean they won't come back (everyone needs duct tape), but it does look very ivory tower.

      I shouldn't be whining, I should just be trying out the new unstable release and give actual technical feedback. But instead I'm just giving the reality - that I won't check out Perl6 until there is a stable release that is declared complete. I'm tired of the caveats and lack of a decent roadmap.

    8. Re:Not "Community". More like Larry's Magnum Opus. by mr_mischief · · Score: 1

      Perl 5 and Perl 6 code can't be mixed in the same module. They can be used together in the same program.

      The syntax and operator changes are for various reasons. Most of them have to do with keeping more commonly used operators shorter and making the grammar easier to parse. A few are to make the language more friendly to people used to conventions in other languages.

      If you look closely at the development lists, there are reasons stated for each change, and they're usually pretty good reasons. Most (but of course not all) Perl 5 code will be trivially to translate to native Perl 6, too.

    9. Re:Not "Community". More like Larry's Magnum Opus. by VGPowerlord · · Score: 1

      The syntax and operator changes are for various reasons. Most of them have to do with keeping more commonly used operators shorter and making the grammar easier to parse. A few are to make the language more friendly to people used to conventions in other languages.

      The reason "because it's shorter" isn't really a good reason. If that were the case, C08 should arbitrarily change ++ to + and -- to - since the compiler could tell them apart from the two existing definitions for + and - by context:

      +blah;
      is obviously incrementing

      int blah2 = blah + 6;
      is obviously addition, and

      char[] blah3 = "this" + blah;
      is obviously concatenation.

      Making the language "more friendly to people used to conventions in other languages" implicitly means making the language less friendly to people used to conventions used in Perl 5.

      Seriously, Perl 6 needs to stop trying to copy Java & .NET and improve its own strengths.

      If you look closely at the development lists, there are reasons stated for each change, and they're usually pretty good reasons. Most (but of course not all) Perl 5 code will be trivially to translate to native Perl 6, too.

      I haven't simply because I care nothing for Perl 6. If I'm going to have to relearn everything anyway, I might as well move to Python.
      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    10. Re:Not "Community". More like Larry's Magnum Opus. by CTachyon · · Score: 1

      The supposed "community" rewrite started with a bunch of actual community requests, which Larry Wall then waded through increasingly slowly, pretty much taking the little bits he liked, then proceeded to add on a huge set of requirements that he cared about personally (and to be fair, probably the core Perl devs too). Things like extending regex into a full grammar that could parse Perl and be used to extend the language. [...]

      Are you kidding? The man almost gave me a full-body orgasm just from the new grammar system alone. That's actually the number one reason why I'm itching to jump to P6 as soon as it's out. A grammar-to-parser generator that doesn't merely claim the low-hanging fruit of "better than bison/yacc"? And it's seamlessly integrated with the language? Hell yeah!

      (Little known fact: Perl 5's "regular" expressions haven't been regular for a very long time. Thanks to various hackish uses of punctuation, you can invoke other regexes recursively, using them as a full-blown context free grammar today. But Perl 6 is finally cleaning up -- or, if you're using Pugs, has cleaned up -- the crotchety old Perl 5 regex syntax so that you can use those capabilities in serious, maintainable programs.)

      --
      Range Voting: preference intensity matters
    11. Re:Not "Community". More like Larry's Magnum Opus. by Anonymous Coward · · Score: 0

      Me too. But it's been 5 years since my last orgasm, so to speak. And I'm looking for a language that puts out a bit more.

  30. To all the detractors by Evets · · Score: 4, Informative

    I'm not sure why anybody is up in arms about a Perl6 release date. It takes a long time to get done. That's the way the world works. This isn't a platform with a fixed set of requirements, a predictable user base, and limited scalability requirements.

    People have been arguing for who knows how long about syntax. At some point the argument has to end and someone has to implement that syntax. It's not an easy thing to bring either of these points to conclusion.

    Parrot is register based, not stack based. Perl has been developed using Haskell, and eventually it will come to the point where perl can be compiled with itself. These are monumental tasks for volunteer workers pursuing some pretty hefty goals for the sake of pursuing them.

    Pugs has been working for quite some time already, and its an easy transition for anybody already familiar with perl.

    I can see criticizing the project because it's hard for a newbie to figure out how to help, or criticizing the syntax in favor of ruby/python/etc, or criticizing performance (although both Perl6 and Parrot perform very well IMO), but criticizing the time it has taken to build? Get off your high horse and go build your next big Web 2.0 script that can do anything as long as you have less than 100 daily visitors.

    1. Re:To all the detractors by will · · Score: 4, Insightful

      Get off your high horse and go build your next big Web 2.0 script that can do anything as long as you have less than 100 daily visitors.

      That's not really very helpful. I still feel like an expat perl programmer but I have rails/nginx sites that see over 100,000 people a day without any difficulty. They're clustered over four servers, none of which peaks at more than a half of its capacity. Five years ago I was running similarly busy sites under mod_perl and apache 1.3.x. The architecture was more powerful but less robust. I could do much all sorts of interesting things with the apache lifecycle - rails feels like lego by comparison - but the whole assembly was flaky and temperamental, each mod_perl process took up to 50MB and I lived in constant fear of the whole thing falling over.

      That probably has as much to do with my code quality as anything else (and the 'interesting things') but it does show that the modern high level frameworks are a viable alternative. Rails doesn't scale well but it does cluster well, and hardware is cheap. I miss the quality of people you get in the perl community, the quality of documentation (out here they think that having a blog counts) and the cheerful absurdism. I don't miss the posturing and strop, and in terms of getting things done I'm much better off than I was.

    2. Re:To all the detractors by adamkennedy · · Score: 2, Interesting

      People have been arguing for who knows how long about syntax. At some point the argument has to end and someone has to implement that syntax. It's not an easy thing to bring either of these points to conclusion.

      Actually, this is kinda wrong. Both have been happening simultaneously.

      The entire point of Pugs was to have a reference implementation of the syntax.

      And the mere existence of that implementation has meant that the language folks have gotten insight into how they designs work when you actually implement them.

      As a result, in several places the syntax has been modified to make implementation easier, or make parsing faster, etc.

    3. Re:To all the detractors by DougWebb · · Score: 1

      I have rails/nginx sites that see over 100,000 people a day without any difficulty. They're clustered over four servers, none of which peaks at more than a half of its capacity. Five years ago I was running similarly busy sites under mod_perl and apache 1.3.x. The architecture was more powerful but less robust. I could do much all sorts of interesting things with the apache lifecycle - rails feels like lego by comparison - but the whole assembly was flaky and temperamental, each mod_perl process took up to 50MB and I lived in constant fear of the whole thing falling over.
      For my company I've developed a large and complex web application that handles over 4 million requests per day, spread over about a dozen servers. It's pure Perl, with a custom HTTP/1.1 server written in Perl, and an Apache server in front of it serving static files and proxying dynamic requests back to the Perl server.
    4. Re:To all the detractors by Anonymous Coward · · Score: 0

      For my company I've developed a large and complex web application that handles over 4 million requests per day, spread over about a dozen servers.

      For my company I've developed an extremely large and immensely complex webapp that handles over 200 BILLION requests, spread over a serverfarm so large that it humbles google!

      Just out of curiousity, aside from your bragging, what was your contribution to the conversation?

    5. Re:To all the detractors by RightSaidFred99 · · Score: 1
      And...? You can write the same in Java/.NET. I'm not sure what convinced you people that "Web 2.0" is some kind of trend and that it performs poorly. Most Perl die-hards writing stuff in Perl that shouldn't be written in Perl are just old UNIX geeks unwilling to move on like the rest of the industry has.

      When I need to munge some text or interact heavily with UNIX CLI tools I use Perl, otherwise I use a real language and not a glue/scripting language.

    6. Re:To all the detractors by Doctor+Crumb · · Score: 1

      Rails and Ruby have nothing at all to do with your site's scalability, that credit goes to switching webservers and architecture. I am currently working on a perl/Catalyst app using lighttpd as the webserver, which should be able to scale insanely well because it's using load-balanced fastcgi with the static stuff handled entirely by lighty. Modern high-level frameworks exist that use perl, which let you get on with the development of your app while still using all of CPAN.

      I've yet to find anything in RoR that PHP or Perl haven't already succesfully copied and improved upon.

    7. Re:To all the detractors by Anonymous Coward · · Score: 0

      > Perl has been developed using Haskell

      That's pugs, which hasn't been maintained for most of last year and this year isn't looking good either.

      > eventually it will come to the point where perl can be compiled with itself.

      It already is. Try reading the summary.

    8. Re:To all the detractors by Anonymous Coward · · Score: 0

      So? Your servers are doing less than four requests per second. My ad network has to choose active, relevant, and underutilized ads during each pageview, and gets about 5x as much work out of each box. In PHP!

    9. Re:To all the detractors by sonamchauhan · · Score: 1

      He does 100,000 _people_ (or sessions) a day over 4 servers.
      You do 4,000,000 _requests_ a day over 12 servers.

  31. Re:I'm sorry, but... by Wiseman1024 · · Score: 0, Redundant

    Lol, why is parent -1 Flamebait? He should be funny.

    I'm a tree-hugging, religion-hating, free software-supporting atheist, but the reason why I don't use Perl is not that Larry Wall is a Christian. It's that I want to keep my sanity.

    --
    I was about to say 13256278887989457651018865901401704640, but it appears this number is private property.
  32. Re:BFD? by Jugalator · · Score: 1

    Agreed, that one gave me a good laugh as I read it. :-) I don't know *what* the author meant exactly, but it sounds like I'd prefer the "boring" code over the "interesting" Perl code in case I'm going to be the new maintainer of a software project.

    --
    Beware: In C++, your friends can see your privates!
  33. Re:BFD? by Wiseman1024 · · Score: 1

    "interesting programming" --- You call line noise "interesting programming"? Name one thing that's not insanely unmaintainable and therefore useless that you can do on Perl and cannot on Python.

    Python is not dumbed down, it's simplified. The introduction of R6RS (Scheme) contains the best insight I could ever find on the design of languages (and software in general): "Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary.". Python does this better.

    Ruby slow? Who gives a damn? Faster processors or larger farms are cheaper than man hours, so if it's more productive than, say, Java (and pretty much anything that's not assembly would be), then it's well worth it. The problem with Ruby is that it's fugly and doesn't follow the above mentioned principle, and that it has sub-par Unicode support (then again, PHP does too), not that it's slow.

    And Python has good Unicode support, what are you talking about?

    Also, if you consider PHP's misfeature of magic quotes (or who knows what else), you need to relearn the definition of security.

    Python runs even on frigging PSPs. I call that portable.

    --
    I was about to say 13256278887989457651018865901401704640, but it appears this number is private property.
  34. Time runs fast by herve_masson · · Score: 1

    April 1st already ?

    1. Re:Time runs fast by Anonymous Coward · · Score: 0

      Oh why, yes it is. In the gravitational field your mouth generates it is April the 1st, 1998.

  35. Re:BFD? by chromatic · · Score: 4, Insightful

    Name one thing that's not insanely unmaintainable and therefore useless that you can do on Perl and cannot on Python.

    Working lambdas (especially closures), for one.

    Python is not dumbed down, it's simplified.

    How ironic that you praise Scheme's design in this context. The ambiguous parsing of vertical whitespace leads directly to the broken lambda problem. Now that's probably fine for a teaching language, but plenty of people seem to think that Python is a language that scales up for experts. If that's the case, perhaps it's appropriate to judge the design of Python in terms of how it supports important features on which to build larger and more elegant abstractions.

  36. Re:BFD? by Wiseman1024 · · Score: 2, Interesting

    Python's lambda is limited to a single expression, which sucks, but you can always do def _(...) just before use. As for closures, Python implements closures properly (properly = as described in SICP, the environment model of evaluation), but immutable objects such as numbers or strings are, well, immutable, and the = operation played on a bare symbol always defines it in the current scope. However, an improvement on this regard is coming on Python 3000.

    Python's parsing of vertical whitespace is not ambiguous. Lambda doesn't support statements because Guido doesn't want to. I would easily allow something like:

    higher_order_function(lol, lambda x, y: ...code goes here... ...more statements...
    , next_arg, etc)

    Or, if Python didn't have statements (which are the real flaw IMO), you would just do something like:

    higher_order_function(lol, lambda x, y: progn(
            whatever,
            whatever), next_arg, etc)

    Define progn as lambda *a: a[-1].

    --
    I was about to say 13256278887989457651018865901401704640, but it appears this number is private property.
  37. Re:BFD? by Wiseman1024 · · Score: 1

    Oops, my first example got screwed up. I meant:

    Argh, this never shows up properly. Consider % a space.

    higher_order_function(lol, lambda x, y:
    %%%%code goes here...
    %%%%more statements...
    , next_arg, etc)

    (Wow, I hadn't realized how badly does Slash suck. No proper code formatting, ugly HTML formatting, no HTML entities, no Unicode support, ... This is like my 6th attempt.)

    --
    I was about to say 13256278887989457651018865901401704640, but it appears this number is private property.
  38. Re:BFD? by MK_CSGuy · · Score: 2, Funny

    Because my mama taught me to comb my hair, keep my fingernails clean and write code that other humans can understand without wanting to couge their eyes out with a fork.

    You don't happen to be mrs. roberts's child, do you?

  39. Re:BFD? by LaskoVortex · · Score: 2, Insightful

    This is insightful? Since when is opinion stated as fact insightful?

    OK--here goes:

    Perl has to many shifted numbers as part of is syntax.

    English words are too hard to spell.

    Lisp is backwards and all of the parentheses make it hard to read.

    Python is named after a snake making it a stupid name.

    Python is named after a comedy troupe making it a stupid name.

    C would be good except that it takes to long to make anything work.

    Python makes me indent which makes me feel like a little kid.

    Indent is not mandatory in most languages.

    Fortran makes you start in a set number of columns from left and the lack of case sensitivity makes it seem to simplistic for anything worthwhile.

    Objective C replaces periods with closed brackets making you type too much.

    Put any of these languages on a server farm and milk a cow.

    I'm a pony.

    Basic is the best language because I've never bothered to learn anything else. It can scale up and you can write libraries to get almost anything done you want. Its easy to program in. I don't use goto that much.

    --
    Just callin' it like I see it.
  40. Re:BFD? by bytesex · · Score: 1

    Exactly. Perl is fast, powerful and modular, and CPAN is near infinite. You can write perl anyway you want - even legibly. The only beef that a non-kneejerk person could have with perl is that it's big, and that its class definitions suck. And a few of the 'reserved' identifiers that seem a little bit contrived or opportunistic at times. The other higher level languages all lack library support and expressive power. Only their respective ages (all younger than perl) makes that forgivable; it took more than ten years to get java to support generics after all.

    --
    Religion is what happens when nature strikes and groupthink goes wrong.
  41. Re:BFD? by onefriedrice · · Score: 1

    I'm a pony.
    Opinion or fact?
    --
    This author takes full ownership and responsibility for the unpopular opinions outlined above.
  42. Holy cow! by try_anything · · Score: 2, Interesting

    perhaps it's appropriate to judge the design of Python in terms of how it supports important features on which to build larger and more elegant abstractions.
    Closures and lambdas can be faked using objects and named functions. It's admittedly awkward, but at least it's intelligible. The code can be read and understood without being a Python language junky. (Is there even such a thing as a Python language junky?)

    Compare that to Perl5 OO. Perl5 OO is dog food, yet Perl 5 library authors consistently use it to define their library interfaces. All those libraries may toss the OO and rely on hashes of closures behind the scenes -- I haven't checked -- but library programmers evidently find it advisable not to share their elegant abstractions with users. Instead, they use objects, which (in Perl5) are wonky, bizarre, and understood by practically no one who isn't a Perl language guru. The fact that library authors define their interfaces in terms of constructs that few people understand seems like an admission that Perl has its own problems creating elegant abstractions.

    plenty of people seem to think that Python is a language that scales up for experts
    Actually, the idea is that you can know enough about Python to work competently with Python code and still have enough brainspace left over to be an expert in something besides programming. Try THAT with Perl.... I mean, try that sometime when you're not ten times as smart as I am :-(
    1. Re:Holy cow! by Wiseman1024 · · Score: 1

      They don't need to be faked because they exist for real. It's just that "=" doesn't do what one'd expect at first, and this may be uncomfortable but it's how it is and nevertheless it's getting fixed. (The other two choices would have been to add a defining statement that'd make your variables global the second you forgot, like JavaScript or Perl, or to try to be smarter in how you detect outer variables or create inner versions of them if they don't exist, but even that may have problems too.)

      --
      I was about to say 13256278887989457651018865901401704640, but it appears this number is private property.
    2. Re:Holy cow! by chromatic · · Score: 1

      Closures and lambdas can be faked using objects and named functions.

      How do you fake anonymous lambdas? Of course our models of computation are all equivalent if you throw out any abstractions, but beware the Turing Tarpit.

      Perl5 OO is dog food, yet Perl 5 library authors consistently use it to define their library interfaces.

      "I don't really know much about Python. I only stole its object system for Perl 5. I have since repented." Larry Wall, Programming is Hard, Let's Go Scripting...

      Actually, the idea is that you can know enough about Python to work competently with Python code and still have enough brainspace left over to be an expert in something besides programming.

      I prefer to hire people who are good at programming to write and maintain code I care about. I find that they tend to write better, more maintainable code. Novices tend not to write good code.

    3. Re:Holy cow! by try_anything · · Score: 1

      How do you fake anonymous lambdas?
      Make a named function and cover up the name with your finger ;-) I did say fake. It's visual clutter and imposes a certain amount of cognitive overhead; no arguments about that.

      "I don't really know much about Python. I only stole its object system for Perl 5. I have since repented." Larry Wall
      Python's object system is working just fine. By contrast, the decision to scrap Perl 5's object system was entirely uncontroversial. I think that says everything that needs to be said about Perl 5 OO, and it comes straight from the Perl community itself.

      But in case elaboration is desired, you don't see Python programmers going around saying, "Here, look at this. I really didn't 'get' Python classes until I read this amazing article," and then a week later, "I think I understood classes for a while last week. It was pretty cool, but you'd have to be crazy to use that stuff unless you had a really nasty problem." The two models may be the same at some level, but Perl's was expressed so poorly that simply explaining it for mere mortals was considered a major achievement. I could teach Python's object system to any of my colleagues in an afternoon, using the morning to brush up on the technicalities and plan my presentation. If I could do that with Perl, I'd be some kind of Perl God (like Damien Conway). Given that the fatal flaw with Perl 5 OO was its obscurity, and the biggest asset of Python OO is its lucidity, that quote from Larry Wall is, like many other things he says, absolutely shameful unless interpreted in whatever special ironic context he said it in.

      (The difference between Python lambda fakery and Perl object fakery epitomizes the difference between the two languages. Python falls back on simple, universally-understood language features to provide a somewhat clunky, verbose, yet clear solution; Perl falls back on language wizardry to provide an obscure but concise solution. In most cases Perl achieves a much better tradeoff than it did in the case of objects.)

      I prefer to hire people who are good at programming to write and maintain code I care about.
      Me too; I'm a professional software developer. I was just pointing out that the "Python is for experts" slogan you may have heard from Pythonistas is half ironic; it's about Python being usable by people who are *not* experts in software but who *are* experts in their own field, whatever that may be. (I don't know how well that works in practice, being surrounded by software experts myself.)
    4. Re:Holy cow! by Anonymous Coward · · Score: 0

      Closures and lambdas can be faked using objects and named functions. How do you fake anonymous lambdas? Of course our models of computation are all equivalent if you throw out any abstractions, but beware the Turing Tarpit. I really don't get what you guys are arguing about. Seems too philosophical or possibly nit-picking to me. I don't know which, but I don't so much care.

      lambda x: x*2
      seems good enough to me. Maybe you were expecting to be able to write several lines of code in a lambda function? To me, that would make the code much less readable.

      You could just, you know, break the complex, multi-line crap into a function that you can reuse:
      lambda x: func(x)*2

      I just don't get what the problem is.
    5. Re:Holy cow! by chromatic · · Score: 1

      Maybe you were expecting to be able to write several lines of code in a lambda function? To me, that would make the code much less readable.

      That seems like a tautology. You don't know why it's useful to have lambdas containing more than one expression, so you can't imagine trying to read them. I recommend the book The Little Schemer; it's easy to read and very enlightening.

      If Scheme isn't your bag, then play with Ruby's blocks sometime. They're essentially lambdas, and they can be arbitrarily complex. (There are some semantic warts with the way Ruby's operators and especially functions handle them sometimes, but that doesn't hurt the idea.)

      Perhaps the best way to explain it is so say that a lambda represents a reusable and modular chunk of behavior. Sometimes you want to name them. Other times you don't. (I'm sure you wouldn't want to think up a unique name for each iteration block in your program.) Limiting lambdas to a single expression in Python (and enforcing read-only closures) limits some of their applicability and power for abstractions. Scheme and Lisp go a long way by more-or-less considering lambda application the fundamental unit of computations.

    6. Re:Holy cow! by try_anything · · Score: 1

      Sometimes you want to name them. Other times you don't. (I'm sure you wouldn't want to think up a unique name for each iteration block in your program.) Limiting lambdas to a single expression in Python (and enforcing read-only closures) limits some of their applicability and power for abstractions
      I think we're very close to being on the same page here, but I wonder whether you will agree to the following: There are two ways to put it. Python lambdas are crippled; or, Python often forces you to define a class or a named function when you would rather use an anonymous lambda expression. The second way is less prejudicial and just as accurate. In the vast majority of cases, you don't forgo the lambda; you write a few extra lines of code, introduce a superfluous name, and enjoy the same power as languages with good lambda statements, at a slight cost of elegance. In the few cases where the readability cost is so high that you choose a different program structure instead, it makes sense to say that Python has less power. Those cases are rare, so (in my mind) the primary consequence of Python's crappy lambdas is a decrease in readability.
  43. Who fails it ? by ajs318 · · Score: 1

    If you're going to link to a website, first make sure there is actually something there.

    --
    Je fume. Tu fumes. Nous fûmes!
  44. Re:BFD? by Anonymous Coward · · Score: 0
    Python does NOT lack library support. It comes with many built-in modules [1], and there are plenty of extra modules available online


    [1] - http://docs.python.org/modindex.html


    Python does NOT lack expressive power either. Things like list comprehensions are beautiful:


    >>> [str(round(355/113.0, i)) for i in range(1,6)]
    ['3.1', '3.14', '3.142', '3.1416', '3.14159']


    http://www.network-theory.co.uk/docs/pytut/ListComprehensions.html
    Both powerful and easy to remember without needing any extra documentation

  45. Re:I'm sorry, but... by Peter+Cooper · · Score: 1

    Y'know, for a few minutes here and there I've actually thought the same thing. I find it pretty darn creepy that people who are so religious (synonym: irrational) are pumping out programming languages.. but then I realized that perhaps an ounce of fantasy and irrationality are REQUIRED to be able to make a good programming language. After all, you're going to be slogging and working night after night for DECADES to get a language to the point where it'll stick, and that takes blind faith, not rationality. So.. I'll stick to using the products of religious men, simply because they're usually the only ones crazy enough to see such craziness through.

  46. Re:BFD? by adamkennedy · · Score: 1

    I have some friends who have worked in motion picture render pipeline development.

    As I understand it, C integration is a big deal for them, but more importantly because of typical movie time pressure they pretty much know in advance that NOBODY working in that area has time to write documentation, and most of the time to write comments either, and most of the time the code will be utter dreck and not properly designed (at a class by class level).

    Code that does very interesting things doesn't HAVE to be unintelligible, and in the cases where it's heading in that direction (because it HAS to for things like functional programming or continuation tricks and so on) copious comments and full documentation (something the CPAN culture has installed in many Perl coders) let you get the best of both worlds.

    However, in a situation where only having the time to write crap and not document it is the standard for the entire industry, you almost certainly want a simple language that doesn't give you enough rope to hang yourself.

    Java, Python etc etc...

    And of course the C integration helps enormously.

  47. Re:I'm sorry, but... by hummassa · · Score: 1

    I'm a tree-hugging, religion-hating, free software-supporting atheist, but the reason why I don't use Perl is not that Larry Wall is a Christian. It's that I want to keep my sanity. Well, as you are:
    1. Hugging trees;
    2. Hating people that think differently than you; and
    3. Disregarding that absence of evidence is not evidence of absence,
    I would say it's too late for that.

    DISCLAIMERS:
    a) I'm an agnostic. My will is strong: I refuse to have blind faith in the existence of a deity, but I also refuse to have blind faith in its non-existence;
    b) I'm a Perl programmer;
    c) This post was meant to be funny. Please, laugh. Or not.

    --
    It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
  48. Re:PERL 6 AS SHITTY AS PERL 5 by Anonymous Coward · · Score: 0

    God damn piece of shit!
    Ah, another average VB developer speaks up.

  49. Re:I'm sorry, but... by Wiseman1024 · · Score: 2, Insightful

    And you are:
    1. Mocking environmentalism;
    2. Thinking by hating a religion I hate the gullible fools that follow it (if anything, I hate the immoral atheists who created it to abuse their lambs);
    3. Disregarding that illogical and contradictory things don't need to be disproven, and that even if presented with a non-illogical and non-contradictory belief such as "flying green elephants no-one has ever seen", it's their task to prove, not mine to disprove.

    But I get your point :) .

    --
    I was about to say 13256278887989457651018865901401704640, but it appears this number is private property.
  50. Re:BFD? by Junta · · Score: 1

    Python tends to force, particularly for shorter programs, much more readable code to a third party. It conversely requires you to perhaps be a lot more verbose in some ways, but not verbose enough in others. In longer programs, sometimes you have to maybe look a little carefully to understand the implicit type of a variable, and the whitespace code grouping can cause problems on multi-developer projects (one person uses spaces, another tabs, tabstops don't line up and suddenly one spaced line looks like it is in the same level as a tabbed lines). So I can understand ways python *can* become hard to maintain/read, but my experience is that Perl code has a much stronger tendency to go unintelligible. The indentation, while possible to mess up without affecting program behavior, can be and often is not carefully tended to. Not helping perl's image is the fact that people teaching perl/posting on forums seem to constantly be in an obfuscated perl contest. Perl enthusiasts seem to believe they only have worth if they write unreadable code.

    I say this as a person who has moved from Python to Perl due to various reasons. Perl I had a basic understanding of, but the various posts of code snippets on forums for specific tasks had always made me nervous about perl and glad for python. Now that some issues in the python world forced me to perl, I've found perl *can* be a great and straightforward language, so long as the developers are not *trying* to show off how cool their perl skills are.

    --
    XML is like violence. If it doesn't solve the problem, use more.
  51. Re:PERL 6 AS SHITTY AS PERL 5 by Anonymous Coward · · Score: 0

    Lisp and Smalltalk developer here. Yeah, Perl is a fucking piece of shit and braindamage. Larry Wall is no language designer.

  52. There will never be _the_ "Perl 6" release! by LuckyStarr · · Score: 2, Insightful

    Perl 6 != Perl 5++

    Perl 5 is a interpreter which happens to grok Perl 5. It's the one and only implementation that implements all features (by definition). There is no other specification.

    Perl 6 is not a interpreter or compiler. It's a specification and as such there will be many implementations. Do you know what the current "release" of C++ is? See...

    Want to use Perl 6 today? Use Pugs.

    --
    Meme of the day: I browse "Disable Sigs: Checked". So should you.
    1. Re:There will never be _the_ "Perl 6" release! by ToasterMonkey · · Score: 1

      Perl 5 is a interpreter which happens to grok Perl 5. just "happens to"? It's pretty explicit. Does Perl 5 do anything else? Why not just say what you're really getting at, instead of redefining history.

      Perl 6 is meant to run on a (Parrot) VM, whereas earlier versions of Perl were interpreted. From the looks of your link, it is being implemented outside the Parrot VM also.

      Reading Perl, and comprehending the subtle differences between Solaris, Linux and Windows versions already gives me headaches, now there will be different implementations of each? Wow. I hope that works out.
  53. Re:BFD? by hey! · · Score: 1

    I hope that I understand that wrong and that you don't consider unintelligible, unmaintainable, code 'interesting' in a good sense.


    Nah, that's an orthogonal concern. Some people write intelligible, maintainable code that is interesting ("Oh, he's developed a language and grammar for the valid inputs and is parsing it with a state machine."). Other people write unintelligible, unmaintainable code that is interesting in that you have to find the key that unlocks its mysteries ("Oh, this block of five thousand lines indented up to ten levels deep is is just a huge case statement indexed by single variable wrapped in an infinite loop; conceptually its a state machine and I can chop it up into reasonably sane pieces in a few hours.").

    Of course, other people write maintainable code that's boring ("Oh, he's making the user configure this in XML, and he's using JAXB and schema to generate a DOM tree."). Others write unmaintainable code that's boring ("Crap, he's got all the lexical and grammatical rules littered through all the processing code. It's going to take ages for me to sort this out.")

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  54. Pugs vs Perl6 by mdmkolbe · · Score: 1

    So which implementation is of Perl6 faster? Pugs or perl6 on parrot?

  55. Re:I'm sorry, but... by Timex · · Score: 1

    And you are:
    1. Mocking environmentalism; Environmentalist "atheists" beg for mocking, because their deity is the environment. (What is the "supreme being"? Mother Earth or Mother Nature, of course.) If they want to be taken seriously (by me, anyway), they should at least be consistent.

    2. Thinking by hating a religion I hate the gullible fools that follow it (if anything, I hate the immoral atheists who created it to abuse their lambs); Being "religious" doesn't mean anything. Where one chooses to put one's faith is, and no, it's not the same thing. Though I may disagree with the doctrine of some religions, I don't consider them "gullible fools" unless they are Scientologists. After that, remember that believing in Evolution requires that one be worse at math than one thinks he is, and it also requires that one have more faith than the much-maligned Christian.

    3. Disregarding that illogical and contradictory things don't need to be disproven, and that even if presented with a non-illogical and non-contradictory belief such as "flying green elephants no-one has ever seen", it's their task to prove, not mine to disprove. This sword cuts both ways. I've yet to see anyone prove to me that my faith is misguided, and having someone scream "blind fool!" at me does nothing to sway my faith.

    I am a Christian, and that's fine. If you're not, that's fine too. I don't have to agree with you. You don't have to agree with me. The differences we have (and a willingness to discuss them civilly) are what keeps life "interesting".
    --
    When politicians are involved, everyone loses.
  56. Re:I'm sorry, but... by Wiseman1024 · · Score: 0, Offtopic

    If they want to be taken seriously (by me, anyway), they should at least be consistent. Ever thought that I may be an environmentalist because I'm not stupid enough to destroy what lets me and everything I love or like live? Or you prefer to find yourself an excuse to, despite being atheist, be a polluting, gas-wasting redneck?

    Being "religious" doesn't mean anything. Where one chooses to put one's faith is, and no, it's not the same thing. Yes, it means to have blind, irrational beliefs, which, 99% of the time, are even contradictory and illogical. That says something.

    After that, remember that believing in Evolution requires that one be worse at math than one thinks he is, and it also requires that one have more faith than the much-maligned Christian You don't understand what a theory is about, and you don't seem to understand belief either. Let's see what you say when somebody comes up with a new theory that works better than the current one (and no, creationism is not even valid theory material). You are trying too hard to be a believer; why not just join Scientology?

    I've yet to see anyone prove to me that my faith is misguided Here's the first indicator that something is going wrong:

    1. It's faith

    *Any* faith is misguided. You may think something probable, work with a theory, build new premises upon reasoning on existing ones (and remember to carry, add and multiply probabilities if you're not basing on facts!), or just play what-if, but blindly believing on something "just cuz", "just cuz it's nice", "just cuz lotsa ppl think so" or "just cuz there has to be sumthin lool" is not going to help anything or anyone.

    But to each their own. I'm equipped with a brain so I like using it and refuse to accept things blindly and irrationally.
    --
    I was about to say 13256278887989457651018865901401704640, but it appears this number is private property.
  57. Re:I'm sorry, but... by coolGuyZak · · Score: 1

    but then I realized that perhaps an ounce of fantasy and irrationality are REQUIRED to be able to make a good programming language.

    I agree, but I'd like to generalize your thoughts a bit: In order to make anything "good", you need an ounce of idealism. Being an idealist somewhat frees you from the bounds of what works, allowing the exploration of what should work. It provides a grand vision, and, often, the wherewithal to seek that vision. The idealist may not ever realize their vision, but in striving for it, they will usually affect the status quo of similar projects and/or products.

    That said, every idealist needs a foil, to prevent them from running amok. :)

  58. All I really want is..... not a new whale by Ancient_Hacker · · Score: 1
    My wish list for Perl 5 was not all that long, but it looks like I get none of it:
    • Goodbye to $ @ and %. There's no reason you should need them if you have declarations.
    • Nested subs with lexical variables that work as expected.
    • Memory management that's not Flintstone-level.
    • Built-in interpreter level profiling.
  59. Yeah, but Python 3000 went alpha last August. by L.+J.+Beauregard · · Score: 0, Offtopic

    Neener neener neener.

    --
    Ooh, moderator points! Five more idjits go to Minus One Hell!
    Delendae sunt RIAA, MPAA et Windoze
  60. Re:I'm sorry, but... by Anonymous Coward · · Score: 0

    > I've yet to see anyone prove to me that my faith is misguided...

    Christian, huh? Ok, I'll take up the challenge...

    1. Why would an omniscient god bother creating life? Before it creates the life it already knows exactly what it all will do - and how it'll be rewarded or punished.

    2. Why would all all-powerful, all-good, all knowing god allow the holocaust, witch hunts, misc genocides, plagues, etc? Before you say "philosophical problem of evil" note that the holocaust could have been prevented by just changing a few males to females in the womb (hitler, etc) - which would have robbed them of political power but not free will.

    3. According to the bible, the christian god is a jealous god. Exactly what would an all-powerful, all-knowing, all-present, all-creator god have to be jealous of?

    4. Why would the father of all mankind favor one particular nation over others?

    5. According to the bible we were created in God's image. Ok, why would god need nostrils and toes?

    6. Why would an all-powerful and all-knowing god have his message put into a book that is so subject to interpretation. So subject in fact, that there are hundreds of christian denominations and congregations that all believe that all others are wrong. So subject in fact that it takes years of bible study at a university to be considered an authority on using the bible to answer some questions.

    7. Why would an all-good, loving god create childhood leukemia?

    8. Why would an all-good, loving god torture the majority of people in the world that die unaware of the christian gospels to eternal torture? Especially when you consider that most people believe in whatever religious is dominant in their area (born in Egypt? then you're a moslim, born in India? then you're buddist or hindu, born in Peoria, Illinois? then you're a christian)

    9. Why is it that a church over a thousand years old (Catholic Church) that follows absolute and timeless teachings of god is trailing progress in ethical and moral standards lead by the secular community? And why is it that the church at one time permitted, allowed and encouraged witch hunts, slavery, death penalties, etc - and no longer does today?

    Well, the answer is simple - the whole concept of god is something that came out of tribal communities thousands of years ago. It's primitive and full of contradictions and misinformation. For thousands of years science was held back as christians tortured, jailed, executed, etc anyone that would dare to contradict info or believe in anything but the bible.

    There are quite a few other reasons not to believe in the bible, but I'd say that the above 9 is already overkill.

  61. It's not that fast... by SanityInAnarchy · · Score: 1

    Im proud of this little project in a sort of mortified way; it just writes out a C file that wraps a tiny exectuable header around the PBC file and calls a couple of functions in libparrot to run that code, much like the parrot executable does (but without all of the latters command-line options).

    Maybe it will eventually be as fast as C, or faster, but that seems unlikely.

    What's interesting about this perl6 binary isn't that it's actually fast, but that it's as usable as a perl5 binary in that you don't have to mess around with the VM itself.

    --
    Don't thank God, thank a doctor!
  62. My thought exactly by metamatic · · Score: 1

    You can criticize Ruby for a lot of things, but to claim that it's uglier than Python is laughable.

    --
    GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
    1. Re:My thought exactly by DragonWriter · · Score: 1

      You can criticize Ruby for a lot of things, but to claim that it's uglier than Python is laughable.


      Ruby retains some of Perl's potentially ugly features, though there are for most uses alternatives that are more idiomatic in current Ruby usage, so Ruby certainly can be ugly.

      Ruby can also be not-ugly.

  63. Re:BFD? by metamatic · · Score: 1

    Ruby is slow, even by scripting language standards (in the main implementation, anyways).

    Ruby 1.9 has a new VM that's double the speed.

    Both of them aren't that amazing when it comes to Unicode (like Perl or Java)

    Ruby 1.9 supports Unicode.

    don't have built in security-hardened modes (like Perl's tainting or PHP's weird data firewall thingy, etc)

    Ruby has taint, just like Perl. Has for years.

    aren't as portable as they might be (like EBCDIC, VMS, S390 and other places that aren't Unix or Windows)

    Ruby for VMS. There are a few people working on porting it to z/OS, but I don't think anyone cares much; Rails sites on System z hardware tend to run on Linux for z/OS.

    and their package repositories lack sophistication and the ability to properly nest dependencies in a cross-platform way (like Perl, Fortran, R and Erlang).

    Ruby's packaging system (RubyGems) is fully cross platform and supports dependency nesting. Has been for years.

    [Opinions mine, not IBM's.]
    --
    GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
  64. Re:BFD? by oldhack · · Score: 1
    This

    Python is overly simplistic, making it difficult to do certain types of interesting programming. This is by design, Python is meant to be dumbed down (in the sense that Java is) and have a clean small footprint.
    And this

    Perl is still a brilliant language to get the simple things done really really fast but tieing together half a dozen CPAN modules, while still having the ability to scale your code base up a hell of a long way, and the knowledge that it's fairly easy to write highly portable code.
    I think they call these "chutzpah"...
    --
    Fuck systemd. Fuck Redhat. Fuck Soylent, too. Wait, scratch the last one.
  65. Re:BFD? by ballwall · · Score: 1

    If you know what you're doing writing manageable perl is easy. I don't think I've ever seen a CPAN module I didn't readily understand.

    I'm always welcome to examples of the contrary, but people can write crappy code in pretty much any language. Perl just lets crappy programmers take crappy code to the next level.

    But, it's also very good about getting out of the way if you know what you're doing.

  66. Ill-conceived you mean by egarland · · Score: 2

    In the time it took to develop Perl 6, other programming languages have been conceived, implemented, used and abandoned.
    Fortran has sucked since the 1950s. C has sucked since the 1970s. Java has sucked for 13 years. How long should "doing it right" take?

    Theres a lot of revolutionary features in parrot. Its unpopular so its fun to bash it but I expect the .net people are laughing publicly and privately frantically trying to catch up so as to not lose market share permanently. If parrot does nothing else but push widespread adoption of the technologies they pioneered, it'll be huge. If the other guys are asleep at the switch.. I expect it will gain lots of fans.

    The same way people who bash Linux just don't get it, the people who bash parrot just don't get it. Peel back the covers and you'll be impressed.
    --
    set softtabstop=4 shiftwidth=4 expandtab nocp worlddomination
  67. lolcats by tepples · · Score: 1

    If you haven't seen any of those daft kitty pictures with captions, like a cat watching a washing machine with "THIS TELLY R BORING, WHERE IZ REMOTE?" you probably won't get it. I have seen them and I STILL don't get it... perhaps you could enlighten me. They're trying to be cute, sometimes in an ironic sense. Look at these pages: Lolcat@Wikipedia, Caturday@ED, Lolcats@Uncyclopedia, About@I Can Has Cheezburger, and Cats Can Has Grammar. I'd also recommend familiarizing yourself with The Far Side or similar comic panels. (Caturday.com appears unrelated.)
    1. Re:lolcats by fuzzix · · Score: 1

      They're trying to be cute, sometimes in an ironic sense. Look at these pages: Lolcat@Wikipedia, Caturday@ED, Lolcats@Uncyclopedia, About@I Can Has Cheezburger, and Cats Can Has Grammar. I'd also recommend familiarizing yourself with The Far Side or similar comic panels. (Caturday.com appears unrelated.)
      I wouldn't be inclined to ascribe anything as sophisticated as irony to this dross. I get the intent, I just don't grok the gag. It just strikes me as yet another in a long line of lazy web fads crafted to amuse 15 year old stoners on IRC. I was going to try a little experiment to see if I could create one of these images but I'm a little busy right now... busy posting on slashdot, it would seem :)

      I've seen the mildly amusing Far Side - I'm a curmudgeon, not a hermit.
  68. Re:BFD? by chromatic · · Score: 1

    Python's lambda is limited to a single expression, which sucks, but you can always do def _(...) just before use.

    No anonymous lambdas, hmm? That does seem like an advantage to Perl.

    As for closures, Python implements closures properly (properly = as described in SICP, the environment model of evaluation)...

    I have SICP right here; can you give me a reference that says you cannot write to lexicals in proper closures? You can in Perl. (Admittedly you can in Python as well; close over an aggregate and modify an element of that aggregate.)

    Python's parsing of vertical whitespace is not ambiguous.

    Whatever other reason Guido may give for not including multi-line lambdas, he has said:

    Since I find alternative syntax for statement grouping (e.g. braces or begin/end keywords) equally unacceptable, this pretty much makes a multi-line lambda an unsolvable puzzle.

    Language Design Is Not Just Solving Puzzles

  69. Re:BFD? by Anonymous Coward · · Score: 0

    Python has a clean small footprint? Compared to Perl maybe but its got nothing on Lua.

  70. Re:BFD? by renoX · · Score: 1

    True but Ruby 1.9 is a 'developer release' ie not planned for general consumption..

  71. Re:I'm sorry, but... by bvimo · · Score: 1

    No.

    --
    In either case, here at Microsoft, we feel standards are important. And we have fun, too. Doug Mahugh, Microsoft
  72. Re:I'm sorry, but... by Timex · · Score: 1

    Ever thought that I may be an environmentalist because I'm not stupid enough to destroy what lets me and everything I love or like live? Or you prefer to find yourself an excuse to, despite being atheist, be a polluting, gas-wasting redneck? You're working on the assumption that I am a wasteful person, when I am not. Perhaps you're like Al Gore, who talks a lot about the environment, but actually is more wasteful and environmentally UNfriendly than George W. Bush? I do what I can to care for the environment around me. It's the least I can do as a responsible resident of this rock we call Earth.

    You don't understand what a theory is about, and you don't seem to understand belief either. Oh? I know enough to know that the "Theory of Evolution" doesn't warrant the "theory" moniker, because it's a hypothesis, yet to be proven. I have never seen (or heard of) cases where a direct lineage from one species to another is proven. There are ideas floating around, based on the examples that are found, but there's no evidence that one species became another. It isn't reproducible, etc. (Read up on the scientific method, and you'll see what I mean.) From this Wikipedia article, the gist is this:

    1. Define the question
    2. Gather information and resources (observe)
    3. Form hypothesis
    4. Perform experiment and collect data
    5. Analyze data
    6. Interpret data and draw conclusions that serve as a starting point for new hypothesis
    7. Publish results
    8. Retest (frequently done by other scientists)


    The problem with people so anxious to write off the (possible) existence of God is that they seek to make the evidence fit their views, instead of letting their views change in view of the evidence. (The same might be said for some, though not all, people of faith. I think it is as important for one to know why one holds a particular belief or opinion as it is to actually hold it.)

    As for your statement that "faith" is a problem, think a little more about what "faith" is. Think about it the next time you go to sit-- will the chair hold you? How do you know? Is it because the chair held you the last time you sat down in it, or did you actually test it to ensure its stability? Are you assuming it will hold you? That, my friend, is "faith", even if it's in a chair.
    --
    When politicians are involved, everyone loses.
  73. Re:All I really want is..... not a new whale by hey · · Score: 1

    I agree with that. I would add one more thing... compiling.
    Compiling to a bytecode is good enough -- doesn't have to be to the raw metal.
    For years Perl has almost had it bit it still doesn't work :(

  74. Re:I'm sorry, but... by Timex · · Score: 1
    I'm not terribly impressed that you're AC, but let's go over a few points anyway...

    Why would an omniscient god bother creating life? Before it creates the life it already knows exactly what it all will do - and how it'll be rewarded or punished.

    I can't answer for God, but I would guess it's for the same reason that people have children, even though they know that the kids will be hell-raisers from the start. I have three boys of my own, and I knew that they wouldn't be angels all the time, before they were even born. I decided to have them anyway. Personally, I choose to dwell on the (relatively few) times when they do something right. It warms my heart. Maybe it does the same thing to God?

    Why would all all-powerful, all-good, all knowing god allow the holocaust, witch hunts, misc genocides, plagues, etc? Before you say "philosophical problem of evil" note that the holocaust could have been prevented by just changing a few males to females in the womb (hitler, etc) - which would have robbed them of political power but not free will.

    Ah. Well, "simply changing the sex of the person" would actually result in a different person, one way or the other, and thus change the dynamic of the situation that such an action was meant to prevent. Ask any parent if their children had to be taught to lie, cheat, or steal. You'll find that a vast majority (very close to all of them) spent most of their time teaching the children to do right. It may be that there were people that could have prevented such horrible events from happening in the first place, but they failed to "step up" to the task.

    According to the bible, the christian god is a jealous god. Exactly what would an all-powerful, all-knowing, all-present, all-creator god have to be jealous of?

    Mankind has a habit of placing their faith in made-up gods instead of in the One True God. At the time that God described Himself as "jealous", consider what people were doing: making idols of gods, be they imagined or otherwise, and praying to them instead of Him.

    Why would the father of all mankind favor one particular nation over others?

    Likely because of the habits of their forefathers. That's just my guess, though.

    According to the bible we were created in God's image. Ok, why would god need nostrils and toes?

    Look in a mirror and ask yourself the same question. Why does your reflection have nostrils or toes? Is it not your image?

    Why would an all-powerful and all-knowing god have his message put into a book that is so subject to interpretation. So subject in fact, that there are hundreds of christian denominations and congregations that all believe that all others are wrong. So subject in fact that it takes years of bible study at a university to be considered an authority on using the bible to answer some questions.

    I think that a lot of this stems from the fact that most of the people making the doctrinal decisions do not consider the cultural ramifications of "back then" on what why things were done or said, and how it shaped that particular religion. (This applies to Judaism, Christianity, and most any religion, in one way or another.) From a Christian perspective, I know that many "denominations" come about because of disagreements on what certain passages mean or to whom they were written. Some think that a passage was intended to apply to all people in all ages, when it was actually meant only for the original recipients. Sometimes, it's the other way around.

    Why would an all-good, loving god create childhood leukemia?

    My opinion on this is that it is a natural result of the corruption of the human genome over time.

    Why would an all-good, loving god torture the majority of people in the world that die unaware of the christian gospels to eternal torture? Especially when you consider that most people believe in whatever religious i

    --
    When politicians are involved, everyone loses.
  75. Re:BFD? by Anonymous Coward · · Score: 0

    Python is not dumbed down, it's simplified.
    No, Python is dumbed down.

    The introduction of R6RS (Scheme) contains the best insight I could ever find on the design of languages (and software in general): "Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary.".
    Scheme gives you a small number of powerful primitives from which you can build just about anything you can think of. Python gives you the things Guido thinks you should have.
  76. Re:Perl 5 to Perl 6 (mod parent up) by rduke15 · · Score: 1

    I have no mod points today, so someone please mod the parent up from 0 points. His example is perfect, and people who know Perl can think of hundreds like this one.

    I totally agree that the linguist's design made Perl much more readable than many other languages. Provided the author actually knows Perl, and cares to write in a readable way. And also much less boring and more creative, as a side-effect.

  77. With Perl 6 released by einhverfr · · Score: 1

    Duke Nuke'm Forever is just waiting for HURD 1.0....

    --

    LedgerSMB: Open source Accounting/ERP
  78. Re:BFD? by metamatic · · Score: 1

    Right, but all the Ruby 1.9 features will be going into Ruby 2.0 when they're fully baked and the problems are worked out.

    --
    GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
  79. Re:I'm sorry, but... by Anonymous Coward · · Score: 0

    Your answers indicate a quick and simple dismissal of the questions that you clearly don't fully understand. I'd recommend reviewing these questions later when you've got more time to think about them.

    - anonymous because i'm an atheist in america (prefer to avoid that to be known at work)

  80. Re:BFD? by Wiseman1024 · · Score: 1

    No anonymous lambdas, hmm? That does seem like an advantage to Perl. It has anonymous lambdas which are quite nice-looking (something that cannot be said of most of Perl's features). However, they are limited to expressions (one or more through progn-like functions).

    I have SICP right here; can you give me a reference that says you cannot write to lexicals in proper closures? It doesn't say you should not or should be allowed to. Python's closures are still implemented according to the environment model, only you don't have define and set!, but =. In the next major version, you'll get a feature that will make them work like you want (though it's not taken from Scheme either).

    And regarding lambda, I don't give a damn about what Guido said, the obvious solution of having its contents wrapped by INDENT and DEDENT tokens is clear and simple. Probably, he just doesn't like how it looks when DEDENT is followed by a comma.
    --
    I was about to say 13256278887989457651018865901401704640, but it appears this number is private property.
  81. Re:I'm sorry, but... by Wiseman1024 · · Score: 0, Flamebait

    You're working on the assumption that I am a wasteful person Which is, statistically (and especially coming from someone who just mocked it) easier to defend than working on the assumption that I'm some sort of theist atheist.

    The problem with people so anxious to write off the (possible) existence of God is that they seek to make the evidence fit their views, instead of letting their views change in view of the evidence. (The same might be said for some, though not all, people of faith. You know, your unfair treatment of the unblind ones kind of disqualifies you from this conversation, especially if we're trying to use logic.

    Even if the evolutionary theory is actually closer to an hypothesis (and there'll be people who will argue against this, but I don't need to), a sound, probably incomplete (numerical probability) hypothesis is better than a cheap wildcard solution to every problem that can't stand on its own.

    As for your statement that "faith" is a problem, think a little more about what "faith" is. Think about it the next time you go to sit-- will the chair hold you? I don't know for sure, and I sure as hell don't have blind faith on that (if I don't have faith on Santa, the tooth fairy, or your favourite imaginary friend, how would I have faith in a chair!?). I sit on it because I need to, and because it's likely that it'll stand my weight. Likewise, I go out because I need to, and because it's likely that I won't get robbed or killed, though I would be an idiot if I had such faith. Faith is for idiots. Smart people work on informed guesses, and never convert initial assumptions into facts by art of magic.
    --
    I was about to say 13256278887989457651018865901401704640, but it appears this number is private property.
  82. Re:I'm sorry, but... by Timex · · Score: 1

    Your answers indicate a quick and simple dismissal of the questions that you clearly don't fully understand. I understand them quite well, thank you. Your questions are cookie-cutter from those that don't want to believe in God. They are really not so hard to answer, given perspective. I used to ask the same questions until I was in my mid-20s, when I actually set out to find answers that made sense. I asked questions from people of faith and people who were agnostic or atheists. After a few years, I made my decision, and I would encourage you to do the same: stop taking a position because others are telling you that God doesn't exist, and see for yourself. Find out why people believe what they do (honestly!), and see how it stacks up against what you learned in grade school.

    Perhaps you are just trying to ignore the fact that it's entirely possible to come to a position of having faith in God without being a sheep?

    - anonymous because i'm an atheist in america (prefer to avoid that to be known at work) Where do you work? A church? There isn't any place that I can imagine that your faith (or lack thereof) would really matter.
    --
    When politicians are involved, everyone loses.
  83. Re:PERL 6 AS SHITTY AS PERL 5 by Anonymous Coward · · Score: 0

    Lisp and Smalltalk developer here.
    So, you use two allegedly-perfect languages that the real world rejected in favour of Perl. Nope, can't possibly imagine any reason why your opinion of Perl could ever be considered subjective...
  84. C is on the line. by The+Monster · · Score: 1

    Some people describe C as a "universal assembler", because it's designeed to fit in at the lowest level that doesn't directly describe the hardware, so as to maximize the utility of its portability. It is therefore either the highest low-level language, the lowest high-level language, or it straddles the line. I'd go so far as to say that it defines that line.

    --

    [100% ISO 646 Compliant]
    SVM, ERGO MONSTRO.

  85. Patience ? Meh by billcopc · · Score: 1

    I haven't really been paying attention to Perl 6 development, largely because it's not here yet, and I have more pressing things in front of me.

    That said, I took a look at this Parrot thing, which was news to me, and it sounds pretty darn decent. A quick perusal of the FAQ was enough to convince me these guys know what they're doing.

    Perl: it's a handy tool. I'm not obsessed with it, but I like it. If Perl 6 allows me to do things quicker and/or easier, then I'll like it too. One thing to keep in mind is that people already know Perl. It's a heck of a lot easier to learn a few new features and constructs, than to migrate over to a whole new language. I don't do Ruby nor Python (yet), and I'm not so easily wowed by glorified build scripts like Rails. Perl just might be the one for me.

    --
    -Billco, Fnarg.com
  86. Re:I'm sorry, but... by Anonymous Coward · · Score: 0


    > I understand them quite well, thank you. Your questions are cookie-cutter from those that don't want to believe in God.

    No on both accounts. Go back to the second question that deals with the problem of good or evil. The traditional answer to this question is to say that god couldn't intervene since that would destroy free will. However, this stock reply fails to answer why god would just slightly change the situation in order to avoid 6,000,000+ deaths.

    Examine the rest of the question more closely in a similar manner.

    And as far as not wanting to believe in god - the issue typically isn't about wanting to believe in god - it's about confidence in faith as a way of knowing the truth.

  87. Why? by Anonymous Coward · · Score: 0

    Parrot is register based, not stack based. Why?
    I've read the official reasons, they're ridiculous. I got the distinct impression the devs hadn't read one page of Java or .Net VM specs. Every lame reason given against stack machines is answered very plainly in either spec. I very honestly believe the decision to run with a register machine is because Java and .Net didn't.

    Perl has been developed using Haskell Why? ...news to me.

    I have a general idea why it's taking so long... there are too many "because we can"s, "I feel like it"s, and "just because"s.
    1. Re:Why? by chromatic · · Score: 1

      I very honestly believe the decision to run with a register machine is because Java and .Net didn't.

      I believe that a lot of the decision is because Perl 5's stack-based architecture is the source of much frustration.

      I got the distinct impression the devs hadn't read one page of Java or .Net VM specs.

      .Net VM of course; even if there were a time machine available to read those specifications, I wouldn't touch encumbered specs if I had any intention of working on a F/OSS project.

      As well, you're assuming that none of the Parrot developers have read some of the studies done on optimizing the JVM by switching to a register-based architecture, such as Shi, Gregg, & Beatty 2005.

      Why? ...news to me.

      If the last time you checked in on the project was before 2005, your opinions are very out of date.

    2. Re:Why? by Evets · · Score: 1

      Because Java and .Net came up with solutions doesn't mean that there isn't another answer to the question. Perl has taken different directions than the common or obvious answer would provide in the past with some very strong results.

      As far as Haskell, I don't know the reason why.

      "Because we can" and "I feel like it" are definitely the impression I do not receive from the perl developer community. What I see are people suggesting things, people having intelligent debate about them, and I see people implementing the results of those debates - both with CPAN modules and with perl itself.

      Why not pose your question on the Perl developers list or over at useperl. I'm sure you would get a much better response than what I can provide.

  88. No way... by Anonymous Coward · · Score: 0

    Switching may not be that bad, since they built in an incremental mechanism (the same mechanism that lets you put code from ANY two supported languages into the same source file). You could take your 99%-Perl-5 source and add a Perl 6 segment to it, and over time make it fully Perl 6. Holy ****ing ****, you can't be serious. This is exactly the kind of crap you should just keep to yourself, and hope it doesn't become a problem later. You should not be trumpeting that particular "feature" so loudly.

    The Perl developers have lost their GD minds.
  89. Re:I'm sorry, but... by Anonymous Coward · · Score: 0

    - anonymous because i'm an atheist in america (prefer to avoid that to be known at work)
    HAHAHA, go die in a fire, you pathetic sack of shit.
  90. Re:BFD? by ajs · · Score: 1

    "...while having code so boring anyone can maintain it..."

    I hope that I understand that wrong and that you don't consider unintelligible, unmaintainable, code 'interesting' in a good sense. First off, no, that's not what's being said.

    Second, good code isn't always easy to maintain. I stared at a system at work (won't say which employer) and was humbled. It was code. I understood all of the syntax. It was fairly clean code. It was impossible for me to fully understand without hitting stacks of reference texts (not language texts). It took a team of people to maintain that one person's code. It was worth it. It did what everyone thought impossible - the best and brightest in the industry had tried and failed for many years.

    It was also code that wasn't really practical in most languages. It required a set of language features that aren't easily found in today's Algol/C-derived universe of high-level languages.

    Perl 5 offers some features that other languages typically don't (the integration between code and regular expressions comes to mind). These aren't killer features in the sense that any large system needs them in order to function, but they are quite useful. Python embraces a more limited set of features, but results in code that's easier to understand. This can be good for some sorts of environments, but in my experience, good developers don't need the hand-holding, and bad developers will write noise in anything.

    Perl 6 offers a wider universe still of language features harvested from Smalltalk, LISP, Haskell and other places that many useful language tools have developed. Python is going the wrong way. Reducing language features to a core that can be maintained by even the lowest-common-denominator programmers isn't helping to solve the hard problems (hard problems can still be solved and solved well in Python, but the best solution to a problem isn't always available).

    All that said, I find it frustrating that Perl 6 took center stage in this article... the really interesting part is the compiler development tools that are now a core part of the distribution. I've played with them a bit, and WOW... they really are amazingly powerful once you understand them. PGE alone is an oasis in a desert of painful-to-use compiler-writing tools.

  91. Re:I'm sorry, but... by Anonymous Coward · · Score: 0

    dick

  92. Re:I'm sorry, but... by DragonWriter · · Score: 1

    After that, remember that believing in Evolution requires that one be worse at math than one thinks he is, and it also requires that one have more faith than the much-maligned Christian.


    I'm a Christian, too, and that's just plain wrong. Believing in evolution (either in the sense of "believing it is true", or "believing it is the best model yet proposed for the way the world works in the area it covers", the latter being the usual sense of "belief" when discussing scientific theories, which is rather different from religious belief) requires neither of those things.
  93. Re:I'm sorry, but... by DragonWriter · · Score: 1

    I know enough to know that the "Theory of Evolution" doesn't warrant the "theory" moniker, because it's a hypothesis, yet to be proven.


    Then you don't know the first thing about science, which is that no model in science is ever proven, it is either tested and disproven or tested and yet to be disproven. And those tests are conducted by generating predictions from the model and attempting to verify them.

    (You also don't seem to understand that "evolution" isn't, properly speaking, a single theory [or hypothesis], it is a body of theory, an entire area of research, and that the current models in evolution are, indeed, theories that have made predictions, and those predictions have been examined and not disproven.)

    I have never seen (or heard of) cases where a direct lineage from one species to another is proven.


    Again, you don't understand science. Science doesn't prove explanations, it draws testable conclusions from models, tests them, and rejects the model if the test fails*. Since its always possible that a model has implications not previously understood, and since future tests built on those implications may yet fail, nothign is ever proven in science, a model is either rejected or accepted provisionally.

    There are ideas floating around, based on the examples that are found, but there's no evidence that one species became another.


    Actually, there is considerable evidence that new species have arisen from existing species, including directly observed speciation. Of course, the tests of hypotheses whose subject matter is not directly observable are somewhat indirect, but that doesn't change the process, or its validity.

    It isn't reproducible, etc.


    The tests of various elements of evolutionary theory are, in fact, "reproducible, etc." The understanding that a particular set of more modern species evolved from a particular common ancestor species in the distant past may be a conjecture, a hypothesis, or a theory (there are all kinds of predictions that are testable that can be drawn and tested based on such a belief, and often they have been; some, however, have indications in the evidence but no tests proposed or made, and so may only be conjecture.)

    But you make a category error if you confuse the fact that some specific widely-seen-as-likely chains of descent are not tested with the idea that evolutionary theory is itself mere speculation.

    * this is a bit of a simplification; in fact, models which are disproven by testing generally continue to be dominant with the caveat that they fail in certain conditions for which there is no explanation until a new model is developed which explains the results for which the old model fails and the results for which it succeeded, then the new model becomes the dominant model.