|Think about Loose Coupling|
After writing file utilities in C (DOS and PC-MOS) for quite a while, it became a little tiresome to re-write the same code for opening a file, grabbing the command line arguments, opening a file for read, opening another for write, doing freads and fwrites using malloc'ed buffers, all to do One Thing or Another to a file (ASCII or binary data).
Eventually I came across awk, bought the book, loved it, used the tool, loved it, but eventually put it aside when I changed jobs.
Then one day at my new job I was looking at a spreadsheet containing database model information (tables, fields, data types, dependencies), and I thought to myself, gee, I really need an awk script to fiddle with this. Then I got to thinking about Perl, downloaded Perl 5 (fairly new at the time) and tried it out, and was astounded by the power that was available.
Eventually I had a series of four scripts feeding one into another, parsing the memory model data, doing cross-checking, building SQL create table statements, checking for indexes and foreign keys, and even ordering the table create statements so that the dependent tables got built after the primary tables. Very, very cool, especially when the director told me I'd hacked together logic that would normally cost many thousands of dollars to duplicate with a commercial product.
Three months later I was working on my first web site and trying to learn everything I could about Perl. The last two YAPC::North America's have filled my head with amazing ideas. What a cool culture, and I still have much to learn.
Ahem .. uh, good question.
"Excellent. Release the hounds." -- Monty Burns.