Default value for date/time (original) (raw)

Stephen Colebourne scolebourne at joda.org
Wed May 9 07:01:06 UTC 2018


On 9 May 2018 at 01:59, Brian Goetz <brian.goetz at oracle.com> wrote:

Whats the default Currency? USD is a not an acceptable answer. Money is the same as it can't exist without a currency. This is the point we’ve been trying to make. Some types (like Complex) have a natural default (zero), others do not. So the VM provides a uniform treatment — and then the class can be coded to interpret the default value whichever way makes sense for the domain. If Complex has a natural zero, then you need not do anything special. If Currency has no natural default, then a Currency whose bit pattern is the default bit pattern should be coded so its methods throw.

I see how this is a rational point in the JVM design space, just remarking that I don't think its a particularly attractive one at the coder's level from what I've seen so far (but its early, things can change).

On 9 May 2018 at 01:53, Gil Tene <gil at azul.com> wrote:

Perhaps “works like a double” is a better analogy? Doubles have NaNs. Dates can have NaDs.

Yes, a better analogy, though not perfect.

On 9 May 2018 at 01:47, John Rose <john.r.rose at oracle.com> wrote:

Whats the default Currency? USD is a not an acceptable answer. Money is the same as it can't exist without a currency.

What about a Distance object? Is it measured in Miles or Kilometers by default? Thanks, I get it now.

FWIW having slept on it, if Currency had to have a default, it could be XXX, which means "no currency".

You are asking for a certain kind of mashup between objects and primitives, which is understandable,

I'm trying to not ask for something specific given I don't appreciate all the trade offs. Instead, I'm trying to express feelings/reactions which may or may not help guide you :-)

thanks Stephen



More information about the valhalla-dev mailing list