[Glass] DateAndTime users' questionnaire

Otto Behrens otto at finworks.biz
Fri Jun 19 21:25:41 PDT 2020

> At customer request, we're working on a SmallDateAndTime class for
> GemStone -- a "Special" (immediate) version of DateAndTime that relates
> to DateAndTime similarly to the relationship between SmallInteger and
> LargeInteger. For customers with many persistent DateAndTime instances,
> this should improve both space and time performance.

We have many persistent DateAndTime instances. We also have many more
persistent Date instances, which I believe would be even more space
optimising in our case.

Another similar and useful optimisation would be a number representation
that keeps up to 8 decimal places (even less). We would use that for
monetary amounts and values of instruments such as mutual funds. We have
millions of those.

> There are design tradeoffs in resolution, range, printing, etc., and it
> will help us make better decisions if we know how DateAndTime is being
> used now.
> (1) Which of the following messages do you use to create DateAndTime
> instances?
>   * DateAndTime now

yes, mostly

>   * DateAndTime nowWithScale:
>   * DateAndTime fromString:

yes, infrequently

>   * DateAndTime year:day:hour* or year:month:day:hour*
>   * Other protocol

DateAndTime class date:time:

> (2) Do you need DateAndTimes with resolution finer than a microsecond?


> (3) What is your year range of DateAndTime; do you need or use
> DateAndTimes more than 5/10/50 years into the future (or the past)?

More than 10 years in the past, less than 50. No future DateAndTimes

> (4) How do you handle DateAndTime printing?

date <with different date formatting>; space; time asString

> (5) Have you created a subclass of DateAndTime or DateAndTimeANSI, or
> added your own methods to DateAndTime or DateAndTimeANSI?  If this is
> general functionality that could be useful to include in the base,
> please let us know.

We use TimeStamp, but this could just as well be DateAndTime, AFAIK.
Lots of printing methods, all rather specific and not really nice for
inclusion in the base.

> (6) DateAndTime instances would need to be immutable, to be
> interoperable with SmallDateAndTime. If you are using methods that do
> update a DateAndTime, such as offset: or beRounded, does your code
> expect the receiver to be modified?

No, it can be immutable.

> _______________________________________________
> Glass mailing list
> Glass at lists.gemtalksystems.com
> https://lists.gemtalksystems.com/mailman/listinfo/glass
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.gemtalksystems.com/mailman/private/glass/attachments/20200620/f34f79a3/attachment.htm>

More information about the Glass mailing list