how to build up the library..

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Thu Oct 6 07:47:03 PDT 2011


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


More information about the Digitalmars-d mailing list