David B. wrote:
This is a bug. I might get around to fixing it but I can’t promise
anything. I’m focusing entirely on the C extension version of Ferret
(which doesn’t have this bug).
Bummer… I’ve got a hack to avoid the problem for the time being, but
it’s really ugly :-/
This brings up another issue, though, that I’ll go ahead and broach…
I’m kind of sad that you’ve made the jump to C so soon. Ferret is
brimming with potential, but it still feels a lot like, well, Java. The
API is still pretty heavy, and when I dig in to the underlying code it
feels over-designed. I’m guessing a lot of that is due to the straight
translation from Java, which while it’s a good first step, it’s also not
surprising that it would initially result in a library that feels pretty
alien.
While I understand the performance reasons for using C, doing so also
makes it much harder to refactor and refine the API, and my feeling is
that for most problems, the pure-Ruby performance isn’t a show-stopper.
Putting everything in C also makes it harder for folks such as myself,
who don’t do much C, to hack on the internals ourselves and push patches
back up to you.
I hope this comes off the right way - it’s open-source, and you’re of
course free to take the project where you will. I’m also extremely
grateful for the project - it’s helping me out a lot. I just have doubts
about the long-term viability of Ferret within the Ruby community when
an API (and underlying code) that I find I spend a lot of time fighting
is getting set in stone so early. I’d hate to see you spend a lot of
time on it to only have it be a prototype for a more Ruby-ish library
that comes along later. I want Ferret to be the standard by which other
indexing tools are measured, in Ruby and elsewhere, and I don’t think
that raw benchmarks are going to drive that.
PS: Sorry for the slow reply. It’s been a tough few weeks here.
No problem! So what exactly do you do? Are you a student? Freelancer?
Employee? Astronaut?
Thanks a ton for the great library,
Nathaniel