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."

5 of 229 comments (clear)

  1. 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 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.

  2. 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.