Kassen wrote:
I'm sure this is very naive again, but we do have lots of support for adding and subtracting time. We have both "time" and "duration" as datatypes and day, hour, minute,etc, etc, etc as constants ready made.
If we'd have even -say- a function that would report the amount of samples that have passed since newyear 2000 in our timezone it would be quite straightforward to discover the amount of time until "tomorow at noon".
Well, but the trick in that question is, "What if daylight savings time starts tonight?" I should have made that more clear. That may sound like a contrived example, but to put it in context, let's say that you have a multimedia installation that's doing something connected with time. You've got ChucK running and it may sit there running for a week. Every day it's supposed to do something at noon that is synchronized to other parts of the piece. So you compute a duration until noon tomorrow and chuck that to now. But then it doesn't work.
The hard bits -as I see it- would be that daylight saving time is variable per country [...]
There are faculties on the systems to handle those things -- either via system APIs or using something like boost in the background, it's more a question of how much of that would need to be exposed in a time class for ChucK.
Admittedly that would be a bit abstract at the expense of ease of use for most people most of the time but I don't think that a API to reason about time as such is the bottle-neck here.
Well, I suppose the question that I'm really hinting at is, "What problem are you trying to solve?" That's really the question behind API design. For a lot of potential answers to that question the answer results in an API that's a bit of work to implement. "ChucK doesn't support time." isn't really a good starting point. "I'd like to be able to do ..." is better. For the one proposed case so far (seeding the random number generator) that seems to be more of a problem that there's a bug in ChucK's code somewhere and there I feel like the right solution is fixing the bug. :-) -Scott