Mars Drafting Library - Official community driven library
Zach the Mystic via Digitalmars-d
digitalmars-d at puremagic.com
Sun Feb 1 22:07:28 PST 2015
On Sunday, 1 February 2015 at 22:54:51 UTC, Piotrek wrote:
> On Sunday, 1 February 2015 at 21:54:13 UTC, Dicebot wrote:
>> 1) what would it give over std.experimental ?
>
> - draft modules will be more flexible for changes than in the
> ones in standard library
> - new drafting modules won't disturb usual users of the
> standard library
>
> IMO, std.experimental is not for the drafting stage of the SW
> development.
I don't see the return on investment for making a big distinction
between a draft and a more polished, but still not guaranteed
library. The big line that needs to be drawn is whether any given
task is or is not an appropriate target for the standard library.
Once something passes that stage, it needs to be decided whether
the API is in flux (e.g. std.experimental) or stable (e.g. std
proper). An additional distinction between "more in flux" (your
idea) and "less in flux" (std.experimental) is both less useful
and quite possibly dangerous:
The big temptation for software developers is to *promise*
stability in order to attract the users they need in order to get
the feedback they need in order to create the best possible
design, and then break stability with the new design. By dividing
libraries into the hazy "more in flux" and "less in flux"
categories, one is simply deferring the hard choice between
"stable" and "not stable", and likely to start making promises
one cannot -- or worse, does not even intend to -- keep as a
result.
Therefore, I think std.experimental is for all "in flux" APIs,
from the drafting stage to the later "less in flux" stages. The
danger is that the phobos management will want to have their cake
and eat it too, as the saying goes. You simply can't promise
users both stability and a perfectly designed API at the same
time, tempting as it is.
More information about the Digitalmars-d
mailing list