Context and expectations

David M. Lloyd david.lloyd at redhat.com
Thu Jul 19 16:05:51 PDT 2012


I certainly hope that this isn't directed at me, as my post specifically 
calls out the correctness and validity of the requirements, including a 
suggestion for a better idea as an illustration of the weakness of the 
requirement, and did not include any insults or anger, especially 
towards individuals; though it's hard to draw any other conclusion given 
how rarely anyone posts to the jigsaw list from outside of Oracle.

As I've often said in ##java, politeness is always defined in the 
context of one's local culture.  As for me, I'd rather have someone 
directly say "your idea is wrong and here's why" if they feel they have 
a strong argument.  Rejecting discussion that *you* find impolite 
*because* you find it impolite is a very insular attitude, and doesn't 
work well in the greater community which is often far less culturally 
homogeneous than corporations tend to be.  Remember Postel's law.  It's 
far more productive to consider the actual content of the message and 
reply in good faith - only if a message has no valid content is the 
"bozo" bit in scope.

Also, this isn't Congress, it's a public forum - once a question is 
"answered", it is not "closed" especially if it relates directly to the 
validity of requirements or the efficacy of an implementation decision. 
  If you don't allow direct criticism of requirements, the definition 
and understanding of which are the basis of any good software, you've 
cut off pretty much all meaningful input from the community, which would 
make this whole exercise a sham; I'm continuing to give the benefit of 
the doubt on that point, which is why I keep on trying to work with the 
Jigsaw team.

I do think it is clear that many of the requirements in the requirements 
document are implementation directives, and I believe this is a poor way 
to design software.  Implementation directives are *derived* from 
requirements, which in turn are guided by real-world use cases.  For 
each such directive, one must ask, what is the *real* requirement that 
precipitated it?  Chances are there is a very good reason that it seemed 
necessary to give such a directive; but it's the underlying requirement 
that has to be identified, because chances are also very good that there 
are other options to meet it which may be superior (or may not be).  One 
of the key strengths, in my opinion, of Open Source Software is 
recognition of this basic humility and the opportunity it presents for 
us to create software greater than we ourselves would be capable of.

You (and by "you" I mean "all of us in this business") have to be able 
to question your own perspective and accept outside views, and yes this 
*does* mean calling into question your own motivations, *constantly*. 
Is a requirement there because it specifically solves a known problem or 
use case, or because it's just something you want?  Is there a better or 
more concise way to express this requirement?  The answer to these 
questions can mean the difference between good and bad software.  Often 
times we *want* something because of an intuitive understanding of the 
problem - but these things still *must* be expanded and codified, 
because they nearly always contain weaknesses and prejudices (we all 
have them; stature or experience level is no guarantee against this).

So yes, you could say that I question your motivations, because that's a 
responsibility incumbent upon anyone who evaluates requirements gathered 
by another.  It's nothing personal, it's just good engineering.

On 07/19/2012 05:12 PM, mark.reinhold at oracle.com wrote:
> To quote from the Project Jigsaw main page [1]:
>
>    The goal of this Project is to design and implement a standard
>    module system for the Java SE Platform, and to apply that system
>    to the Platform itself and to the JDK.
>
>    Right now this effort is in an exploratory phase in which we are
>    investigating and prototyping various ideas in the context of an
>    in-progress requirements document.  That document, together with
>    the overall Jigsaw design, will be among the starting points of
>    an eventual Java Platform Module System JSR.
>
> That page also contains pointers to additional working and background
> documents.  The most important of those are the requirements [2] and
> the "big picture" overview [3], which together describe the context
> of the design and development work taking place on this list.
>
> Please make sure you're familiar with that context before you post to
> this list.  If you don't agree with it, that's fine -- ask questions.
> If you have a better idea, that's great -- please suggest it.
>
> Do not expect, however, that asking questions that've already been
> answered, attacking the motivations or intelligence of those of us
> who've been working on this for a long time, casting insults, getting
> angry, or otherwise behaving impolitely will have any effect other
> than to set your bozo bit.
>
> - Mark
>
>
> [1] http://openjdk.java.net/projects/jigsaw/
> [2] http://openjdk.java.net/projects/jigsaw/doc/draft-java-module-system-requirements-12
> [3] http://cr.openjdk.java.net/~mr/jigsaw/notes/jigsaw-big-picture-01


-- 
- DML



More information about the jigsaw-dev mailing list