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/[email protected]).
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.