-
Notifications
You must be signed in to change notification settings - Fork 57
Interface type abbreviation for time? #127
Comments
Great point! I've wondered about this too. The benefit (that you're probably also imagining) of having an explicit abbreviation is that each language would have the opportunity to bind (cc @sunfishcode for another WASI perspective) |
WASI's |
Another factor to consider: is a timestamp wallclock time or monotonic time? Go, for example, uses both in an adaptive fashion. |
There are likely to be multiple domain specific types. I suggest that we do not try to add them in at this point. Time is probably even more difficult to specify than strings. |
I wouldn't necessarily call time domain-specific, but I will give you that it may be difficult to specify. I couldn't imagine the complexity of including things like time zones and whatnot. |
FTR, JS is gaining a bunch of new date/time APIs: https://tc39.es/proposal-temporal/ |
My understanding of interface types is that its chief advantage is being able to coordinate across modules without coordinating on the representation/implementation of the types in question. Leaving time opaque at the IT layer would allow us to seamlessly update individual modules come 2554 without worrying about compatibility, for example. |
Time is a complex beast, and fixed-precision seconds-since-epoch timestamps are not by a long shot the only representation needed. See, as an example, the US Library of Congress's Extended Date-Time Format, which has since been made part of ISO 8601. I'd also suggest reading The Long, Painful History of Time for an overview of the issues and an alternative representation (which still doesn't account for the added complexities of EDTF). All of which is to say that I think defining the datatype and encoding for time is more of an API question than a fundamental type. |
It might be useful to include a standard abbreviation for a time.
Something like this:
It would be defined as the duration elapsed since the unix epoch.
The text was updated successfully, but these errors were encountered: