Day 1351: Acme::PerlML 0.01 and Perl::BestPractice 0.01

Alias on 2005-08-18T05:19:34

I've got a bunch of things to go over from the entirely wonderful OSCON trip, but I'll start with the most interesting ones first.

First of all, for those that came to my talk at either OSCON or PDX.pm, much thanks. I'll have the slides up this weekend, but in the mean time here are some fruits of the PPI happyness.

As well as another PPI bug release ( 1.003 ) to clear out some bits and pieces, I've uploaded two new modules to the CPAN. These should be visible in the recent modules list shortly.

Acme::PerlML was described in the talk, and converts your ugly Perl code to powerful enterprise XML! Think PPI + SAX + Acme::Bleach.

I've cleaned up Dan Brooks' work and it's now done. It's not practical at all, but quite fun :)

Perl::BestPractice on the other hand is going to be a LOT more practical (and hopefully a bit controvertial).

Having caved in and bought Damian's new Perl Best Practices book at Powells, I read it on the flight home and was pretty impressed. I give it 8 out of 10. I mostly agree with it, although I find a few things a bit icky. It's also (for my money) aimed a little too much at console/imperative programming, and less friendly than it could be with pure OO. Sub::Installer also really needs to die. I don't think we should be recommending something that superclasses UNIVERSAL :(

But what PBP _does_ do is crystalize a set of style (and other) rules that people can be refered to, and should make a great guide for corporate and/or less experienced people.

With that in mind, I've started going through and encoding some of the "practices" in code form using PPI magic.

What this means is that we should fairly easily be able to build a pbp_find tool that searches through an arbitrary codebase to find violations of PBP, and point users to the page in PBP that described the problem.

The possibilities for enabling this sort of thing in editors (using squiggly underlining for example) is also pretty amazing.

Verion 0.01 just contains search code for the an initial set of half a dozen random practices. I'm throwing it out fairly early, mainly so that Damian and the other PBP mavens can take a look, have a play, and advise on how they think it should work.

So yeah, go play!

P.S. Who thinks I should pluralise BestPractices...? (instead of the current singular)


Sounds great

cbrandtbuffalo on 2005-08-18T12:29:22

I think this sounds like a great project. I've also been reading, and using, PBP and I also think it's excellent. I'm responsible for code style guidelines in my group, so a tool that could automate this process would be way too cool.