So a bunch, well 8, of us went to see Randall Schwartz's presentation at
this month's PLUG meeting.

Randall's presentation was very interesting, and he's a very dynamic
speaker with a fairly good grasp of how to present complex topics.

He started off with a quick recap of perl so far, including some
interesting tidbits of perl lore, like the fact that perl5 was intended to
be able to be able to host a complete rewrite of rn in perl (and rn was
the source of the first perl regex engine)

The most interesting part was the discussion of parrot. which is the 
new perl VM, intended to be a modular software cpu fully accessible to
perl. In other words you should be able to write perl code that tells the
compiler to change the way it compiles perl code. I'm not sure, but I
think I saw a shudder of disgust run through some audience members at
that.

Basically perl6 will be a ground up rewrite of perl, although it will keep
the ability to run earlier versions of perl, so that old modules can be
used with the new perl...

Notable features:

full Unicode support, 
bunch of small syntax changes including a . operator
that works pretty much like you'd expect from java or python, 
new built-in types INT,NUM,STR,REGEX
  my INT $foo = 8
The ability to override the default behavior of these types and to define
new types on the fly. This can include things like what values of the type
are True and which are False. And some quite extensive (and advanced)
validity checking and behavior modification.

Generators, Exceptions, Garbage collection, reference counting including
weakref's (these last are all part of python 2.2 released just before
christmas :-))

The ability to overload operators, rewrite operator precedence and scope
and create new operators assigned to unicode characters (again I thought I
saw a fair bit of shuddering and greenish looks in the audience)

On the OO front classes and modules will have more meta-data, there will
be the ability to use foreign objects (gotta handy .jar file that does
something kicky? you can make it part of your perl6 program),
multi-methods, multiple inheritance and the ability to do deep voodoo by
messing with the object hash.

Also there will be a new set of contexts (Boolean,Numeric,Integer,String)

One of the more interesting features of the whole effort to rewrite perl
as perl6 is that they have reorganized their community into a somewhat
more modular/segmented/moderated/federated structure so as to reduce the
number of flamewars and reduce discouragement within the community.

As someone who is known on this list as somewhat of a Pythangelist,
proponent of programming the way Guido indented it; I have to say that
Randall's presentation made me think that perl6 might be worth learning,
of course it won't be your dad's perl. 

And of course a lot of the new stuff in perl6 especially some of the deep
magic kind of things like defining new operators and modifying the parser
on the fly are adapted from other languages, a fair amount of lisp, a
healthy dose of python and of java and even some rebol, and ruby. 

I predict that the next version of the camel book will come with a
built-in hand trolley, and reading stand. I also predict that it will be a
maniac bestseller, and that their will be a boom in the therapeutic care
industry dealing with people who strained their brain trying to actually
understand all of the new features in perl6 at once.

ciao!
larry

PS. I found the origin of the notes that Randall used for his
pressentation at 
http://dev.perl.org/perl6/talks/perl6-notes-200108.v2.pdf

http://www.efn.org/~laprice        ( Community, Cooperation, Consensus
http://www.opn.org                 ( Openness to serendipity, make mistakes
http://www.efn.org/~laprice/poems  ( but learn from them.(carpe fructus ludi)
http://allie.office.efn.org/phpwiki/index.php?OregonPublicNetworking

Reply via email to