About the Expressiveness of D
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Wed Apr 3 10:08:57 PDT 2013
On 4/3/13 11:55 AM, Peter Alexander wrote:
> On Wednesday, 3 April 2013 at 02:44:15 UTC, Andrei Alexandrescu wrote:
>> If we did datetime all over again, I'd give a budget of 2000 lines for
>> all functionality. I bet the solution would be better.
>
> I think you are massively underestimating the complexity and subtleties
> of dates and time.
May as well. I recall before I approved std.datetime I looked at the
implementation sizes of similar functionality in other languages; they
were all rather bulky, but std.datetime was at the high end of the range.
> For comparison, min and max in std.algorithm come to nearly 200 lines on
> their own, and their unittests are hopelessly lacking. Things like
> min(uint.min, int.max) are not tested, even though there's specific code
> to handle them. To suggest that date and time handling is a mere 10x
> more complex than min/max is a bit naive in my opinion.
To put things in perspective, std.datetime has 34K lines, whereas
std.algorithm has under 12K lines. The entire std/ has 191K lines. I'd
be hard pressed to assess that that high proportion is justified.
Say we set out to fit std.datetime in e.g. 20K lines without loss in
functionality or testing, which I'd find more reasonable. I think the
result would force overall better engineering of the entire thing (and
in particular better use of data structures) - constraints may be
liberating.
Andrei
More information about the Digitalmars-d
mailing list