[Dynamite] Philosophy, Telegraph and "object functional"
Ian Holmes
ihh@fruitfly.org
Fri, 30 Jun 2000 06:50:54 -0700 (PDT)
Hi Telegraphers, Matt and Chris,
It was good to get feedback from Ewan today, and always good to have a
decent argument -- I've missed those... (although Chris can also be a
stubborn bastard when he wants to)
Although you'll by now be utterly sick of my catchphrase "Object
Functional" I can't resist plugging it one more time and knitting together
some of the vague philosophy that we bandied about over lunch.
IMO having a *good definition* is FUNDAMENTAL to what "open source" is
about. The two imply each other. A mathematically elegant concept is
difficult to patent or otherwise control; c.f. the quick emergence of
HMMER as a challenger to SAM. Likewise, an open source project *must*
have intuitive appeal, or people simply won't become interested.
"Straightforward" doesn't always imply "mathematical", but for Telegraph,
it surely does. I feel that, as long as it doesn't get in the way of
practical uses of the software (c.f. Ewan's comments at lunch), the
functional programming metaphor should inspire everything we do.
I think if we can convince people that we have stuck to a certain level
conceptual integrity, without sacrificing useability, then Telegraph will
be a *much* stronger Open Source project for it, because people will
recognise and respect that.
The meaning of Object Functional is less vague than you may think. It
means that the central Design Pattern of the object model is Interpreter,
i.e. the software acts like an Interpreter for a (pseudo-)functional
language. It was inspired by "object relational" which means that the
object model reflects the schema of a relational database.
I'd be a really happy chap if I felt that I could somehow convince you
guys that this concept is more than just a buzzword, and that it actually
holds water (and can maybe even weather a few storms). I want to
communicate this concept to other people, and that won't work unless you
all grok it. If it's just me then no-one will listen. You have to not just
understand it, but grok it as well, so you'll want to preach it to
everyone you meet. If you don't at least get close to that level of
excitement then I haven't done a good job.
IMO, object functional is a real, *useful* approach and "Functional
Interpreter" is a potentially significant Design Pattern. I guess I should
plug this on the Portland wiki, and I will, but I want you to vibe on it
first.
Anyway, I've rambled enough. The XML example is in the CVS and also up
here:
http://www.sanger.ac.uk/Users/ihh/dna-edit.xml
Ian
--
Ian Holmes .... Howard Hughes Medical Institute .... ihh@fruitfly.org