On Thursday, 16 April 2015 at 06:02:19 UTC, Andrei Alexandrescu
wrote:
This is good stuff. FWIW we do have a keyword "preapproved" on
bugzilla:
https://issues.dlang.org/buglist.cgi?f1=keywords&list_id=200200&o1=equals&query_format=advanced&resolution=---&v1=preapproved
It has 23 items of various ages. I didn't notice the presence
of the keyword helping in any way. So spending time annotating
issues with "preapproved" is possibly a waste of time. I
suspect maintaining lists of stuff to do is also low-impact.
Is this keyword documented somewhere easily accessible, like on
the wiki? If not, how do you expect someone new and looking for
a way to contribute to find it? I agree that it's unlikely that
someone will saunter in and learn the codebase and provide good
fixes in their spare time, which is why I remain skeptical of the
open source approach taken by the D community. But there are
ways to encourage more open source contribution, and prioritized
lists are one of them.
Yeah, we know what to do. A ton of it is easy to derive
directly from the vision, do I need to provide the food already
chewed? Eliminate gratuitous garbage from Phobos, create good
unique and reference counted types (and see if we need
something beside DIP25 to make them safe), improve associative
arrays (apparently there's no reasonable way to free an AA
manually...), documentation, documentation, documentation...
there's a bunch of stuff to do all over the difficulty
spectrum. It's painfully trivial to find easy and high impact
stuff to work on. That's not low-hanging fruit, it's fruit that
falls into one's lap.
The problem is that there's so much "fruit" in bugzilla that
someone new is overwhelmed. If they're not scratching their own
itch, how do they know whether the random issue they've chosen is
actually a priority? If you want to pull new people from outside
the core team, you need to provide them an easy way in, such as
an easily found, prioritized list from the core team, after which
they may realize it's not so hard after all, and stick around and
provide more. Yes, you're holding their hands initially, but if
it leads to the core team getting larger, that's well worth it.
Now that I got started, there are two more topics that I think
we could do a lot better at:
1. Challenging Walter on anything and everything seems to have
become a rite of passage in our community. Some of the reviews
of his code are the most petty and meaningless I've seen in my
career, bar none. It doesn't help that he doesn't budge on some
of the petty issues, thus a vicious circle gets created. In a
recent review, after his code had been pecked within an inch of
its death, it took me minutes to find two bugs that nobody had
the eyes for in spite of every token of his code having been
scrutinized.
I've been surprised by how much people challenge him on the
forums, seemingly ignoring the fact that he's been writing
compilers for decades. He's been very patient in explaining his
viewpoint on the forums, which is a big plus for the community,
though it would be better if he didn't have to repeat himself so
many times.
2. Turning the hay over and over and over again. I've mentioned
this before - there's just an astounding amount of tweaking and
shuffling and moving around code that works well under
serious-sounding pretexts such as "refactoring" and
"maintenance". Sometimes really difficult stuff, too. A lot of
it is low-impact work that makes Phobos' codebase look horribly
overcooked. There's been more than one instance when I
revisited some file I knew most of the code of. Elegant
solutions. Nimble code. Just to find it mutated into the stuff
of Agent Smith's world. One horrible contraption layered on top
of another to the extent it's difficult to find where work is
being done.
There is a way out of this, and that for us all to give good
examples that demonstrate what good contributions are and what
good reviews are.
Sure, and lists of priority issues can even emphasize to the
current contributors which high-impact work you feel should be
done first.
You have pointed out which direction you want the community to go
in the vision document, but some of those are too broad, ie
"improve quality." Stick some meat on those bones, by providing
a list of issues you feel would move those agendas forward, and
you might get the language moving further in your direction.