Just to add my voice to the chorus, I think adding pair is seductive but ill-considered.  Based on our experience at Google, I believe it makes a bad situation worse.  I do believe that Kevin's idea is worth of exploration: in essence trying to encapsulate all of the knowledge in Chapter 3 of Effective Java into the language, so that creating a fully-functional value type is as simple as naming its fields and providing their types.  Of course the devil is in the details, but this could be a very good thing.<div>
<br></div><div>           Josh<br><br><div class="gmail_quote">On Wed, Mar 31, 2010 at 9:25 AM, Mark Reinhold <span dir="ltr"><<a href="mailto:mr@sun.com">mr@sun.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
> Date: Wed, 31 Mar 2010 09:14:59 -0700<br>
> From: Kevin Bourrillion <<a href="mailto:kevinb@google.com">kevinb@google.com</a>><br>
<br>
> ...<br>
<div class="im">><br>
> The problem is that classes like Pair simply go that much further to indulge<br>
> the desire to never have to create any actual types of our own.  When we're<br>
> forced to create our own types, we begin to model our data more appropriately,<br>
> which I believe leads us to create good abstractions at broader levels of<br>
> granularity as well.<br>
<br>
</div>I agree.  Java isn't Lisp.<br>
<font color="#888888"><br>
- Mark<br>
</font></blockquote></div><br></div>