KEP2: Modification of datetime type, introduction of 'tz' sub-tag (wiki revision 10645 of 2010-11-19)

Georg C. F. Greve greve at kolabsys.com
Tue Dec 7 18:44:34 CET 2010


Hi Christian,

Thank you for your input.

But I have to say that I am a bit puzzled. Which part of

  "For object types [...], clients *MUST* use the Zulu notation for datetime 
fields, so YYYY-MM DDTHH:MM:SSZ with 'T' and 'Z' as the literal characters. "

do you see allowing all the various expressions RFC3339 allows?

This is about parsing only, with an eye on two factors:

As Jeroen correctly pointed out, clients already must be able to parse this, 
as it is part of the email standard, which encapsulates the Kolab objects, not 
to mention that a full Kolab client is also a MUA.

So this is about using one routine for parsing, instead of multiple routines, 
reducing the possibility of bugs and unforeseen issues in the maintenance of 
the code, which follows the principle you so wisely quoted:

 "Perfection is achieved, not when there is nothing more to add,
  but when there is nothing left to take away."
    -- Antoine de Saint-Exupery

So let's leave away that additional parser.

And finally, by not specifying our own datetime format, we retain the option 
for future extension of Kolab, for there might be objects that will require 
other expressions, eg the additional precision RFC3339 offers.

This would be lost in the conversion you suggest, thus breaking the future use 
case, and then requiring another change of format which will affect all clients 
again, instead of being a gradual upgrade later that only affects the clients 
which want to make use of this.

The alternative would be to intruduce two mutually exclusive datetime stamps 
in the format, which would again violate the principle you qoted.

The current state of the proposal makes sure that clients have a long period 
to ensure they follow the "be liberal what you accept, but strict in what you 
write" approach which Henrik from your project advocated in this discussion.

Only last week he said that he found this an acceptable approach, so I am a 
tad surprised this gets brought up again now.


On a technical note, I am not sure how including the code snippet for parsing 
you're referring to is easier and more robust than using one of the built-in 
constructors, e.g. java.text.SimpleDateFormat [1].

The same would be true for PHP5, for instance, e.g this older article, [2] 
which is probably somewhat deprecated by now.

It seems that any of these parsers is likely to provide better results parsing 
the datetime fields even for broken clients - which as long as we remain 
realistic we know we will run into in the future, as well - than a very narrow 
simple parser.

Those can still be used for cases where no other option exists, and such 
clients can hope that every client connected to this setup is fully compliant.

But as this is a diverse ecosystem, I'd like to build in as much robustness 
and fault tolerance as we can, because my experience tells me that 
imperfections are just a normal part of technology, especially when it is 
evolving, like Kolab is.

Best regards,
Georg


[1] 
http://download.oracle.com/javase/6/docs/api/index.html?java/text/SimpleDateFormat.html
[2] http://laughingmeme.org/2007/02/27/looking-at-php5s-datetime-and-
datetimezone/

-- 
Georg C. F. Greve
Chief Executive Officer

Kolab Systems AG
Zürich, Switzerland

e: greve at kolabsys.com
t: +41 78 904 43 33
w: http://kolabsys.com

pgp: 86574ACA Georg C. F. Greve
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 308 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.kolab.org/pipermail/format/attachments/20101207/7ed6b701/attachment.sig>


More information about the format mailing list