John and all,

> It's very precise.  Once you understand it you do not need the manual,
> you can calculate from first principles what the API must be (more or
> less :)

Right, and the practical problem is that type-weakness in C allows you
to make coding errors that aren't detected at compile-time.  We knew
about that but didn't have a good solution.  (I know, I know, just use
Felix...)

> As for killer apps ..  that's the wrong idea.  There are numerous
> places in most code where Judy is the ONLY data structure that can be
> used:

OK, but selling a new coding library (as HP wanted to do) is even harder
than selling a new mousetrap.  Again, my take-away metaphor from that
time was that programmers needed to have it in their toolboxes during
implementation phase, and the question was how to get it there.  How
does any successful language, tool, or library get "into the toolbox?"
It's a bit of a mystery to me because there are so many crappy ones out
there that still managed to at least temporarily win the evolutionary
arms race.

I think a key to success is to do what's today called "go viral,"
meaning people hear about it from other people and think, "I gotta get
me some of that" -- politics, standards, or crappy aspects of the
product be damned.

> ...it is perfectly safe to iterate through a judy array and modify it
> as you go.  Try doing THAT with an STL container!

Yup.

> The core restriction on Judy is that the key has to be a machine word
> or a null terminated string.  The value can be anything (just use a
> pointer).

Although as I've mentioned before, a lot of academic cycles are spun on
issues that assume from the get-go that both keys and values must be
variable-length; either choose a number up front, or even worse (but
naturally more common), all lengths allowed.  Null-terminated strings
(JudySL) are built on top of JudyL, showing that mixing arbitrary-length
keys is fine, but if you want length-associated instead of
length-terminated keys, you pretty much have to sort first by length
(which is at least very cheap and fast using JudyL), even if you miss
out on sorted-by-accident as a "free" side-effect.

The JudyN code which is out there somewhere illustrates exactly how to
do this.  With arbitrary-length keys sorted by length, you can put any
bytes at all you want into the key, similar to Perl strings.

Cheers,
Alan Silverstein

------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk
_______________________________________________
Judy-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/judy-devel

Reply via email to