Greetings, Lucy users!

The Lucy developers plan to rework Lucy's subclassing mechanism to support more host languages and to make it easier to use from Perl. We hope that you'll soon be able to write Lucy subclasses based on hashrefs instead of inside-out objects. While this entails slight API changes, we're trying to make the transition as painless as possible.

So far, Lucy allows to subclass any of its classes from Perl. This is a powerful feature, but it makes it hard for us to track which classes are actually extended by users. In the future, we're trying to stick more closely to the rule formulated by Joshua Bloch in his book "Effective Java":

> Design and document for inheritance or else prohibit it.

You can help by telling us which Lucy classes you extend from Perl. Here are some of the candidates:

- Lucy::Analysis::Analyzer
- Lucy::Highlight::Highlighter
- Lucy::Index::IndexManager
- Lucy::Index::Similarity
- Lucy::Search::Query, Lucy::Search::Compiler, and Lucy::Search::Matcher
- Lucy::Search::QueryParser

We're particularly interested if you're extending classes *not* listed above. If you're subclassing IndexManager for other purposes than NoMergeManager and LightMergeManager as described in Lucy::Docs::Cookbook::FastUpdates, we'd also like to know.

If you know of Lucy users with interesting setups who might not be subscribed to this list, please point them to this survey.

I'll start with the classes that I subclassed as a user of Lucy's Perl bindings:

- Lucy::Analysis::Analyzer
- Lucy::Index::IndexManager (as LightMergeManager)
- Lucy::Index::Similarity

Thanks in advance for taking the time,
Nick

Reply via email to