[jsr294-modularity-eg] Simple Module System Proposal
Richard S. Hall
heavy at sun.com
Thu Sep 10 13:36:48 EDT 2009
Hey Bryan,
I would also add that you seem to be operating under the impression that
we are still proposing a module system interoperation API, but we
aren't. This is a concrete module system for Java to support, as Peter
said, the "80% case", which we have discussed before as being JAR-to-JAR
dependencies. That's it.
It is more of a side benefit (but a real benefit) if we do this in a way
that the resulting "simple modules" can be used easily in Jigsaw, OSGi,
NetBeans, etc. However, this is not interoperation, this is merely
consuming "simple modules".
-> richard
On 9/10/09 13:16, Peter Kriens wrote:
> Bryan,
> Our key design goal for the SMS was to make 80% of the use cases
> simple and the remainder possible. That is, make simple things simple
> and allow more complex things.
>
> So there seem to be two possibilities:
>
> - We have the wrong design goal, or
> - We do not cover 80% of the use cases
>
> It is hard to see which of the two is your concern? If the coverage is
> your concern, could you propose use cases that should fall under the 80%?
>
> That said, I am a bit surprised with your last paragraph. In this you
> mention the following requirements:
>
> Requirement Before SMS
> Simple syntax annotations++ fixed keyword
> In a single file module-info module-info
> Compile-time error checking mod. system compiler
> Fidelity with the runtime mod. system VM
> Semantics mod. system JLS
> Extending the compiler yes no
>
> All these seem to be highly in favor of the SMS from a simplicity
> point of view?
>
> Kind regards,
>
> Peter Kriens
>
> On 10 sep 2009, at 02:21, Bryan Atsatt wrote:
>
>> I agree with the idea of a standardized version syntax and with
>> defining semantics for the 'requires' directive (if possible :^);
>> however, I can't support this proposal. It trades off usability for a
>> form of purity, introducing considerable extra complexity for all
>> non-trivial use cases.
>>
>> This 'simple' proposal is anything but, turning two module systems
>> into *four*: simple-osgi, simple-jigsaw, full-osgi, full-jigsaw.
>> Syntax is common between the simple variants, but... bizarrely
>> contorted otherwise. Interoperation is possible between the simple
>> variants but not with the full ones. Compile time error checking is
>> possible with the simple variants but not the others, resulting in a
>> confusing, frail and ultimately unreliable feature.
>>
>> All so we can insist that a subset of module system semantics is
>> written down in a 'language' spec? Where a single, tiny step beyond
>> that subset forces a leap to a distant document/specification?
>>
>> The word "morass" comes to mind.
>>
>>
>> I'm sorry if this all sounds harsh, but I'm in this to make
>> modularity more usable; to me this means simple syntax, in a single
>> file, with good compile-time error checking and fidelity with the
>> runtime. If that means we have to point at separate documentation to
>> define semantics, at least it will all be in one place. And if it
>> means extending the compiler to leverage module-system
>> implementations, so be it; I'll be well satisfied that we made the
>> right tradeoff.
>>
>>
>> _______________________________________________
>> jsr294-modularity-eg mailing list
>> jsr294-modularity-eg at cs.oswego.edu
>> <mailto:jsr294-modularity-eg at cs.oswego.edu>
>> http://cs.oswego.edu/mailman/listinfo/jsr294-modularity-eg
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> jsr294-modularity-eg mailing list
> jsr294-modularity-eg at cs.oswego.edu
> http://cs.oswego.edu/mailman/listinfo/jsr294-modularity-eg
>
_______________________________________________
jsr294-modularity-eg mailing list
jsr294-modularity-eg at cs.oswego.edu
http://cs.oswego.edu/mailman/listinfo/jsr294-modularity-eg
More information about the jsr294-modularity-observer
mailing list