[phobos] Split std.datetime in two?
Jacob Carlborg
doob at me.com
Thu Feb 10 10:56:53 PST 2011
On 10 feb 2011, at 10:49, Lars Tandle Kyllingstad wrote:
> On Wed, 2011-02-09 at 21:54 -0800, Jonathan M Davis wrote:
>> Okay. On the whole, I'm fine with std.datetime being one, large module. It works
>> fine from a maintenance standpoint, and while some people have complained about
>> the large number of unit tests getting in the way of finding stuff in the file, I
>> find that having the unit tests right next to the functions like that to really
>> help with maintenance.
>>
>> I do have one concern however. As there's a fair bit of functionality in there,
>> there's a lot of documentation, and I'm afraid that the documentation may be a
>> bit overwhelming to someone trying to figure out how to use std.datetime. On the
>> whole, everything in there is quite easy to use, but there's a lot of it.
>>
>> So, what I'm wondering is if it would be worthwhile to split out the interval
>> and range stuff into a separate module. That wouldn't hugely reduce the size of
>> the module, but it _would_ make the documentation more manageable. It also has
>> the nice side effect that the three main date/time concepts would then be in
>> three separate modules. The duration types were already split into core.time,
>> because Sean needed a duration type for some stuff in druntime. The time points
>> would stay in std.datetime. And the time intervals would then be in
>> std.timeinterval (or whatever we wanted to call it). The documentation would
>> therefore be more easily digestible. Also, if and when I get around to coming up
>> with more date/time functionality, the main area that I'd likely be putting it
>> would be in the intervals and ranges (in particular, at some point, I'd like to
>> create functionality to handle date recurrence patterns), so the bulk of the new
>> stuff would end up in the smaller of the two time-related modules in Phobos,
>> thereby evening out their size a bit.
>>
>> Again, I don't really have a problem with std.datetime being as big as it is
>> (though some people do), but I _am_ concerned that the documentation is going to
>> be a bit hard to digest for newcomers. It's not complicated, but there's a lot
>> of it. So, I'm thinking that there would be some value in create
>> std.timeinterval for the date/time interval and range functionality, thereby
>> reducing the size of std.datetime and making it easier for newcomers to digest.
>> It will also make it easier to find the interval and range-related functionality
>> if that's what you're looking for.
>>
>> So, what are everyone else's thoughts on this? Andrei and Walter favored
>> std.datetime being one giant module, and I don't exactly disagree, but I do
>> think that splitting _some_ of its functionality out would make it more
>> digestible, and I know that there are at least a few folks who think that
>> std.datetime is just plain too large.
>
> I don't think std.datetime should be split. Keeping it in one file is
> consistent with the way the other Phobos modules are organised. Rather,
> the Phobos documentation as a whole (and possibly DDOC itself) should be
> improved.
>
> If it were to be split, I think it would be better to split it into
> std.calendar (Date, TimeOfDay, DateTime), and std.time (SysTime,
> StopWatch).
>
> Note that I'm not saying I think Phobos' flat module hierarchy is the
> best one. On the contrary, now that the library is getting so big, it
> would probably be better to have it one level deeper
> (std.algorithm.search, std.algorithm.sort, std.time.calendar,
> std.time.systime, etc.), but I guess it's too late for that.
>
I agree with this, we need to start to create packages and not just have a flat module hierarchy
> -Lars
>
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos
--
/Jacob Carlborg
More information about the phobos
mailing list