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

stevieb has asked for the wisdom of the Perl Monks concerning the following question:

I'm really liking the new language. I've played with it in a limited capacity, and am learning new bits every day.

I'm quite interested in finding out from others that have been exposed to it what their thoughts are.

UPDATE: If you want to get going on Perl6, I found this link through the Perl6 link in moritz's signature. Just ensure that you use the first link in the howto so that you download 'Rakudo Star'. Don't be frightened off just because the tarball is on github; Git is not needed whatsoever. Just download the tarball, extract it as you would anything else, and then jump to the "Building Rakudo from the sources requires..." paragraph of the "Building the compiler from source" section.

  • Comment on If you've tried it, what are your thoughs on Perl6?

Replies are listed 'Best First'.
Re: If you've tried it, what are your thoughs on Perl6?
by masak (Scribe) on Apr 11, 2012 at 11:43 UTC

    I've been a day-to-day Rakudo user since 2008. Here are the things I really like:

    • Classes and roles, available out-of-the box.
    • where clauses and subtypes. Pretty.
    • Grammars. Easy to parse just about anything.
    • Meta-operators. It's fun and easy to think composite thoughts with a single line of code. And it becomes second nature quickly. I miss it in Perl 5.
    • Multisubs and multimethods. Just plain convenient.
    • Gradual typing. The types stay out of the way when I don't need them, but are there when I want it. I can choose to give a variable a type or not.
    • Neater syntax generally. Some things just read nicely in Perl 6. I never thought Perl 5 would feel like boilerplate, but in some cases it does after writing lots of Perl 6.

    Things I still miss:

    • Heredocs. Niecza has them. Rakudo doesn't.
    • Shaped arrays and hashes a la Synopsis 9. Some multidimensional primitives related to this.
    • Speed, generally. We got faster at startup recently (jnthn++), and it makes a great difference. Niecza is faster than Rakudo once it gets going. But we still have ways to go in terms of performance.
    • Call me impatient, but I want the vision of mutable grammars, and a plug-and-play Perl 6 where you can add your own parsing rules or sublanguages, to come to fruition as soon as humanly possible.
    • Things need to get a lot more polished. A lot of the bits are in place now, but we're disorganized in terms of documentation and in terms of helping a newcomer become productive. We're very grateful for all the feedback we get from newcomers; the early adopters sandpaper the barrier to entry and make it easier for their successors to just pick things up.
      Things I still miss:

      Is your list things that you wish were in the language, or things you wish the implementations had?

      Shaped arrays and hashes a la Synopsis 9.

      Could you briefly explain what "shaped arrays" are? I've never heard that term, and Synopsis 9 is pretty dense.

        Is your list things that you wish were in the language, or things you wish the implementations had?
        • Heredocs: implementation missing.
        • Shaped arrays and hashes are specced, but haven't been implemented by anybody yet. So while it's mostly a question of the implementation, the spec will need to be tuned to respond to feedback from the compiler writers
        • Speed: an implementation thing, although of course language design decisions influence it too
        • Mutable grammars: needs work on both fronts.
        • polishing: everything (compilers, specs, docs, module installers, ...)
        Could you briefly explain what "shaped arrays" are? I've never heard that term, and Synopsis 9 is pretty dense.

        Arrays where you can exactly declare the dimensionality, index ranges and types. For example you could declare a two-dimensional array where both indexes run from 0 to 2 and and only store Num objects -- the perfect base for Matrix arithmetics.

        Those predeclarations allow both type checking and much more compact storage.

Re: If you've tried it, what are your thoughs on Perl6?
by snape (Pilgrim) on Apr 11, 2012 at 07:32 UTC

    I think Perl 6 is an amazing language. Many of the features mentioned of Perl5 are present in Perl6. In some ways it is more readable than Perl 5 versions. Majority of the punctuation variables are not present and the regex has become more sanitized. I think Perl 6 has a rich grammar. Features that are present in Perl 6:Perl6 Features. In comparison to other languages, it has all important features.

Re: If you've tried it, what are your thoughs on Perl6?
by gnosti (Chaplain) on Apr 11, 2012 at 07:13 UTC
    Okay, I'll bite, speaking as one who has barely dipped into those rarified waters.

    Perl6 appears to solve a lot of problems inherent in Perl5's design, and introduce loads of powerful language features.

    As I solve most of my practical (usually pedestrian) problems using CPAN modules, I'm unlikely to spend much time with Perl6 in the near future, however I do benefit from the cross-pollination of the two languages.

    So, if you're interested in exploring the possibilities of languages and language design, Perl6 has a lot to offer. If you can map Perl6 features to your problem domain, of course it has a lot to offer.