std.experimental Timeline
Jack Stouffer via Digitalmars-d
digitalmars-d at puremagic.com
Sat Jan 2 09:41:56 PST 2016
On Saturday, 2 January 2016 at 04:47:55 UTC, Jonathan M Davis
wrote:
> Having another review for something like
> std.experimental.logger before it gets merged into Phobos makes
> sense, because it would allow us to have an open discussion on
> anything that needs to be changed now that folks have been
> using it. And if it's ready to go (potentially decided by a
> vote), then we could merge it. But without that review, the
> only stuff that will have changed is stuff that gets reported
> in bugzilla or that a Phobos dev specifically decided to
> change. If we want to actually find out how well it's been
> working for folks, then we need a way to get feedback based on
> actual usage and discuss it. Another review doesn't necessarily
> have to be the way that we do that, but it's probably the best
> mechanism that we have.
Yeah, unfortunately there is very little communication with a
large portion of end users besides comments on reddit and
bugzilla reports. I don't count people who post in general
because they are largely a self selected group of people who like
D enough to participate in the forum, and so we all have a bias.
After doing a search on GitHub for repos that were already using
std.logger, I found a lot of them were people who post here. Not
that good ideas for fixing things can't come out of this forum,
but IMO there are just not enough people on here for some of the
more obscure of the bad ideas to come to the surface that only
show themselves after a lot of stress is put on something, plus
the bias mentioned earlier.
A good example of this problem is the issue that Sociomantic has
with Phobos (I'm going off their 2013 and 2014 Dconf talks, so I
apologize if some info is wrong). People were always complaining
about Phobos use of the GC, so the Phobos' maintainers solution
was to change things to stack allocation with lazy ranges and the
like. But it turns out that that was completely missing the mark.
Sociomantic uses a lot of fibers so their stacks are rather
small, and so they still couldn't use Phobos. The problem wasn't
necessarily the GC allocation, it was a lack of choice in
allocation, which is a very different problem. Thankfully Andrei
then wrote std.allocator which could solve the problem, but that
just goes to show how an entire community of people can miss what
the root cause of an issue is.
Going back to what I said about a lot of the repos being from
people who post here, I think this shows an unwillingness from
the normal user to import from std. experimental. Paraphrasing
someone else's comment on here (I forget who) "importing from
std.experimental is asking for trouble because you're essentially
importing a ticking time bomb". And really, I can't argue with
this mentality. So this is another block on potential feedback
from users about bad ideas.
As it see it, there are three things that can be done to mitigate
these issues:
1. Do the review for final inclusion, as mentioned before
2. Make the inclusion of modules into std.experimental more of an
event
I knew about PEP 484 way before it was accepted, because I am a
professional Python programmer and I browse /r/Python and it was
posted there. The review threads should have the same media blast
as a D release.
3. Gratuitous use of the deprecation -> undocument -> remove cycle
This is the more effective of the two options, because the first
idea still has the bias and the lack of interest in experimental
problems.
Bad ideas are going to slip through the cracks. The best thing to
do IMO is to get rid of them ASAP as to minimize the damage done.
When very compelling evidence is given that an idea is bad and
should be replaced with something else, as soon as the
replacement is ready, the cycle should start. I believe this is
the best way to mitigate the damage from lack of eyes on a
problem.
More information about the Digitalmars-d
mailing list