Perl 5.10 for all

For those that haven’t already heard, perl 5.10 was just released for perls 20th birthday.  I had hoped to note this earlier, but was in my car the last two days transporting the family to the Holiday festivities.  So, what’s with 5.10? why a big deal for just another small release?  Well, unlike some languages that change major version numbers at each small release, Perl has actually kept its numbering sane.  So what is in 5.10?  A lot of new features, many of which were specifically brought down from the perl6 design.

Syntactic things like the say operator, built in switch statement, smart match, named regex captures, regex plugins and more.  Add to that interpreter improvements for speed and memory.

A good help with understanding some of the new syntactic sugar can be found in Ricardo’s Slides

OSCON 07 Tuesday

Yes, I’m desperately trying to catch up with a week that is passing by too fast.  A mountain of information is sitting in notes on my computer awaiting comment on this blog.

Tuesday was my MJD day.  A day of Tutorials spent listening to one of my favorite Perl trainers, Mark Jason Dominus.  For those not familiar, Dominus is a smart guy with a dry sense of humor, and who enjoys working on code that most people just dont’ have fun with.  He is also the author of Higher Order Perl, one of my most recommended books for advanced Perl programmers.

My first session with him was an updated presentation of the same name, Higher Order Perl, the second session was title “Making Programs Faster”.  Sadly I cannot link to his extremely thorough slides (It’s his job), but the majority of the content was more in depth discussion on aspects of his book, with alternative looks at how the data can be useful.

One review of the Higher Order Perl is the rip off of the Spam skit, it’s about “closures, closures, closures, closures, Baked Beans, and closures”.  Really a large part of the book uses Perl closures to get across many key features.

Iterators, walk_tree routines, anonymous subs as objects, and parsers were some of the tools used to teach some the different ways to accomplish common tasks Perl programmers face, but in more optimized ways.

The Making Programs Faster class began by looking into the pitfalls of benchmarking, including some of the errors he’s found in the common Benchmark module, and showed ways to perform benchmarking more accurately.  From benchmarking we moved into profiling methodologies in perl.  From there we moved on to writing a better POD parser, before finally going over common performance mistakes.

All of MJD’s talks carry with them a great depth that helps you understand inner magics of the language in actually useful ways.  But with magic comes the chance for going astray.  Only in MJD’s class can you quickly go from a discussion on profiling, to discussing if lemonade is a black body, and therefore measurable by an infrared thermometer.  🙂

In summary, really both classes cover content that you can basically find in the book, but the atmosphere, and depth far surpass what you get from just reading.  New examples and QA time really help in understanding.


Freeside Licensing Change

Received in the Freeside devel and users list today, Ivan announced an upcoming license change for the Freeside package, Going from GPL v2 to AGPL v3.

The purpose of the move is to limit the “webapp loophole”, where you could sell access to a modified version of a GPL product, but not distribute the changes.  As Ivan put it:

“I want Freeside to be free for everyone to use and modify, but I don’t
feel it is equitable to our community for large companies to fork
private versions of the software and sell access to them in a
hosted/SaaS/ASP capacity to avoid having to make the source code of
their derivitive works available.  This seems to violate the spirit of
the GPL and copyleft, if not the letter (hence why it is called a
“loophole”).”

The purpose of this is not to block customized code, but only selling out usage of non-contributed code.  This will not prevent the development of custom plugins, which the Freeside architecture encourages, but only selling hosted access to those. 

Interested parties are invited to particpate in the AGPL draft discussion: http://gplv3.fsf.org/agplv3-dd1-guide.html