Why no methods like toList() / toMutableList() / toSet() / toMutableSet() on Java Collection and Stream interfaces ?
adinn at redhat.com
Tue Mar 19 11:08:41 UTC 2019
On 19/03/2019 09:04, Tobias Gierke wrote:
> Thanks for the pointer ! Is there still no way for mere mortals (read:
> non-OpenJDK committers) to comment or vote on issues ? I couldn't find
> any "create account" button and a quick Google search turned up a
> StackOverflow post from 2015
> that basically says "Not possible".
well, I am afraid voting on issues is pretty much ignored even when the
votes are cast by OpenJDK committers. The OpenJDK runtime is far too
complex an implementation for most, if not all, decisions about what it
does to be decided by counting votes. In particular, its maturity means
there is a continual balancing act needed to avoid conflicts between
adding new function and introducing regressions in performance and
reliability. That balancing really requires judgements to be made by
seasoned tight-rope walkers. It's not a beauty contest.
In consequence, most changes -- even quite small ones -- involve a lot
of discussion on OpenJDK mailing lists, usually supported by some
experiment with an implementation and testing/verifying of its
behaviour. Many such posts are labelled RFC (request for comment) or RFR
(request for review). That discussion /is/ where you are able to
participate but there are caveats.
Comments on the JIRAs are not really relied on because there is no
guarantee that all those concerned will see them. This is really a
triaging choice. At JIRA create time it is not always straightforward to
identify the target audience for a proposed change. So, JIRA creation is
followed up by posting an RFR or RFC to a list. Committers and reviewers
are all subscribed to the mail lists in areas they know about precisely
to be sure they get to see all the relevant discussion. Referrals to
incorrect mail lists are redirected by those on list who know where a
discussion belongs (including sending to multiple lists in some cases).
If you think something would be a good idea you can still, as a
non-committer, propose it on a relevant list (make an informed guess if
you don't know, check the archives to inform that guess). Of course, you
will need to back up that proposal with arguments. If you want anyone
here who is in a position to listen and agree your proposal -- maybe,
even, to help you implement it -- then those arguments need to be
clearly stated and thought through and display at least some knowledge
of what it is possible and sensible to implement as part of OpenJDK.
That includes an awareness of what might prejudice its current
performance and integrity. i.e. you probably need to have looked into
(some of) the code and hung around on the target list to understand what
is already being worked on/prioritised.
You might be wondering: Why the high barrier for entry into the debate?
Well, note that in most cases you should just be able to build your own
Java library to implement what you need (Java is a Turing complete
language). There has to be a good reason to go further and support what
you want in the runtime (furthermore, to maintain it). I am afraid you
cannot really provide that sort of reasoning without knowing about what
is already there and why.
It is also important to know what has already been proposed and
rejected. OpenJDK devs really don't have time to repeatedly explain the
faults in already discarded ideas. So, your original post was actually
spot on - a quick check as to whether/why the status quo does not
include a specific option.
Hope that clarifies things.
Senior Principal Software Engineer
Red Hat UK Ltd
Registered in England and Wales under Company Registration No. 03798903
Directors: Michael Cunningham, Michael ("Mike") O'Neill, Eric Shander
More information about the discuss