[LEAPSECS] USWP7A docs for 2013 September meetings
scolebourne at joda.org
Sun Aug 18 05:29:06 EDT 2013
On 17 August 2013 23:01, Warner Losh <imp at bsdimp.com> wrote:
> On Aug 14, 2013, at 2:36 AM, Stephen Colebourne wrote:
>> It is therefore essential to prevent leap seconds from being exposed
>> to 99% of developers.
> This attitude is why no real systems get leap seconds exactly right :( We do not protect programmers from leap days, and they get them right nearly always. Protecting programmers from leap seconds is one of the biggest mistakes people have made over the past 40 years, since now we have generations of programmers that program against a standard that doesn't match reality, and it should surprise nobody that it is never right.
> I know you've had lots of experience with designing APIs, but I think that you came to the wrong conclusions by catering to ignorance rather than educating the ignorance away.
The thing to bear in mind is that you are an atypical user. Most users
probably don't even know what a leap second is. Those that do don't
really care and won't think about it when designing their code. In
addition, most users never read the documentation. Given this,
education simply isn't realistic. And including them would result in a
whole world of bugs that occur very infrequently.
The funny thing is that if there had been no effort to remove leap
seconds, then the API might have been designed such that obtaining TAI
and UTC with leapsecs was easy. Those arguing for leapsec abolition
actually made the API "worse" from their perspective.
On the positive side, I would say that the API (a) understands what
leap seconds are, (b) defines how the system is supposed to cope when
they occur. That is a whole lot more than Java and many other
librraies have done before.
More information about the LEAPSECS