Shai Erera wrote:

    When the flood gates open, and code is rolling all over the place,
    upgrading Lucene becomes less of a buffet and more of a pain in
    the a**


I slightly disagree with that. If I'm a 2.2 user and I silently upgraded to 2.4, 2.4.1 and 2.9 I will have loads of work to do when I come to upgrade to 3.0 (because for me, 3.0 is exactly as if the gates just opened).
Thats a good point - eventually you have to face the piper and move or not. But its kind of nicely isolated to a point every couple years (we have talked about releasing more often in the past, and I hope that comes up again). You can ride bug fixes for a whole version release (a couple years). With the new way, you can get the first bug fix release, but then you will quickly be left out of new bug fixes until you update your code.

The way I see it, I *should* fully upgrade to 2.4, in order to spare me the work when I upgrade to 3.0. By the time 3.0 is out I may have so many changes to handle that I might re-consider upgrading at all.
You have both options today though right?
Today, I believe users are not so silently upgrading, but prepare themselves for the future. Even if they don't take advantage of new defaults, they at least get rid of deprecated code because that's for sure will change in the next major release, so why wait?
It would be nice to know these types of things more conclusively.

A personal example - I wrote an Analyzer which includes lots of code (lots of TokenFilters, Tokenizers etc.). Then I see that the whole TokenStream API is deprecated and will be replaced. Do I have to change the code right-away - NO. But I will do it because why wait for 3.0? When 3.0 is out I will have much more things to do. I prefer incremental changes to my code, then complete overhaul (better testing-wise also) (this is a true example, not something I'm making up).
We are not always so in control of our time though :) The new TokenStream API is a bit confusing - I'd have held off upgrading. I think there is even Lucene code (tests?) that uses the old API. There is tons of test code using deprecated API's. I don't think most people move immediately, because most people are lazy ;) Or time constrained. I'm not fully in either camp though. Frankly, I'd argue either side and hope smarter people figure out the right choice ;)

It is true that currently you can decide when you want to make revisions to your code, but in reality I wonder how common it is.

One way to check it (other than doing a survey) is to change the policy and see how many scream at us :)
Thats not really the style Lucene has taken in the past :)

Shai


--
- Mark

http://www.lucidimagination.com




---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org

Reply via email to