Mars Drafting Library - Official community driven library

Zach the Mystic via Digitalmars-d digitalmars-d at puremagic.com
Sun Feb 1 06:40:15 PST 2015


On Saturday, 31 January 2015 at 23:03:52 UTC, Piotrek wrote:
> On Saturday, 31 January 2015 at 20:34:32 UTC, Zach the Mystic 
> wrote:
>
>> The most important thing about a standard library is 
>> decisiveness in the leadership about what *kinds* of things 
>> should be in it. When it's been made clear that a given task 
>> is worthy of inclusion in the standard library, there will be 
>> enough incentive for contributors to put in the time and 
>> effort required to meet its high standards.
>
> The intention of creating draft modules would be the inclusion 
> in Phobos.
> In simplistic way, the following stages of development will be 
> applied:
>
> 1. Proposal (DIP, NG discussion, DUB package showcase, local 
> meet-up events etc)
> 2. Draft module creation and development
> 3  Approval for Phobos merge, i.e. "draft" -> "std"

I really can't see the difference between `std.experimental` and 
this. If `std.experimental` doesn't get used for this, 
`std.experimental` will end up a marginalized "experiment" 
itself. I think `std.experimental` runs the huge risk of not 
being recognized as what it is - i.e. a shop for building things 
(from scratch if necessary, IMO). If you're not worried about the 
name "Mars", why are you worried about `std.experimental`?

>> But there are so many tasks that aren't quite up to that bar, 
>> either because they serve too specific a niche, or because 
>> there are two or more good, but conflicting ways to implement 
>> solutions, and no good way to decide between them.
>>
>> For any such task that doesn't meet those high standards, the 
>> library's development is best left to the community. But there 
>> is a place for the official recognition of existing libraries 
>> which have reached a level of quality that can be safely 
>> recommended. This is what is currently missing.
>
> To be clear. I treat current DMD and Phobos library development 
> as community driven as well. The reason, the title includes 
> "community driven" is that modules can't be made by independent 
> developer, i.e. without community approval. As an example DUB 
> packages don't fulfill this requirement.
>
>
>> This is more of a "second-party" library system, for which 
>> idea I am indebted to this article: 
>> http://www.jfbillingsley.com/blog/?p=206
>>
>> Suggestions for implementation?
>
> I briefly read the article and some parts are similar. However 
> the difference is that Curiosity/Mars would form some kind of 
> trinity with Druntime and Phobos. See also my answer to 
> weaselcat's post 
> (http://forum.dlang.org/post/mtqjtavxzjucixuycnlf@forum.dlang.org).
>
> Piotrek

Yes, we're basically talking about the two categories I mentioned 
to begin with. You're focusing on those libraries which can be 
pre-approved as worthy of phobos. The way I figure it, only 
Andrei and Walter can ultimately give pre-approval for such 
libraries. But I think the second kind I mentioned -- 
high-quality libraries which aren't suited for phobos -- also 
need official, or at least prominent, recognition. It's really 
important for people not to have to investigate every program 
listed on code.lang.org in order to find high-quality existing 
code. I would even argue that such recognition is more important 
than the library you're proposing here (which already seems to 
exist with `std.experimental`). Meeting the pre-approval 
standards for phobos is a very high bar, and it certainly won't 
be the majority of high-quality libraries.


More information about the Digitalmars-d mailing list