On 10/6/11 5:25 AM, Regan Heath wrote:
I've been lurking and contributing to this news group on and off for
years (since 2005/2006, maybe earlier). But, in all that time I have
contributed nothing to Phobos. I have contributed a set of
digest/hashing routines to Tango, because at the time Phobos wasn't
taking submissions. I have been meaning to clean my originals of these
up, get them properly documented, etc and submit them for review for
Phobos, but I just haven't had the time, and/or inclination to do so (my
free time is precious and I've just not been feeling the urge/itch to
code.. blame minecraft :p)
However, I am more than happy to hand them off in their current state to
anyone who does have both time and inclination .. and I wonder how many
other blocks of code are out there, just like mine, just waiting for the
right person to take charge of them. Would this be useful do you think?
Or would the time it takes someone to pick up new code, learn it, fine
tune it and document it.. etc be more than if they just started again
from scratch. It seems to me that sometimes, all that is needed to get a
new module off the ground is a working prototype for the guts of it,
which is what people like me who have some experience/knowledge but
little time/energy could do, before handing it to someone who has a
better idea of the D/Phobos 'way' and can organise the guts into a well
formed module which complies with D style and Phobos guidelines etc.
Part of what puts people off (I suspect) is the 'relative' complexity of
submitting code (obtaining/learning GIT etc), the standard the code
needs to be at (well organised, documented etc), and the implied
promise/commitment that submitting code brings with it (that you'll hang
around and maintain it). But, what if we were to create a system where
people could submit code, no strings attached, in any state (they would
define the state they believe it to be in) for the more dedicated
contributors to pick up, clean up, and include as and when they could?
It could be as simple as a web page, where code is pasted, files
attached, and a license waiver agreed to.
I know I have several pieces of code floating about the place which do
useful things and would be motivated to create more if it would help the
effort, and I could get a mention in the comments at the top of the
finished module :p
Thanks for your thoughts and generosity. It's great you are sharing your
code in the hope it adds value to the community. I'm sure it does, but I
am skeptical the impact is nearly as strong as it could. Also, if past
is indicative of future, it's possible but unlikely that someone will
take your code, bring it to perfection, and go through the hurdles of
submitting it to Phobos.
Making a body of code into a reusable library is often comparable work
with writing the code itself. It's also seen by many as unpleasant work,
which means most people would be more motivated to do it for their own
work rather than others'.
Things have changed a lot in the way D is evolving. This includes
migration to git, opening the compiler, runtime, and standard library
for contributions, and a review process for adding to the standard
library. Focusing on the last aspect, this has been a big change from
the previous approach in which the standard library was closed, and from
an awkward stage in which we were inclined to accept somewhat random
contributions (encoding, xml, json) without much due process.
By any measure I can think of, establishing a review process has been a
tremendous success, and everything else failed. We have std.datetime,
std.parallelism to show, and there are many more to come. The difficulty
in carrying through a Phobos submission also means establishing a strong
esprit de corps, a commitment to quality, and a sense of meaningfully
moving things forward together. As far as I know many other open source
projects follow a similar model. There is essentially no evidence in
this space to suggest that your hypothetical model of development would
work.
Andrei