They are an integral part of the platform and we want the
most optimized implementation we can get. The JDK collections just don't cut
it for our use cases.

Then make that absolutely clear. Don't tell folks that it helps
debugging, because folks already know the Collections API inside and
out. Don't say it is better performance wise, because you need to back
that up, and I seriously doubt the performance benefit outweighs the
additional API maintenance overhead. Collection APIs are not simple to
implement correctly.

We list all of our reasons for creating our own collection interfaces in the FAQ, and I think they are all valid. This particular thread is about why we want to implement them natively rather than simply wrapping the existing Java collections. I would argue that performance and debugging are quite relevant in that context.

If your focus is that you need to be able to register event listeners,
then I'm much more inclined to support your decision, since I don't
remember seeing any listener API for the Java Collections.

Yes, that is one of the main reasons we created Pivot's collections (again, listed in the FAQ).

I don't hear anyone complaining that the Groovy and
Scala guys, for example, defined their own collections (presumably for
similar reasons).

Not the same reasoning: they created their own *LANGUAGE* with
different syntax and language level features that are not available in
the Java language (for example closures). You are still (just) a Java
library that needs to abide to Java syntax and Java libraries.

As I said, they probably had *similar* reasons. And we did effectively create a language - WTKX, our markup language, makes heavy use of our collection interfaces. In fact, it wouldn't work without them. So I think comparing Pivot to Groovy or Scala is more accurate than you may think.

Please pardon my frustration. It just gets a little irritating to have to explain this over and over again, especially when it is listed in the FAQ (and when the people I am discussing it with are members of pivot-dev, not pivot-user).


Reply via email to