Traits, r

Andy Armstrong andy at hexten.net
Fri Feb 8 13:06:45 GMT 2008


On 8 Feb 2008, at 12:44, nigel at turbo10.com wrote:
> Is it a pipe dream to imagine plugins slotting together cleanly like  
> lego blocks? [1]

I hope not, but as far as I know it's still a hard (in a non formal  
sense) problem. We ran into this with Test::Harness. Attempting to  
make everything extensible in as-yet-unknown ways is, er, tricky. For  
the reasons you describe.

In the end we sort of went for YAGNI-yet: let's see what people want  
to do and review the problem in that light. It feels defeatist though  
- and is but another reminder that the art/craft/science/discipline of  
programming is still immature.

> I was reading about "monkeypatches" the other day [2] - and the idea  
> of modifying running code in-situ offers a somewhat scary (from a  
> security point of view) but different take on the problem of plugins  
> working together. Installing a plugin is less like lego and more  
> like applying a software bandaid --- did it stick? Ok let's put  
> another one on. With the ability to take some off as well.


Yeah, it's more old skool certainly :)

It's exactly the same solution (with the same attendant problems) as  
hooking into vectors in DOS or BBC MOS.

We just haven't achieved clear separation between chunks of behaviour  
and their relationship to events and objects yet. Traits/Roles are  
lovely - and clearly a step in the right direction - but there's more  
work to be done.

-- 
Andy Armstrong, Hexten






More information about the london.pm mailing list