Michiel Meeuwissen wrote:
Nico Klasens wrote:
A little late, but I was just too busy with other things.
imo a major release is justified when we do a good implemtation of java
5. The api will change drasticly which makes it impossible to create a
drop-in replacement.
A good implementation should remove many of our convenience classes in
the bridge. E.g. a NodeList should just become List<Node> and not
NodeList<Node> I played around with this at the component weekend and
realized that it is impossible at the moment. The NodeList
implementation does also some conversion of objects. You can add any
object to the list and the NodeList will try to convert it to a Node. A
good discussion on the API is required I think.
I agree that it would be actually better to drop all List interfaces from
bridge. But I am uncertain if something like that can be done, because it
is obviously backwards incompatible. A thing which is, very in the
bridge, undesirable.
I see other options:
- leave it (approximately) as is. NodeList<Node> is a sillyness, but you
don't need to use it. You can still write simply NodeList.
- roll it back. We simply don't support generics in bridge. Because of
prior choices, that proves to be an impossibility.
One can fear that stalling the release until a good discussion has taken
place, may stall it a bit long. But anyhow those were my first 2c.. :-)
On the other hand, '2.0' is only an arbitrary marker. Its main goal would
be to sound better than '1.9'. It is not necessarily a mayor backwards
compatibility break. If we want to do that later, we can also call it 3.0
or 4.0. There's plenty of room in that direction.
I thought a little more about this and I realized that the scope for
1.9/2.0 is not clear to me. The abstract of the release plan would be
transition to java 1.5 and first version of mmbase framework and
component infrastructure. The above makes it sound like a minor change,
but I believe it are big ones.
At the component weekend we discussed a new config directory structure
which would be much more future proof. When we are going to use that one
then all webapps have to change. We are than not backwards compatible in
respect to file locations. Source, build and deployment will change for
all webapps.
Transition to java 5 is still a "scary" thing when not well prepared.
Does it mean only transition of the mmbase internals to java 5 or is it
also exposed to the outside world? When only the internals are changed
then it is not a major change for webapps, but when the api exposes java
5 then it is. Telling people to just use the erasure of our generic
list type is stupid. The compiler will even warn you for these stupid
statements. A generic type guarantees that only certain types can go in
and out of the class. The NodeList does not have this constaint, because
you can throw in a list of mixed types and retrieve only Node objects.
Regards,
Nico
_______________________________________________
Developers mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/developers