What is a language construct? (was Re: Comment on state of Project Jigsaw)

Neal Gafter neal at gafter.com
Thu Dec 22 10:07:07 PST 2011


On Wed, Dec 21, 2011 at 5:32 PM, Alex Buckley <alex.buckley at oracle.com>wrote:

> On 12/21/2011 5:06 PM, Neal Gafter wrote:
>
>> A use-site protection mechanism provides no protection, as one can just
>> say "yes, it's accessible to me" at any place you want to use the thing
>> supposedly protected.
>>
>
> I'm not getting my question across. _How_ do you say this at the place you
> want to use the thing?
>
> If the answer is "Just say the name of the thing!", then I ask: "How do
> you know which module the thing comes from?"
>
> Even with package dependences rather than module dependences, you still
> need to say at the use-site which version of the package you want. Perhaps
> you are proposing "import java.util.List @ 8.0;" ?


I don't think a protection mechanism that involves use-site access control
(or version control) is an appropriate language extension at all.  That is
more properly a feature of a build and packaging system.  While it may well
involve a packaging specification language (e.g. a package specification
file *or* a compiler command-line or even the layout and organization of
files on the disk drive), that language need have no relationship to the
underlying programming languages of the system under construction.  Jigsaw
appears to have largely taken that approach, with the exception that Jigsaw
pretends it is an extension of the Java programming language.



More information about the jigsaw-dev mailing list