Most popular software libraries for managing time are based on similar models, and JodaTime, a common Java library being incorporated into Java 9, is a good example. It has a fairly good model, and illustrates the tendency for the first good idea to be the last idea.
YOUTUBE Zm95cYAtAa8 Published on Oct 19, 2017.
Exploration stops as soon as a workable solution is found. While this is actually not such a bad idea in supporting domains, it short-circuits work on the critical core domain.But how do we escape from these good models that stop our thinking? Eric will walk through some rich semantics of an alternate model of time and an associated library to illustrate that there is always another model.
.
I'm reminded of Adele Goldberg mentioning once that the Smalltalk-80 inventors took their time getting to (month, day, year) as the implementation of date.
This triple works well for the case where you are iterating through a sequence of months as we did computing net-present-value of bonds.
Unfortunately we used Digitalk's implementation that wrapped Julian date as an integer. When we profiled WyCash we found we were spending 50% of our cycles figuring out the year of a date. Yikes. We rewrote Date the Smalltalk-80 way and made our program twice as fast.
Ironically Eric ran out of time before he explained fully why time intervals made instances unnecessary. Our own Calendar plugin tries to offer intervals without offering a computational model.
See Allen's Interval Algebra at 42m