What Makes It Shiny?

Thus Spake Andy:

Badger is (of course) free in both senses of the word - buy me a beer and you can say what you like about it :-). It's written in pure Perl and doesn't have any dependencies on non-core Perl modules. It's not that we don't like CPAN (we luurve CPAN), but it's an important (if inconvenient) constraint for things like TT which can end up being installed on ISPs where getting additional CPAN modules installed is difficult or impossible.

It's great that Perl has many ways to do things, but when you're writing an application you want all your modules to work the same way, especially in terms of error handling, debugging and other core "playing nicely together" functionality. Badger brings some best practice conventions to the table in an attempt to improve the general consistency of code. This is important not only in terms of classical "Kwalitee", but also to make your code easily skimmable. This is Michael Schwern's idea, and a great one at that. It struck a particular chord with me because I've always been a little bit obsessive about how my code is laid out. I like to give it the same kind of attention that I would give a web design in terms of layout, use of whitespace, vertical and horizontal alignment, use of paragraphs, columns and so on. Colleagues past and present have expressed bemusement at my insistence that all assignments should line up, and other trivial layout issues like that. But now I know I was right all along (bwah-hah-hah) because Schwern says so. And he's always right. Except that "skimability" is a bit of a mouthful so I use "skimpiness" as my intangible measure of how skimmable my code is.