2000-11-02-17:30:56 Nathan Torkington:
> Here are the things to order, in my order:
>
> Robustness
> Portability
> Maintainability
> Testability
> Reusability
> Speed
> Simplicity
> Size
A couple of negligible wibbles to toss in: would it make sense to
separate "Simplicity" into two separate checklist items, Simplicity
for the users, including e.g. module and extension authors, and
Simplicity for the implementors of perl? And while you never implied
otherwise, it might be valuable to emphasize that these are often
not in conflict, many of them probably reinforce each other more
than otherwise.
> To put them into order, imagine you're a Perl sort comparison routine
> comparing two of the items. Ask yourself "would I trade $a to get
> $b?" Obviously it sometimes depends, but what would you do most of
> the time?
Nicely put!
If I were do do these myself, I'd probably make my list, in
descending order:
Simplicity of implementation
Size
Speed
and bank on all the others profiting from the emphasis on simplicity
early on, figuring that if we can cling to enough simplicity for
long enough, we'll be able to buy any speed or other attributes that
we've missed with tradeoffs at the eleventh hour. Trading away
simplicity is cheap and easy, but once you've lost it, it's never
coming back. Unless of course you do what we're doing now, and
discard everything and start over from scratch.
I, obviously, hail from the extreme looney fringe of the
worse-is-better camp:-).
-Bennett
PGP signature