Given that a version of the code in question was passed over for release
in commons-collections 2.0 for no particuarly good reason and has been
complete, stable and in production use in its current form for the past 9
months, why don't we release what we have now as commons-primitives 1.0
and pick up this debate for the 2.0 release?

On Tue, 14 Oct 2003, Stephen Colebourne wrote:

> Well this simple question threw up some debate :-)
>
> The debate over packages raises a question over the ambition of the
> [primitives] component. I am looking to add additional Map, and maybe Set,
> implementations to [primitives]. I have needed a int/Object and Object/int
> map on more than one occasion, so I believe that there is a good case for
> coding it in [primitives]. I don't believe this has to be before the 1.0
> release, although it would be nice.
>
> As has been pointed out, the complete combination of Maps leads to a lot of
> classes. See http://pcj.sourceforge.net/docs/api/index.html. This should not
> greatly concern us however, as we should be code generating the
> combinations. Although many may be less useful, the overhead is small once
> code generation is adopted.
>
> What is significant is being able to grasp the component quickly. Different
> people do this in different ways. I am in the camp that prefers lots of
> smaller packages of related classes. I do not concern myself greatly with
> inter-package connections because IMO the Java language does not have the
> scoping rules to make such restrictions possible or worthwhile. (If Java had
> a friend scope, or a subpackage scope my views might be different.)
>
> ---
> Of the proposed solutions:
> 1) Named after the primitive type, eg. o.a.c.primitives.boolean
> Fails because you can't name packages with a keyword, and its not great for
> maps.
>
> 2) All in one.
> I really dislike this because the package will be ridiculously large, and a
> new user won't be able to navigate it.
>
> 3) Split by collection/adaptor/decorator.
> This works up to a point, but breaks down due to size in a similar way.
>
> 4) Grouped by interface.
> My choice. This wins for me because a new user arriving at the component can
> see instantly what interfaces are supported simply by looking at package
> names. It also means that the top level package is left free for static
> utilities which often get lost otherwise. I have no problem with the list
> package extending the collection package.
>
>   o.a.c.primitives.collection
>   o.a.c.primitives.collection.adaptor  (or adaptor.collection?)
>   o.a.c.primitives.collection.decorator (or decorator.collection?)
>   o.a.c.primitives.list
>   o.a.c.primitives.iterator
>   o.a.c.primitives.map
>   o.a.c.primitives.iterator
>   o.a.c.primitives.listiterator
>   o.a.c.primitives.hash
>   o.a.c.primitives.comparator
>   o.a.c.primitives.io
>
> Stephen
>
> ----- Original Message -----
> From: "Rodney Waldhoff" <[EMAIL PROTECTED]>
> To: "Jakarta Commons Developers List" <[EMAIL PROTECTED]>
> Sent: Monday, October 13, 2003 6:07 PM
> Subject: Re: [primitives] Package layout strategy
>
>
> > On Mon, 13 Oct 2003, __matthewHawthorne wrote:
> >
> > > I believe that there will be a lot of code generation involved, Stephen
> > > checked in some Velocity templates a few weeks ago.
> >
> > Rather than generating the 64 pairwise primitive-to-primitive maps, their
> > associated iterfaces, base classes, adapaters, decorators (immutable,
> > sychronized) and variations (ordered/unordered, hash/tree, etc.), why not
> > wait until we have an actual, real-world application that calls for them?
> >
> > > So the battle has become:
> > >
> > > o.a.c.primitives.boolean
> > > o.a.c.primitives.byte
> > > o.a.c.primitives.short
> > > o.a.c.primitives.int
> > > o.a.c.primitives.long
> > > o.a.c.primitives.float
> > > o.a.c.primitives.double
> > >
> > > vs.
> > >
> > > o.a.c.primitives.collection
> > > o.a.c.primitives.list
> > > o.a.c.primitives.iterator
> > > o.a.c.primitives.map
> > >
> > >
> > > Any other opinions?
> > >
> >
> > Yes, leave well enough alone.  Again, what problem are we trying to solve?
> >
> > --
> > - Rod <http://radio.weblogs.com/0122027/>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

-- 
- Rod <http://radio.weblogs.com/0122027/>

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

Reply via email to