On Friday, 12 April 2013 at 14:27:25 UTC, Manu wrote:
On 13 April 2013 00:04, Jesse Phillips
<[email protected]> wrote:
On Friday, 12 April 2013 at 06:25:10 UTC, Manu wrote:
I see this pattern where something is designed, discussed,
and then voted
into phobos. At this time the design looks good on paper, but
there is
very
little practical experience using the library.
The problem then is, once accepted, people start using it,
and at some
point some issues are found, or ideas for improvement are
made based on
user experience, but the module can no longer be touched due
to the
general
phobia of making breaking changes...
I think this needs to happen prior to the formal
review/voting. I would
say it should be a precursor to starting the official review,
however this
would raise the bar too high for things like Jacob's
Serialization library;
he has a working library, but it isn't ready for Phobos and it
would be
silly to require the translation prior to approving it for
Phobos.
How we choose to add to the exp module would need some
consideration.
I would say, everything, bar nothing.
The serialisation library is a good example. It's a complicated
system, and
it has some history already, offering some confidence from the
start.
Experience might suggest that it's more-or-less acceptable into
phobos.
It's obviously seen a few projects, but once something is
accepted into
phobos, I think it's fair to anticipate its usage to increase
significantly, and in many different kinds of projects.
As an independent library, it might be evaluated by a potential
user, and
found not to satisfy the requirements for some reason... they
move on and
continue looking at alternatives, nobody's the wiser. Once it's
in phobos,
there's a temptation, even an encouragement to use it because
it's
'standard'. At this point, it may be found that the project it
wasn't
suitable for could be worked with some relatively minor
changes, which
should be made, and the library becomes more useful and
robust... phobos
doesn't support this pattern at the moment.
I maintain the position that it needs at least a year in the
real world
before you can truly be confident in it. New things shouldn't
be barred
from post-release tuning on account of "omg it's a breaking
change!".
I strongly agree with this.
There needs to be a middle step between the wild-west of
independent libraries and the strictly controlled world of
standard library.