"Model 2" prototype status
eliasvasylenko at gmail.com
Tue Aug 4 21:38:44 UTC 2015
"we are more likely to avoid "boxing" ourselves into a corner."
Oh har har har ;).
Thanks for the replies guys, appreciated. If it's a case of not counting
your eggs until they have been more rigorously specified, and their
interactions with one another more thoroughly explored, etc., then I can
totally see where you're coming from. Soft goals need to stay soft until
the overall picture starts to come together more clearly, sure.
And of course you predicted my naive thought process quite accurately,
Brian... As you say it does seem intuitive that some manner of boxing would
happily address whatever arises, nice and simple, but yeah, I can
appreciate this is just scratching the surface! It is nice to hear you
expand a little on your general approach to and thoughts on this though,
even without diving into the real depths of it, and even if you have had
other more pressing concerns up 'til now.
At any rate, I certainly have no problem just waiting and seeing what
happens. My blind optimism will tide me over happily until these further
updates you speak of.
Thanks again for putting all this out there,
On Tue, 4 Aug 2015 at 21:33 Martijn Verburg <martijnverburg at gmail.com>
> Hi Eli,
> It's simply too early to tell and will need some more investigation by the
> core valhalla team, we're going to have to be patient and wait until
> they've explored this particular interaction further :-).
> On 4 August 2015 at 21:24, elias vasylenko <eliasvasylenko at gmail.com>
>> This all sounds pretty encouraging so far to me. I feel like all my major
>> tick boxes are being steadily, if tentatively, filled. Thanks for the
>> I do have one new concern though - something you said earlier jumped out
>> me, Brian:
>> "So its quite possible that Foo<any T extends Comparable> may in fact be
>> meaningful. (And if that's the case, primitives might join the party
>> too.) Or not, we're not sure yet."
>> I suppose this must mean there is a realistic possibility that will *not*
>> in fact be meaningful, which is a surprise to me... Is this something that
>> has been discussed in more depth and I missed it? If anyone could expand
>> this a little (preferably to give a little reassurance that I'm
>> overreacting to the importance, or that the chances are low for this to
>> up being the case!) I'd be pretty relieved. It feels like it'd be a pretty
>> huge blow, and given my (limited) understanding I can't see what
>> particularly troublesome issues this even presents.
>> On Sat, 1 Aug 2015 at 22:49 Brian Goetz <brian.goetz at oracle.com> wrote:
>> > > I dislike the Foo<ref> / Foo<any> thing for several reasons.
>> > Not surprising. This wasn't our first choice either.
>> > We spent a great deal of effort investigating whether it was possible to
>> > re-use Foo<?> to mean Foo<ref> when the corresponding tvar is a ref
>> > tvar, and to mean Foo<any> when the corresponding tvar is an any tvar.
>> > Seems obvious, right?
>> > Several hundred hours later, the short answer is that things fall apart
>> > when a library is any-fied and the client is not recompiled; this would
>> > make any-fication a binary-incompatible change, which would be a loser.
>> > So with tears in our eyes, we reluctantly concluded that we needed to
>> > differentiate between Foo<ref> and Foo<any>. Once we swallowed that
>> > pill, many things snapped into place. So as sad as it is to have two
>> > kinds of wildcard, I'm pretty sure its the right call.
>> > You prefer another syntax? Sure, I'm sure there are alternatives. We
>> > can talk about it -- but not this year! We have way more important
>> > things to work out before that comes anywhere near the top of the list.
>> > As to bounds... we're still working out the details of the interaction
>> > between value types and interfaces. So its quite possible that Foo<any
>> > T extends Comparable> may in fact be meaningful. (And if that's the
>> > case, primitives might join the party too.) Or not, we're not sure yet.
More information about the valhalla-dev