Slashdot Mirror


The Perl 6 Advent Calendar

An anonymous reader writes "Larry Wall wasn't joking when he said that Perl 6 would be ready by Christmas. Perhaps not this Christmas, but that hasn't stopped a group of people (including head Rakudo developers Patrick Michaud and Jonathan Worthington) from putting together an Advent Calendar, featuring one cool Perl 6 feature every day until Christmas. Topics currently covered include how to get and build Rakudo (the most actively developed and progressed implementation of Perl 6) and the new Metaoperators. For those wondering when Perl 6 will be finished: Rakudo will be having its official 'production release' (dubbed Rakudo Star) April 2010."

36 of 160 comments (clear)

  1. Word on the street... by ghostis · · Score: 4, Funny

    ... is Duke Nukem Forever is being rewritten in Perl 6.

    --


    Computer Science is all about trying to find the right wrench to bang in the right screw. -T.Cumbo?
  2. Coming of the (perl) Messiah by negatonium · · Score: 2, Funny

    Waiting for Perl 6 seems a lot like waiting for the Messiah to arrive. And even when (if) it happens there'll be some people saying "Nope. Not the right one... Keep looking...."

    1. Re:Coming of the (perl) Messiah by Chandon+Seldon · · Score: 3, Insightful

      If you compare the Perl6 timeline to the Haskell timeline, you'll see that things aren't really going all that slowly. Building a good implementation of a complex programming language takes time.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    2. Re:Coming of the (perl) Messiah by convolvatron · · Score: 3, Funny

      yes, but you still haven't explained why perl 6 is taking so long

    3. Re:Coming of the (perl) Messiah by ThePhilips · · Score: 2, Insightful

      But Python 3000 is already out, as Python 3.0, while Perl 6 is not.

      Technically, Perl 6 is long time out: specification was out somewhere around 2005. Because the Perl6 isn't a software package (like Perl5), it is a language standard.

      The other question is that there are no implementations of the standard yet...

      And even then, Perl5 serves it's purpose so perfectly, that I personally atm see no real benefits to even toy with Perl6.

      --
      All hope abandon ye who enter here.
    4. Re:Coming of the (perl) Messiah by RDW · · Score: 3, Informative

      'The other question is that there are no implementations of the standard yet...'

      The Rakudo guys have now committed themselves to a useful/usable release (if not a complete implementation of everything in the standard) in Spring 2010 (the target is April):

      http://use.perl.org/~pmichaud/journal/39411

      They intend this to be a release which 'application writers will feel comfortable enough to start using in their projects'.

      This probably helped:

      http://news.perlfoundation.org/2008/05/tpf_receives_large_donation_in.html

      Here's where they are now:

      http://rakudo.org/status

      http://github.com/rakudo/rakudo/blob/master/docs/ROADMAP

  3. This has taken too long by physburn · · Score: 2
    Is it just my memory, or is this over five years on one upgrade. An upgrade with too many changes, apocapses, and major changes in grammer and usage. I'm getting old, and don't really want to relearn my languages just to stay put. So keep on delaying perl 6, and i can safely use perl 5 for the rest of my life.

    ---

    Perl Programming Feed Feed Distiller

    1. Re:This has taken too long by FooAtWFU · · Score: 4, Informative
      Perl 5.10.0 was out this year, and introduced snazzy new features like the defined-or operator and easier state variables. It's not like they've been neglecting the rest of the language, and it's not like it's going to be difficult to activate backwards compatibility.

      I'd worry more about the continuing relevance of Perl in a niche which has come to be dominated more and more by PHP (eww!) and Ruby in recent years. It's not going away, certainly, but its relevance to the future of computing may be somewhat limited despite its technical merit.

      --
      The World Wide Web is dying. Soon, we shall have only the Internet.
    2. Re:This has taken too long by Trepidity · · Score: 5, Funny

      More than that--- Perl 6 was announced 9 1/2 years ago! Even O'Reilly's Perl 6 Essentials is now 6 1/2 years old, and some Perl 6 books are into 2nd editions.

    3. Re:This has taken too long by RDW · · Score: 5, Informative

      Perl 6 is a new language, not just an upgrade. Perl 5 has not been neglected, and continues to receive updates and new features (some of them originally developed for Perl 6). The plan is to continue Perl 5 support and development indefinitely, irrespective of the status of Perl 6. And of course Perl 5 has its own advent calendar, which this year focuses on interesting stuff you can do with various CPAN modules:

      http://www.perladvent.org/2009/

    4. Re:This has taken too long by ThePhilips · · Score: 2, Interesting

      It's not going away, certainly, but its relevance to the future of computing may be somewhat limited despite its technical merit.

      That's silly. Programming languages always were and will always be transient.

      Compare Perl1 to Perl5 (that actually easy since change logs are delivered with every Perl version) and see how language have changed over the time. Like-wise PHP or even C.

      Languages evolve along with tasks they are used to solve. Sometimes obviously a branch of evolution falls off and language becomes a thing of past. And that can happen to any language, because we still can't predict with certainty problems of tomorrow.

      Corollary, niche languages have staying power coming from the niche they occupy. Because niches evolve at much slower pace compared to mainstream technologies, thus has lower risk of being forgotten fast.

      And I personally do not think that Perl has its own strong niche. Probably only a "*NIX shell on steroids" - that's how I use it. As long as *NIX shell would exist, I would use Perl to automate large chunks of logic and information analysis which are hard/impossible to do in shell, but do not justify writing/maintaining a C/C++ program for.

      --
      All hope abandon ye who enter here.
    5. Re:This has taken too long by RDW · · Score: 4, Interesting

      Well, the first line of the first Google hit for 'Perl 6':

      http://dev.perl.org/perl6/

      says:

      "Perl 6 is a new language. Perl 5 and Perl 6 are two languages in the Perl family, but of different lineages. There is no current release schedule for Perl 6."

      Some people, of course, may still find this confusing. These people should use Python :-)

      A longer answer (together with several chapters of new Perl 6 book written by some of the developers) is here:

      http://cloud.github.com/downloads/perl6/book/book-2009-11.pdf

      "Some might ask, 'Why call it Perl if it's a different language?' Perl is more than just the vagaries of syntax. Perl is philosophy (there's more than one way to do it; easy things easy, hard things possible); Perl is custom (unit testing); Perl is architectual edifice (Comprehensive Perl Archive Network); Perl is community (perl5porters, perl6-language). These are things that both Perl 5 and Perl 6 will share to varying degrees. Also, due to Perl's habit of stealing good ideas, Perl 5 and Perl 6 will converge in some areas as Perl 5 borrows ideas from Perl 6 and vice versa."

    6. Re:This has taken too long by jeffstar · · Score: 2, Insightful

      perl and nice don't belong together, especially if you bring CPAN into the sentence.

      When I have some retarded task that has to be done, like taking a web form and inserting the data into a PDF that has to be emailed to a few different people, or retrieving some data via FTP, verifying that it is valid and then updating some excel worksheets and emailing the new plots around as in-line images in an html formatted email, PERL can do it.

      maybe PHP, ruby and python can talk to open office, ms office, do SMTP with TLS or SSL, and insert data into a PDF too. I wouldn't know because once I started with perl I never needed anything else for glue type programs.

      Maybe glue is perl's niche?

    7. Re:This has taken too long by chromatic · · Score: 2, Informative

      Shipping is a feature.

      I'm going to release the 24th stable monthly version of Rakudo Perl 6 in a couple of weeks. How many more releases do we have to release to meet that mythical bar of "shipping"?

    8. Re:This has taken too long by chromatic · · Score: 2, Informative

      [Does] anyone besides debian-experimental bother?

      Fedora 12 includes Rakudo Perl 6.

      For comparison, Fedora 13 will likely include Python 3.

    9. Re:This has taken too long by wayland · · Score: 2, Informative

      Perl 6 is a specification, not an implementation.  Rakudo is one implementation, but there are others (SMOP springs to mind).  I guess I think that Perl 6 is "the stuff you liked about Perl 5, but more of it".  Oh, and better OO and Grammars.  Mmm, grammars :). 

    10. Re:This has taken too long by Draykwing · · Score: 2, Informative

      In addition to what wayland++ said, there's also the fact that the Perl 6 implementation on Parrot, called Rakudo, is intended to be able to mix programming languages with great ease. For example, one syntax that's been bandied about is this:
      use v6;
      # Perl 6 goes here
      {
      use P5;
      # Hey, now I'm writing Perl 5 code!
      }
      # I'm writing Perl 6 again!

      The amazing thing is that the object models will be able to interact, which means that CPAN modules will be trivially usable. That's a different kind of interop from what I showed above, and it's working (to a degree) now. Of course, the languages it works between are Cardinal (Ruby on Parrot), PIR (Parrot's native language), and Rakudo (Perl 6 on Parrot). The syntax is currently like this:
      use opengl:from<PIR>;

    11. Re:This has taken too long by Luyseyal · · Score: 2, Funny

      Maybe glue is perl's niche?

      I'm sure there is a "turning camels into glue" joke in there somewhere.

      -l

      --
      Help cure AIDS, cancer, and more. Donate your unused computer time to worldcommunitygrid.org. Join Team Slashdot!
    12. Re:This has taken too long by ajs · · Score: 2, Informative

      "Perl is more than just the vagaries of syntax. Perl is philosophy; Perl is custom; Perl is architectual edifice; Perl is community."

      And Perl6 is a jump over the shark.

      That's meaningless. You could say that about any new technology (I'm sure someone said it about the DVD).

      I've seen snippets of Perl6 and it does indeed look rather different from previous versions of Perl.

      In some ways yes, and in some ways, no. Perl 4 looked like this:

      require "foo.pl";
      local($foo);
      $foo = 10;

      Perl 5 looked like this:

      package Foo;
      my $foo = 10;

      Perl 6 looks like this:

      module Foo;
      my $foo = 10;

      You tell me which was a larger leap.

      Perl 6 is, conceptually, a massive shift and arguably a language of its own. But in terms of raw syntax and ease-of-learning for current Perl 5 users, it's not as large a change as one might have thought.

    13. Re:This has taken too long by ajs · · Score: 2, Insightful

      Is it just my memory, or is this over five years on one upgrade.

      Perl 6 is not an upgrade to Perl 5.

      This is something that many folks misunderstand, and frankly, it's a failure of the Perl development team to correctly communicate (an open source project with poor PR skills... shocking). Perl 6 isn't a new language either, though you'll find many who will say that it is (even within the project, where it's a sort of shorthand way of interrupting the long conversation that ensues if you don't call it a new language).

      What Perl 6 is is the logical progression of Perl into the realm of modern, highly dynamic language. That means it's drawing on the concepts that come from many popular (and some not so popular) modern languages and blending them in a way that has never been done before. False starts, long implementation paths and re-designs triggered by new insights are par for the course.

      But I want to take exception to the idea that "this has taken too long." How long is too long? If Perl 6 were released 2 days after you died of old age, would that be too long? What about 10 years from now? 5? 2? What's it mean to take too long? There were an abundance of languages that were popular when Perl 6 work started and there will be an abundance of them when Perl 6 lands. What Perl has lost is momentum. Perl 6 will not have the easy conversion of a massive Perl user base to start with, but then Perl didn't have that when it started.

      Perl was a success because it solved a problem. It gave developers a tool for writing simple programs quickly without sacrificing features that they depended on in lower level languages such as binary data, arbitrary size strings and system call access, the three of which did not, as far as I can recall, exist in any other high level language at the time, outside of Lisp and unlike Lisp, Perl felt comfortable and familiar to the average Unix user at the time.

      What will Perl 6 have going for it?

      It will be the first language to give you the rich dynamic OO features of Ruby and Smalltalk, blended with the self-hosted language introspection of Common Lisp and the still-familiar feel of Unix/Linux systems all on a portable and language-neutral VM. Will that be a draw to the same sorts of users that cared strongly about Perl 5? Some yes and some no, but there will be a brand new segment of the programming community that will care strongly about Perl 6 features.

      That's really all that matters, not how long it takes.

  4. still relevant? by spongman · · Score: 3, Insightful

    from an outsider's view (I have NO perl experience, and i intend to die like that if at all possible) it seems like perl has slowly moved from an ubiquitous scripting language to a fringe research project over the last few years. it reminds me somewhat of the pascal/modula-2/oberon phenomenon. do perl afficionados think that this new version will enjoy the success that its predecessors have had?

    1. Re:still relevant? by bsDaemon · · Score: 3, Interesting

      Perl 6 is NOT Perl 5. Perl 5 has been under active development, introducing several new features. CPAN is constantly getting new libraries and whatnot, which and its possible to throw together quick hacks and elegant solutions in Perl, depending on what you want to do.

      Maybe Perl is more for a systems administration language (it started out that way) than a software development language, but that's what I need, and that's why I like it. Perl combines the features of awk, sed and shell scripting with those of other languages as well, wraps them up in a C-like syntax, but removes all the hard syntactic bits of C that make it harder for processing strings, or just generally cumbersome.

      For me, Perl 5 is perfect. It's pretty much the language that I would have designed if I designed programming languages -- it i well suited to the tasks I do, the problems I tackle, and is expressive in the same way that I think about writing code. That said, I don't give a flying fuck about Perl 6 at all and really have no interest in it at all.

    2. Re:still relevant? by jepaton · · Score: 5, Interesting

      Yes, Perl is still relevant to a number of software developers and systems administrators.

      It is an ideal language for software developers who want to use metaprogramming techniques (code generation; domain specific languages), text processing or data conversion, or automation of software development process. Perl 6 will have a full grammar engine (for parsing - like having YACC/BISON built in) which will make text processing even easier than before. The use of a scripting language for these tasks leaves the source code more accessible than compiled languages, which is an advantage to software developers who can adapt the code more readily than a compiled project.

      Whether Perl 6 will be used much for primary software development I don't know. My day job is C programming for embedded systems where Perl is not suitable. Desktop programming is more likely to be in C++ or C# where the standard libraries are huge and the software development ecosystem is more developed.

      The primary audience for new Perl, in my opinion, is expert software developers who need a powerful/succinct language to implement solutions to problems in the manner they think. Perl 6 therefore supports just about every programming paradigm known to mankind. What makes Perl great for software gurus is what makes it an awful language for programming newbies.

      I will be learning Perl 6, not because I will use it much, but because I will discover new ways to think about problems. Oh, and it'll be fun.

      Jonathan Paton

  5. No, Dont Bother by omb · · Score: 2, Insightful

    Or hold your breath either

    Facile discussion of languages on /. is getting so old.

  6. perl 5 versus ruby versus perl 6 by bcrowell · · Score: 4, Interesting

    I do most of my coding in perl 5. Perl 5's implementation is rock-solid, and CPAN has an absolutely fantastic selection of useful modules for perl 5.

    If I was going to change to something other than perl 5, I would need some motivation. The clearest motivation I can see is that OOP in perl 5 is ugly and bolted on.

    With that motivation, I have dabbled in ruby enough to write one nontrivial app. The thing is, perl 5 still beats the heck out of ruby in terms of implementation and libraries. As an example of this, in my ruby app I wanted to use some regex features that were not available in ruby 1.8, so I ended up using ruby 1.9. But ruby 1.9, and its regex engine, are relatively raw and buggy, and I ended up having serious problems that I had to work around. (Yes, I submitted a bug report. No, it hasn't been fixed yet.)

    AFAICT, the main advantage of perl 6 over perl 5 is the same as ruby's main advantage over perl 5: OOP is implemented in a nicer way. The thing is, the disadvantages are even more magnified, because it's so raw and incomplete.

    My current reaction to the situation is to plan on continuing to code in perl 5 until, say, 2015, and then check back to see how much ruby and perl 6 have improved by then.

    1. Re:perl 5 versus ruby versus perl 6 by Anonymous Coward · · Score: 2, Insightful

      Why would anyone want to use a glorified VB clone? I am sick and tired of seeing 'rock-star' Python and Ruby programmers trying to shove the new shiny toy in everyone's face. People have been using Perl for 20+ years, and they'll still be using it for 20+ years after Ruby and Python are a distant memory.

    2. Re:perl 5 versus ruby versus perl 6 by slimjim8094 · · Score: 4, Insightful

      How old do you think Python is? Look it up ... ... ...
      It's 18 years old. In fact, it's only 4 years younger than Python.

      I suppose you think Google, CERN, and NASA are stupid to be "using a glorified VB clone"?

      Maybe it is you that is wrong.

      --
      I have developed a truly marvelous proof of this comment, which this signature is too narrow to contain.
    3. Re:perl 5 versus ruby versus perl 6 by wayland · · Score: 2, Interesting

      To me, the things that keeps me coming back to Perl 6 is that it will have built-in grammars.  That may just be because of the kind of apps I try to write, though. 

    4. Re:perl 5 versus ruby versus perl 6 by abulafia · · Score: 2, Funny

      How old do you think Python is? Look it up ... ... ... It's 18 years old. In fact, it's only 4 years younger than Python.

      I take it then that it is some sort of 4-dimensional Oroboros?

      --
      I forget what 8 was for.
    5. Re:perl 5 versus ruby versus perl 6 by plasticsquirrel · · Score: 5, Funny

      Why would anyone want to use a glorified VB clone? I am sick and tired of seeing 'rock-star' Python and Ruby programmers trying to shove the new shiny toy in everyone's face. People have been using Perl for 20+ years, and they'll still be using it for 20+ years after Ruby and Python are a distant memory.

      Why would anyone want to use a glorified Unix Shell? I am sick and tired of seeing 'rock-star' Perl programmers trying to shove the new shiny toy in everyone's face. People have been using Lisp for 50+ years, and they'll still be using it for 50+ years after Perl is a distant memory.

      Now get off my lawn.

      --
      Systemd: the PulseAudio of init systems
    6. Re:perl 5 versus ruby versus perl 6 by mypalmike · · Score: 4, Funny

      (problem (((car 'some-apostrophe-shit) lisp (with #letrec foo * (lambda x) (x unmaintainable +))) parentheses (nobody-can-read-this-crap !) (worse-than (cons perl))) (interesting-cs-teaching-language cdr (though))))))))))))))))

      --
      There are 0x40000000 types of people: those who understand 32-bit IEEE 754 floating point, and those who don't.
  7. Re:I first heard Perl 6 when I was in high school by chromatic · · Score: 3, Informative

    Perl 6 still hasn't been released.

    We've released a new version of Rakudo Perl 6 every month since December 2007. That's 24 months in a row.

  8. Perl Advent calendars... by MSittig · · Score: 2, Informative

    A Perl Monks poster has collected the address of 5 different Perl(-related) advent calendars:

    http://www.perlmonks.org/?node_id=810472

    As he says, a "great tradition".

  9. The opposite is true by e70838 · · Score: 2, Insightful

    Perl for people with no background in computer science ? Are you serious ?
    My experience is that people who do not like Perl are generally weak in computer science. Perl internal is more similar to lisp than to shell. For example, closures are very effective in Perl.
    All the elegance of Perl need a good level of computer science to be fully understood.
    The sysadmins I have met that had weak background in computer science hated Perl and were very proud of their shell hacks.

    For me, the smart sysadmins solves quickly and elegantly the problem with Perl before the IT departement finished writing the specification of a steam engine.

  10. Perl is Elegant by tjwhaynes · · Score: 4, Interesting

    Perl is one of those languages that most people meet in passing because someone else has hacked up a script to get something out of some file. Which is sad, because understanding what makes Perl different from other languages and why it is often a better choice for wrangling data isn't going to be obvious in one lousy foreach search-and-replace hack. And most people exposed to perl scripts in this manner fall over on the difference between scalar and list context and never discover why perl expressions like $lookup{$term}++ will save them years of work, while making their analysis scripts go faster.

    I write Perl modules day in, day out to cope with processing DB2 internals in an attempt to model and improve them. Object-oriented Perl makes this easy, fast and effective. Closures (which I'm sure aren't understood by 90% of the Slashdot community) back this up being able to create anonymous subroutines with data attached which can be processed later. Perl is also effective for parallel task analysis - I have modules for jobserving many tasks across multiple machines and Perl threads make it easy to fire a task off while something else is done.

    Perl is an essential part of data analysis for any serious volume of unstructured data. However, I'm not unhappy that it is little understood. Perl makes in the impossible merely hard. If everyone knew how to leverage Perl, I wouldn't have so much fun.

    Cheers,
    Toby Haynes

    --
    Anything I post is strictly my own thoughts and doesn't necessarily have anything to do with the opinions of IBM.
  11. Non-Obligatory plug by sonamchauhan · · Score: 2, Informative

    To test out Perl 6 in an IDE environment, try Padre.
    http://padre.perlide.org/download.html

    NOTE 1: Install the 'Padre Standalone Plus Six' package, not the 'Padre Standalone' package)

    NOTE 2: If you install it on windows, ensure you have a few hundred MB to spare on c:\ -- the drive targeting for the Install MSI does not work properly yet.