[Ottawa-pm] Perl6 yay!!!!!!

Allan Fields allan.fields at gmail.com
Sat Jul 23 18:32:33 PDT 2011


Perl6 is something that people should really take a look at.  Even if
it is not done, there are some grammar and other features which
already show a lot of promise.
I celebrate the dev teams dedication to this new language.


= My evaluation:

I found rakudo-star works quite well from my two compile targets:
linux-centos-x86_64 and windows-cygwin-x86_64.  The cygwin port
doesn't seem to work from a recent install.  The source compiles went
pretty much flawlessly.  However, I don't want to suggest perl6 is
ready for prime-time.  I wasn't expecting that.

I was most pleased with the examples, including the poker card
example.  One thing that I noticed was that the pair naming where
.name was suppose to resolve to the attribute of the card suit or
value names did not work as expected and cause an exception.

As well many included tests seem to be seeking contributors to test
things through, or the authors will need a bit longer to ensure they
all pass.

I got the infix operator to work with a ¬ modal-logic not character
(ascii code 172) which I declared to bind to a subroutine block, but
it didn't do exactly what I wanted yet.  I also found the multiple
dispatch was fully functional providing the equivalent of C++
polymorphism.

Grammars are mature and functional, able to parse fantastically.


= So what doesn't work yet in Perl6?

Firstly, the sigil file handles such as $*IN and $*OUT didn't seem to
work and I couldn't get all listed examples to work -- even those that
I suspect may have worked in a prior release (since people were
posting examples with exactly those statements in their listings).  I
suggest it is worth-while doing a comparison of all synopsis examples
in the POD form with rakudo, to check the syntax uniformity.  I get
the impression the release engineers don't have infinite resources,
and did their best to get a well-functioning release out for early
evals.

It can only get better from here: The syntax seems to be evolving,
which has been commented upon in blogs.  I suggest given time,
releases will finalize on the "official Perl6 specification" and get
it ready for production use.  This is a long process, but I feel
worth-while, I can't fault them for taking time to finish off the
advance syntax which is amazing in how high-level it can be -- just
like telling someone "pick a poker hand from the deck" as an example.


= The inherit complexity, in supporting higher-order language and interpreters:

Multiple variants of the language offer some upside and some downside
-- namely there are proposals to port the language to differing
runtimes including Perl5 itself, the original haskell (pugs rascals)
and the final Parrot release which I hope remains rakudo.  One
proposal even suggests running Perl6 under Javascript, so that you can
inline Perl6 in a Javascript client.  (wow, that's alot of variants to
all get the super-advanced syntax right.)  This will be a learning
exercise just to track, to see how the implementation teams all
distribute their efforts.  Some may simply abandon their
implementations; or rather they may all produce a consistent Perl6
interpreter that runs on their chosen environment.  Pugs is still
around according to a recent post, but might taper off as rakudo makes
perl6 practical.


= Example of playing cards in multiple languages:

http://rosettacode.org/wiki/Playing_Cards#Perl_6

Check out how short and concise the Perl 6 version is in comparison. wow.



Regards,
--
Allan Fields
Ottawa, Canada


More information about the Ottawa-pm mailing list