On 7/19/2012 2:09 PM, Kevin Wright wrote:
And how does simply hiding stuff deal with this "unfortunate" mess:
http://docs.oracle.com/javase/7/docs/api/java/util/class-use/Enumeration.html

No amount of {display: none} in the javadoc CSS will allow those methods to return an iterator instead, not unless you deprecate them all and implement new versions with subtly different names, and that's just one of the more obvious examples!
Just use a wrapper Iterator (with unsupported operation for remove()).
Jigsaw is the *only* way we'll be able to bump up version numbers and genuinely remove methods or change their signatures. As you said, this stuff can be hidden in JavaDoc (hell, ScalaDoc already does something similar by banishing them to the bottom of the page: http://www.scala-lang.org/archives/downloads/distrib/files/nightly/docs/library/index.html#scala.collection.Traversable)

But... That then has to be reimplemented for each and every tool, in each and every language running on the Java *platform*. And it *still* doesn't allow you to change signatures in a backwardly-compatible fashion.
Ah... So you're suggesting creating substantially different (gutted) APIs for new versions of the core library modules, thereby forcing one to update everything one would use in their whole JVM process to use the new APIs for that module rather than old ones in order to use anything (including bug fixes) from the new module version. That's a complete non-starter as I see it -- that's back to Python 3.0 albeit on a more granular scale. That would be chaos for anyone with millions of lines of code and many dozens of 3rd-party libraries in their JVM, i.e. those with large enterprise applications like many in Java's bread-and-butter space, including me.

In reality Jigsaw is nothing more than a "move crufty *classes* into a separate, optional module" solution here. Changes within a class still require all the same API evolution considerations one had before. That's life in the real world.

--
Jess Holle

--
You received this message because you are subscribed to the Google Groups "Java 
Posse" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.

Reply via email to