DM Smith wrote:
Generally open source projects have a policy to change as little of the file
as possible, only changing what is necessary.
Hmmm. Necessary by what criterion? Necessary to make, say, Lucene exploit the new interator constructs to avoid run-time type-checking? Necessary to make the code more readable? Necessary to prevent use with Java 1.4? :-)

I'm not sure I've ever seen a policy expressed in that way -- patches generally should be clear, concise and do what they're intended to do, but that doesn't necessarily mean minimising the size of the patch and it doesn't necessarily mean keeping the source compatible with some old compiler or environment.

Indeed, to be hypothetical and not entirely off-topic, it easy to imagine two patches that are better than one. For the two patches, reorganise a class so that it exploits Java 1.5 features and the "real" patch that uses that new structure to cleanly and elegantly implement some new feature. For the one patch, leave the code compatible with 1.4, but the functional patch is now much larger, more complex and harder to verify.

It's possible that such a hypothetical patch (or pair of patches) is at the core of the question of this thread. Does one embrace new language features because they provide some tangible benefit to the maintainability, functionality or complexity of the code? If so, for how long? Should Lucene development freeze at 1.4 until there's no working hardware that runs 1.4? Would that also preclude changes to Lucene that make it work dramatically better on a machine with the current de-facto "standard" memory? What happens when that's, say, 4Gb and some old hardware simply won't let you install that much memory?

Would it not be better to freeze application development that needs an old environment and simply back-port bug fixes and, where it makes sense, functionality to the version of Lucene that is used in that environment?

The approach taken by Red Hat with their Enterprise Linux series is that they'll support a version of the platform for several years, back-porting bug fixes, adding small, incremental functional changes and so on. That means that this antique computer that happily runs RHEL3 will be able to carry on running an OS and applications that work on that hardware until it finally gives p the ghost .

jch

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to