Object Oriented Perl

Date: Thu, 10 Aug 2000 20:00:24 -0700 (PDT)
From: derek lane 

Damien Conway's Object Oriented Perl is a clear, well-written,
extensive account of Perl's (limited but unconstraining) object support
and how to graft on to that base structures useful in large-scale
software development.

I learned much about issues for large-scale development and quite a few
corners of Perl that have been bothering me (multimethods; use fields)
were very clearly explained.

After reading the book about 1 1/2 times, I think that large scale use
of Object-orientation is clunky in Perl, and probably would be clunky
in most competitive languages.

Perhaps this is because I do not have my fingers in Python or smalltalk
every day, but the problems damian was addressing seemed to be an
argument against object orientation as a structuring mechanism at great

Damian's concerns are not the only ones exercising programmers' minds
when making large software systems.

In no particular order, I have seen:

Concern that there are no effective formal methods for verifying even
medium-size software systems.

Inconclusive discussion of organisational and managerial methods for
multi-person multi-month efforts against a changing goal.

Little support for loose collaboration (internet style) of large
systems (i.e. we still don't know under what circumstances we can or
cannot expect a Linux/Apache/ Perl -size system to coalesce and
succeed. Raymond's essays are relevant, but do not seem definitive.)

Various kinds of type-checking (Mark-Jason Dominus has a useful take on
this, see:  http://www.plover.com/~mjd/perl/yak/typing/typing.html )
Type checking of method arguments would have saved me embarassment
recently on a large refactoring of MARC.pm.

Conway's book is most interesting to me as an elaboration of
Object-oriented structures to support large scale software. I am not
convinced that Object orientation in Perl or any other language would
be a good (effective: used) support structure in the large systems I

--Derek Lane

Time-stamp: "2000-08-11 08:06:07 raleigh"