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
