On Saturday, 31 January 2015 at 14:06:20 UTC, Piotrek wrote:
Hi,
The history of std.(experimental.)logger and the latest thread
about gui functionality inclusion into Phobos made me think
about how to solve the problem of adding new modules.
I came up with the idea (maybe not new) to create a additional
library(along druntime and Phobos) delivered with dmd package
and named "Mars" (Deimos is unfortunately already taken ).
The library itself would be driven by community (not individual
library developer) in order to be... the standard.
The process would be something similar to that other committees
use
(e.g http://www.iec.ch/standardsdev/how/processes/development/)
where before the standard is approved it goes through a draft
stage. Still a draft can be used to create a working product
(e.g. some Wi-Fi solutions based on IEEE 802.11 drafts)
Possible initial prerequisites:
- User awareness about the usage consequences
- Library placed at https://github.com/D-Programming-Language/
- Only well recognized community members have pull rights
- design decision made on the best known sw engineering
patterns used in D
- New module should be functional with D/Phobos standards
applied
- API and implementation allowed to change any time in order to
make a progress
- no external dependencies beside OS services
- "draft" as the root module name e.g. "module draft.gui"
Advantages:
- community driven process which ensures the lowest level of
controversy
- fast path for modules like GUI to be standardized
Disadvantages:
- additional effort for the sw release process
Ready to be destroyed ;)
Piotrek
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.
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.
There needs to be a page for this. The existing Wiki page:
http://wiki.dlang.org/Libraries_and_Frameworks
... suffers from exactly the same problem as code.dlang.org. It
contains everything in existence.
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?